2

使用 STS 创建的联合用户是否存在规范用户 ID?使用 boto 时,我需要一个规范的用户 ID 来授予对存储桶的权限。

这是我的代码的快速浏览:

  1. 我已经使用 boto 的 STS 模块(使用“主”帐户)成功创建了临时凭据,这给了我回报:

    • federated_user_arn
    • federated_user_id
    • 打包策略大小
    • 访问密钥
    • 密钥
    • session_token
    • 到期
  2. 然后我使用 boto 创建存储桶:

    bucket = self.s3_connection.create_bucket('%s_store' % (app_id))

  3. 现在我想授予权限,我在 boto 中有两个选择:

    add_email_grant(权限,email_address,recursive=False,headers=None)

    add_user_grant(权限,user_id,recursive=False,headers=None,display_name=None)

第一种方法不是一个选项,因为联合用户没有附加电子邮件,所以我看第二种。这里的第二个参数(“userid”)是“与您授予权限的 AWS 账户关联的规范用户 ID”。但我似乎无法为联合用户找到一种方法。

联合用户是否存在规范用户 ID?我是否忽略了一种更简单的向联合用户授予权限的方法?

4

1 回答 1

1

联系了boto的作者,了解到:

get_canonical_user_id() 用于 S3Connection 类。

这将为您提供与连接关联的凭据的规范用户 ID。该连接必须已用于某些操作(例如:列出存储桶)。

非常尴尬,但可能。

于 2011-11-10T03:54:58.127 回答