使用 STS 创建的联合用户是否存在规范用户 ID?使用 boto 时,我需要一个规范的用户 ID 来授予对存储桶的权限。
下面是我的代码的快速浏览:
我已经使用 boto 的 STS 模块(使用“主”帐户)成功创建了临时凭证,这给了我返回:
- federated_user_arn
- federated_user_id
- packed_policy_size
- 访问 key
- secret_key
- session token
- 到期
然后我使用 boto 创建存储桶:
bucket = self.s3_connection.create_bucket('%s_store' % (app_id))
现在我想授予权限我在 boto 中有两个选择:
add_email_grant(permission, email_address, recursive=False, headers=None)
add_user_grant(permission, user_id, recursive=False, headers=None, display_name=None)
第一种方法不是一个选项,因为联合用户没有附加电子邮件,所以我看第二种方法。这里的第二个参数(“userid”)是“与您授予权限的 AWS 账户关联的规范用户 ID。”但我似乎无法找到一种方法这适用于联合用户。
联合用户是否存在规范用户 ID?我是否忽略了向联合用户授予权限的更简单方法?
请您参考如下方法:
联系了boto的作者,了解到:
S3Connection 类的 get_canonical_user_id()。
这将为您提供与连接关联的凭据的规范用户 ID。该连接必须已用于某些操作(例如:列出存储桶)。
非常尴尬,但有可能。
