访问客户端的 AWS S3 存储桶

阿努斯卡·W。

我们被要求将文件上传到客户的 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.extthe-client-bucket文件名为destination-file-name.ext. 它们在存储桶中可能有不同的路径。

回顾一下:

  1. 客户创建一个权限非常有限的 IAM 用户。只需要 API 权限,不需要控制台。
  2. 您安装 AWS CLI
  3. 客户端为您提供访问密钥和密钥。
  4. 您使用凭据配置进行传输的机器
  5. 您现在可以将文件推送到存储桶。
  6. 您不需要 AWS 账户来执行此操作。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章