我们被要求将文件上传到客户的 S3 存储桶;但是,我们没有 AWS 账户(我们也不打算获得一个)。客户授予我们访问其 S3 存储桶的权限的最简单方法是什么?
我的建议是让您的客户为您创建一个用于上传的 IAM 用户。然后,您将需要安装 AWS cli。在您的客户端,将有一个用户,他们拥有的唯一权限是写入他们的存储桶。这可以很简单地完成,看起来像:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": [
"s3:PutObject"
],
"Resource": [
"arn:aws:s3:::the-bucket-name/*",
"arn:aws:s3:::the-bucket-name"
]
}
]
}
我没有彻底测试过上面的权限!
然后,在您这边,安装 AWS cli 后,您需要有两个文件。它们都位于运行脚本的用户的主目录中。第一个是$HOME/.aws/config
。这有类似的东西:
[default]
output=json
region=us-west-2
您需要询问他们存储桶所在的 AWS 区域。接下来是$HOME/.aws/credentials
. 这将包含以下内容:
[default]
aws_access_key_id=the-access-key
aws_secret_access_key=the-secret-key-they-give-you
他们必须为您提供区域、访问密钥、密钥和存储桶名称。有了这一切,你现在可以运行类似的东西:
aws s3 cp local-file-name.ext s3://the-client-bucket/destination-file-name.ext
这会将本地文件传输local-file-name.ext
到the-client-bucket
文件名为destination-file-name.ext
. 它们在存储桶中可能有不同的路径。
回顾一下:
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句