出于安全原因,我们有一个dev,QA和prod AWS账户 . 我们正在为实例使用IAM角色 . 这在每个帐户的基础上正常工作 .
现在招聘的是我们想要从Dev aws账户中的一个QA账户的EC2实例上访问多个aws服务(例如S3,SQS,SNS,EC2等) .
我们创建了STS策略和角色,允许 Trusted entities 作为另一个AWS账户,但不知何故无法将此角色附加到EC2实例 .
示例STS策略:
{
"Version": "2012-10-17",
"Statement": {
"Effect": "Allow",
"Action": "sts:AssumeRole",
"Resource": "arn:aws:iam::546161XXXXXX:role/AdminAccessToAnotherAccount"
}
}
AdminAccessToAnotherAccount: 这个具有管理员访问权限的另一个帐户的政策 .
附加到ec2实例时未列出此角色 .
1 回答
您的情况似乎是:
您在Account-1中有一个EC2实例
IAM角色("Role-1")已分配给EC2实例
您想从EC2实例访问Account-2中的资源
以下步骤可以启用此功能:
在Account-2("Role-2")中创建具有您希望实例接收的权限的IAM角色
将信任策略添加到Role-2,信任Role-1
确认Role-1有权在Role-2上调用AssumeRole
在使用Role-1的EC2实例中,在Role-2上调用AssumeRole
它将返回一组凭据(访问密钥,密钥,令牌)
使用这些凭据访问Account-2中的服务(通过
aws configure --profile foo
或API调用)例子:
Using Temporary Security Credentials to Request Access to AWS Resources
Cross-Account Access Control with Amazon STS for DynamoDB