使用STS创建的联合用户是否存在规范用户id?当使用boto时,我需要一个规范的用户id来授予bucket权限。
下面是我的代码的快速浏览:
-
我已经成功地使用boto的STS模块(使用"主"帐户(创建了临时凭据,这给了我回报:
- 联邦用户arn
- 联邦用户id
- packed_policy_size
- access_key
- secret_key
- 会话令牌
- 过期
-
然后我使用boto:创建bucket
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_canocal_user_id((。
这将为您提供与连接相关联的凭据的规范用户ID。该连接必须用于某些操作(例如:列出存储桶(。
非常尴尬,但有可能。