amazon-web-services - 公共(public)存储桶的跨账户 S3 访问

标签 amazon-web-services amazon-s3 amazon-iam

存储桶策略

{
    "Version": "2012-10-17",
    "Id": "Policy1589032691178",
    "Statement": [
        {
            "Sid": "Stmt1589032265458",
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::<BUCKET>/*"
        }
    ]
}

这将允许所有用户读取对象。

附加到 AWS 账户 1 中的用户 ABC 的 IAM 策略

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": "s3:ListBucket",
            "Resource": "arn:aws:s3:::<BUCKET>"
        },
        {
            "Sid": "VisualEditor1",
            "Effect": "Allow",
            "Action": [
                "s3:PutObject",
                "s3:GetObject",
                "s3:DeleteObject"
            ],
            "Resource": "arn:aws:s3:::<BUCKET>/*"
        }
    ]
}

通过此设置,任何人都可以公开读取对象

IAM 策略附加到用户 ABC,因此 ABC 有权访问列表、放置、获取、删除

现在的问题是 如果 AWS 账户 2 中的某人创建用户 XYZ 并附加与上述相同的 IAM 策略 AWS 账户 2 中的 XYZ 用户是否能够列出、获取、放置、删除?

最佳答案

您发布的内容类似于基于资源和 IAM 策略跨账户访问。

为了允许账户 2 中的用户 XYZ 对账户 1 中的存储桶执行上述操作,除了您为用户 XYZ 指定的策略之外,您还需要在存储桶的策略中为用户 XYZ 指定允许的操作。

另一种方法是允许跨账户 IAM 角色代入,其中账户 2 中的用户可以代入账户 1 中的角色,从而授予对账户 1 中 S3 存储桶的所需访问权限。

更多信息和示例可以在 https://aws.amazon.com/premiumsupport/knowledge-center/cross-account-access-s3/ 找到

关于amazon-web-services - 公共(public)存储桶的跨账户 S3 访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61698673/

相关文章:

android - Amazon s3 文件从安卓下载

amazon-web-services - SAML IdP - AWS Cognito/IAM 作为身份提供商

amazon-web-services - --auth-dry-run in AWS cli 丢失了吗?

amazon-web-services - 云前端支持 Nginx(S3 的代理)随机丢失已缓存的项目?

amazon-web-services - 在 CloudFormation 上使用 JdbcTargets 指定 Glue::Crawler

python - AWS Elastic Beanstalk 命令行工具无法在 Mac 上运行

Python configparser 从 S3 读取配置而不下载

database - 亚马逊 AWS : Multiple Instances, 相同的数据库

amazon-web-services - 用户无权执行: cloudformation:CreateStack

amazon-web-services - 上传 CodeBuild 工件*如果*它们存在