如何向 Bluemix S3 Lite 进行身份验证?

How to authenticate to Bluemix S3 Lite?

我正在尝试使用以下代码将 S3 API 与 Bluemix 对象存储一起使用:

import boto3, pprint, sys;
s3 = boto3.Session().client(
    service_name="s3",
    region_name="us-geo",
    endpoint_url="https://s3-api.us-geo.objectstorage.softlayer.net", 
    aws_access_key_id="auto-generated-apikey-<redacted>", 
    aws_secret_access_key="<redacted>"); 
pprint.pprint(s3.list_buckets());

但不断出现 AccessDenied 错误:

<Error>
    <Code>AccessDenied</Code>
    <Message>Access Denied</Message>
    <Resource></Resource>
    <RequestId><redacted></RequestId>
    <httpStatusCode>403</httpStatusCode>
</Error>

我从 "Service Credentials" 选项卡中选择了 aws_access_key_id 和 aws_secret_access_key。我为 AWS S3 使用了类似的代码,并且有效。我错过了什么?

支持 IAM 的 cos 使用略有不同的语法来创建客户端,该语法由 boto3 库的分支支持。

这是文档中的示例:https://console.bluemix.net/docs/services/cloud-object-storage/libraries/python.html