S3交叉帐户访问带有角色



我需要创建一个跨帐户角色,以从我拥有的另一个AWS帐户中访问S3存储桶的资源。

请帮助我使用Cross帐户IAM角色实施此功能,而无需使用访问或秘密键。

假设您有:

  • 在帐户中的角色a
  • 实例a与角色A
  • 相关的帐户A中
  • 帐户中的桶B

您希望允许应用程序A访问BucketB。

的内容

您可以将其用于策略变量文档的请求信息显示了一个表,显示了aws:userid的各种值,包括:

对于分配给Amazon EC2实例的角色,将其设置为role-id:ec2-instance-id

因此,您可以使用与Amazon EC2实例关联的角色的角色ID 允许访问或实例ID

例如,此存储策略基于角色ID

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "SID123",
            "Effect": "Allow",
            "Action": [
                "s3:*"
            ],
            "Resource": [
                "arn:aws:s3:::MYBUCKET",
                "arn:aws:s3:::MYBUCKET/*"
            ],
            "Principal": "*",
            "Condition": {
                "StringLike": {
                    "aws:userid": [
                        "AROAIIPEUJOUGITIU5BB6*"
                    ]
                }
            }
        }
    ]
}

要获得角色ID,请使用:

aws iam get-role --role-name ROLENAME

此存储牌策略基于实例ID

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "SID123",
            "Effect": "Allow",
            "Action": [
                "s3:*"
            ],
            "Resource": [
                "arn:aws:s3:::MYBUCKET",
                "arn:aws:s3:::MYBUCKET/*"
            ],
            "Principal": "*",
            "Condition": {
                "StringLike": {
                    "aws:userid": [
                        "*:i-03c9a5f3fae4b630a"
                    ]
                }
            }
        }
    ]
}

实例ID将保留在实例中,但是如果启动了新实例,即使是从同一Amazon Machine Image(AMI(启动的新实例。

当然,您可能想将这些权限限制在s3:GetObject而不是s3:*

(基于基于角色名称授予对S3资源的访问的答案。(

相关内容

  • 没有找到相关文章

最新更新