AWS iam模拟主体策略输出错误的anser



我为角色创建并附加了一个策略MyRole以创建快照,这就是策略:

{
"Version": "2010-10-10",
"Statement": [
{
"Action": [
"ec2:CreateSnapshot",
"ec2:CreateSnapshots",
],
"Resource": "*",
"Effect": "Allow",
"Sid": "CreateSnapshot"
},
]
}

但是,运行时:

aws --profile my_profile iam simulate-principal-policy --policy-source-arn arn:aws:iam::777777777777:role/MyRole --action-names ec2:CreateSnapshot --resource-arns "arn:aws:ec2:eu-west-1:777777777777:i-6a6aa66aa66aa6666"

我得到:

{
"EvaluationResults": [
{
"EvalActionName": "ec2:CreateSnapshot",
"EvalResourceName": "arn:aws:ec2:eu-west-1:777777777777:i-6a6aa66aa66aa6666",
"EvalDecision": "implicitDeny",
"MatchedStatements": [],
"MissingContextValues": [],
"OrganizationsDecisionDetail": {
"AllowedByOrganizations": false
}
}
]
}

我使用AWS CLI在这个实例上创建了一个快照,并成功了。这与模拟器输出相矛盾,模拟器输出决定该操作不能执行

我创建了这样的快照:

aws --profile my_profile ec2 create-snapshot --volume-id vol-xxxxxxxxxxxxxxxxx --tag-specifications 'ResourceType=snapshot,Tags=[{Key=MyTag,Value=true}]'

这里发生了什么事?为什么模拟器返回错误的结果

您用于获取快照的Updated CLI命令不会作为您创建的role(MyRole(执行。

而是以用户身份执行(--profile my_profile(。

要以MyRole的身份从CLI执行快照命令,您应该首先担任此角色,然后通过担任此角色使用收到的新凭据执行命令

aws sts assume-role --role-arn arn:aws:iam::777777777777:role/MyRole --role-session-name SOME_NAME

这给你类似的东西:

{
"Credentials": {
"AccessKeyId": "XXXX",
"SecretAccessKey": "XXXX",
"SessionToken": "XXXX",
"Expiration": "XXXX"
}
}

你可以做

export AWS_ACCESS_KEY_ID="XXXX"                                                                                      
export AWS_SECRET_ACCESS_KEY="XXXX"
export AWS_SESSION_TOKEN="XXXX"

然后

aws ec2 create-snapshot --volume-id vol-xxxxxxxxxxxxxxxxx --tag-specifications 'ResourceType=snapshot,Tags=[{Key=MyTag,Value=true}]'

记住,在最后一个命令中不要指定--profile。该CLI作为MyRole执行

或者,您可以按照本文档的要求在AWS CLI中使用IAM角色-这将自动为您承担角色

相关内容

  • 没有找到相关文章

最新更新