amazon-web-services - 使用跨账户角色从账户 B 中的 EC2 实例访问账户 A 中的 S3 存储桶
问题描述
介绍
Account-A
sample-s3-bucket-in-account-a
此账户中有一个 S3 存储桶 ( )AWS KMS
此 S3 存储桶使用(SSE-KMS
)配置了服务器端加密- AMS KMS 密钥是
aws/s3
(AWS 托管密钥) - 桶没有桶策略
sample-cross-account-role-4-s3-access-in-account-a
此账户中创建了 一个 IAM 跨账户角色 ( )Account-B
是受信任的实体(信任策略)- 权限策略允许对 S3 存储桶 (
sample-s3-bucket-in-account-a
) 执行以下操作:s3:ListBucket
s3:GetBucketLocation
s3:GetObject
Account-B
- 此账户中有一个 EC2 实例
- 还有一个 IAM 实例配置文件和角色 (
sample-iam-role-4-ec2-in-account-b
) - IAM 实例配置文件有权代入
sample-cross-account-role-4-s3-access-in-account-a
在Account-A
- IAM 实例配置文件附加到 EC2 实例
给定事实
- 我可以在 EC2 实例上
Account-B
使用aws sts assume-role --role-arn arn:aws:iam::[ACCOUNT-A]:role/sample-cross-account-role-4-s3-access-in-account-a --role-session-name s3-cross-account-access-session
. 使用这些临时 STS 凭证,我可以列出 S3 存储桶中存在的对象Account-A
profile
我可以在~/.aws/config
文件中创建一个并profile name
在 aws CLI 中使用它来访问 S3 存储桶中存在的对象Account-A
(参考:https ://aws.amazon.com/premiumsupport/knowledge-center/s3-instance-access-bucket/ )
问题
- 我有一个
CodeDeploy
在 EC2 实例上运行的代理 CodeDeploy
代理使用AWS SDK for Ruby
CodeDeploy
代理使用特权root
运行- 代理正在使用实例配置文件/角色 ( )在
CodeDeploy
内部生成 STS 凭证sample-iam-role-4-ec2-in-account-b
http://169.254.169.254/latest/meta-data/iam/security-credentials/sample-iam-role-4-ec2-in-account-b
- 不幸的是,这些临时 STS 凭证不允许
CodeDeploy
代理从 S3 存储桶中下载对象Account-A
Access Denied
日志中有错误- 我可以使用 S3 存储桶策略使事情正常进行,但要求是使用跨账户 IAM 角色
谁能告诉我如何制作或配置CodeDeploy
代理运行Account-B
以sample-cross-account-role-4-s3-access-in-account-a
代替sample-iam-role-4-ec2-in-account-b
?
解决方案
我可以使用 S3 存储桶策略使事情正常进行,但要求是使用跨账户 IAM 角色
您不能这样做,除非您编写自己的程序,该程序将作为appspec.yml
. 您的程序必须“手动”承担角色并获取 S3 对象。
否则,S3 存储桶策略是唯一这样做的原因。
推荐阅读
- javascript - 如何使用 three.js 渲染具有不透明度分布的管?
- python - 测试包装 api 路由的装饰器
- python - 如何在 Python 中使用 Google 的 Text-to-Speech API
- python - Python套接字 - 从服务器接收不起作用
- codemirror - 如何在codemirror中添加class和id
- asp.net-web-api - 如何在 web api 中注册模型绑定器?
- html - 1. css 中的链接不起作用 2. 如何垂直居中导航栏并在每个导航栏上添加填充
- java - MySql 正在记录我的更新查询,但实际上并没有执行更新
- javascript - 调用嵌套函数 onClick 事件不识别嵌套函数
- f# - F#:获取源文件以自动评估