sac*_*024 6 copy amazon-s3 amazon-web-services
我有两个 S3 存储桶,其中包含两组不同的访问密钥和密钥。这是套装:
Bucket1, Key1, Secret1
Run Code Online (Sandbox Code Playgroud)
和
Bucket2, Key2, Secret2, Token
Run Code Online (Sandbox Code Playgroud)
我试图通过aws cli这样的方式触发 S3-S3 复制:
aws s3 cp s3://key1:secret1@Bucket1 s3://key2:secret2@Bucket2
Run Code Online (Sandbox Code Playgroud)
我有几个问题:
aws cli允许将密钥和秘密指定为 S3 Url 的一部分?实现此用例的最佳方法是什么?
要在 Amazon S3 存储桶之间复制文件,您必须使用有权访问两个存储桶的凭证,或者将存储桶策略应用于允许访问的目标存储桶。
无法指定两组凭证,因为AWS 命令行界面 (CLI)仅调用单个 AWS API,该API执行“从”源存储桶直接复制到目标存储桶的操作。AWS CLI 不会下载对象——它只是告诉 S3 将对象复制到另一个存储桶(甚至可以位于不同的区域)。
因此,您应该在目标存储桶上创建一个存储桶策略,以允许正在使用的凭证(用户或角色)PutObject进入目标存储桶。
该政策将类似于:
{
"Version": "2012-10-17",
"Id": "Policy1",
"Statement": [
{
"Sid": "Stmt1",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::ACCOUNT-NUMBER:role/ROLE-NAME"
},
"Action": "s3:PutObject",
"Resource": "arn:aws:s3:::DESTINATION-BUCKET/*"
}
]
}
Run Code Online (Sandbox Code Playgroud)
以上假设是从具有指定角色的 Amazon EC2 实例调用命令。要从用户凭据调用,请使用:
"AWS": "arn:aws:iam::ACCOUNT-NUMBER:user/USER-NAME"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1221 次 |
| 最近记录: |