【发布时间】:2021-10-20 01:10:26
【问题描述】:
我无法同步连接到两个单独 AWS 账户的两个 S3 存储桶。
有两个 AWS 账户 - 由第三方管理的账户 A 和我管理的账户 B。我希望将文件从账户 A 中的 S3 存储桶提取到账户 B 中的 S3 存储桶。
帐户 A 向我提供了以下说明:
- 在账户 B 中,创建一个名为
LogsUser的新 IAM 用户。将以下策略附加到用户:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "sts:AssumeRole",
"Resource": "arn:aws:iam::ACCOUNTID:role/12345-LogAccess-role"
}
]
}
-
配置 AWS CLI 以更新配置和凭证文件。具体来说,
~/.aws/config文件看起来像:[profile LogsUser] role_arn = arn:aws:iam::ACCOUNTID:role/12345-LogAccess-role source_profile = LogsUser~/.aws/credentials文件看起来像aws_access_key_id = YOUR_ACCESS_KEY_ID aws_secret_access_key = YOUR_SECRET_ACCESS_KEY 从这里,我可以使用
$ aws s3 ls --profile LogsUser s3://bucket-a成功查询账户A存储桶中的日志文件。
我在帐户 B 中设置了 bucket-b,但是,我无法查询 bucket-b 中的任何文件。例如,$ aws s3 ls --profile LogsUser s3://bucket-b 返回An error occurred (AccessDenied) when calling the AssumeRole operation: Access denied。
我是否可以向配置文件或我的 IAM 策略添加其他内容以允许使用 --profile LogsUser 选项访问 bucket-b?我可以使用其他--profile 设置访问bucket-b,但我不想同步到本地文件系统,然后再同步到另一个存储桶。
想要的结果是运行类似aws s3 sync s3://bucket-a s3://bucket-b --profile UserLogs的命令。
【问题讨论】:
标签: amazon-web-services amazon-s3 amazon-ec2 amazon-iam