1 回答
- 最新
- 投票最多
- 评论最多
0
【以下的回答经过翻译处理】 我在自己的账户中测试了策略,与你一样收到了相同的错误,无论我是从同一组织的IAM Identity Store中提供了一个UserID,还是来自另一个组织。
我在自己的环境中进行了进一步的测试,找到了一个解决方法,你可以使用条件键“aws:userId” [1] 可能允许访问s3存储桶。条件键“aws:userId”允许您限制对Identity Center(IDC)用户名和它在其他账户中扮演的角色的访问,下面是示例策略:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "UserID",
"Effect":"Allow",
"Principal": "*",
"Action": [
"s3:GetObject",
"s3:GetObjectVersion"
],
"Resource":"arn:aws:s3::: mybucket / *",
"Condition": {
"StringLike": {
"aws:userId": "AROAJI4AVV3EXAMPLEID:SSOUserName"
}
}
}
]
}
在上述策略中,GetObject被限制为IDC用户所扮演的特定IAM角色。 aws:userID条件键值具有以下格式:UNIQUE-ROLE-ID:ROLE-SESSION-NAME。
要获得UNIQUE-ROLE-ID,可以使用get-role cli命令[2],需要从尝试访问您的帐户中的s3存储桶的帐户中运行此命令。角色名称可以在IAM控制台中找到,并且将是以下格式“AWSReservedSSO_PermissionSetID_RandomizedCharectors”:
iam get-role –role-name ROLE-NAME.
从输出中,UNIQUE-ROLE-ID 将是以 AROA 开头的 RoleId 字符串。
ROLE-SESSION-NAME 将等于用户用于登录 AWS Identity Center 的用户名。 您还可以通过在其他账户的 IAM 身份中心查看用户来确认用户名。
相关内容
- AWS 官方已更新 8 个月前
- AWS 官方已更新 1 年前
- AWS 官方已更新 2 年前