Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services S3具有角色的跨帐户访问_Amazon Web Services_Amazon S3_Amazon Iam - Fatal编程技术网

Amazon web services S3具有角色的跨帐户访问

Amazon web services S3具有角色的跨帐户访问,amazon-web-services,amazon-s3,amazon-iam,Amazon Web Services,Amazon S3,Amazon Iam,我需要创建一个跨帐户角色,以便从我拥有的另一个aws帐户访问S3 bucket的资源 请帮助我使用跨帐户IAM角色实现此功能,而不使用访问或密钥。假设您有: 帐户A中的角色A 帐户A中与角色A关联的实例A 帐户B中的存储桶B 您希望允许实例A上的应用程序访问Bucket B的内容 文档中有一个表格,显示了aws:userid的各种值,包括: 对于分配给Amazon EC2实例的角色,它设置为角色id:EC2实例id 因此,您可以使用与Amazon EC2实例关联的角色的角色ID来允许访问,或

我需要创建一个跨帐户角色,以便从我拥有的另一个aws帐户访问S3 bucket的资源

请帮助我使用跨帐户IAM角色实现此功能,而不使用访问或密钥。

假设您有:

  • 帐户A中的角色A
  • 帐户A中与角色A关联的实例A
  • 帐户B中的存储桶B
您希望允许实例A上的应用程序访问Bucket B的内容

文档中有一个表格,显示了aws:userid的各种值,包括:

对于分配给Amazon EC2实例的角色,它设置为
角色id:EC2实例id

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

例如,此bucket策略基于角色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*"
                    ]
                }
            }
        }
    ]
}
{
    "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,请使用:

aws iam get-role --role-name ROLENAME
此bucket策略基于实例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*"
                    ]
                }
            }
        }
    ]
}
{
    "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机器映像(AMI)启动,也会分配一个新实例

当然,您可能希望将这些权限限制为仅
s3:GetObject
,而不是
s3:


(这个答案基于。)

你的两个例子都是一样的——我想是错了吧?@PeterKilczuk-True!我做了一次编辑(从以前的编辑中恢复实例ID),希望能修复它。非常感谢。