簡體   English   中英

AWS EC2 訪問被拒絕 S3 跨賬戶

[英]AWS EC2 Access Denied S3 Cross Account

我有兩個aws帳戶A和B。

在賬戶 A 中,我有一個 EC2 在一個私有子網中的一個 vpc 內運行,該子網開啟了 NAT。 此 EC2 具有以下作用:

AWS 賬戶 A - EC2 角色 受信任實體:

{
"Version": "2012-10-17",
"Statement": [
    {
        "Effect": "Allow",
        "Principal": {
            "Service": "ec2.amazonaws.com"
        },
        "Action": "sts:AssumeRole"
    }
]

}

AWS 賬戶 A - EC2 角色策略:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": "sts:AssumeRole",
            "Resource": "arn:aws:iam::ACCOUNT-B-NUMBER:role/aws-access-s3"
        }
    ]
}

在賬戶 B 中,我創建了一個 aws 賬戶角色,傳遞了 aws 賬戶 A 編號。

AWS 賬戶 B - 角色 aws-access-s3 可信實體:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::ACCOUNT-A-NUMBER:root"
            },
            "Action": "sts:AssumeRole",
            "Condition": {}
        }
    ]
}

AWS 賬戶 B - 角色 aws-access-s3 策略:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:*",
                "s3-object-lambda:*"
            ],
            "Resource": "*"
        }
    ]
}

這些是我的設置,當我嘗試運行命令以在賬戶 A 的 ec2 中列出賬戶 B 存儲桶時,出現錯誤:

aws s3 ls bucket-name-account-b

回報:

An error occurred (AccessDenied) when calling the ListObjectsV2 operation: Access Denied

我不知道我錯過了什么,我希望有人能幫助我。

您需要創建一個配置文件以使此過程自動化。 您可以將以下內容添加到您的.aws/config文件中

[profile mys3profile]
region = $region
output = json

並將以下內容添加到您的.aws/credentials文件中。

[mys3profile]   
role_arn = arn:aws:iam::accountb:role/yourrole
credential_source = Ec2InstanceMetadata

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM