簡體   English   中英

從 EC2 實例訪問具有相同訪問策略的 S3 存儲桶,但結果不同

[英]Accessing S3 buckets with same access policy from EC2 instance with different results

我在同一個帳戶中有兩個不同的存儲桶,它們都有相同的訪問策略

第一個存儲桶策略是

{
    "Version": "2012-10-17",
    "Id": "Policy0",
    "Statement": [
        {
            "Sid": "Stmt0",
            "Effect": "Allow",
            "Principal": {
                "AWS": [
                    "arn:aws:iam::<account>:role/MyEC2Role0",
                    "arn:aws:iam::<account>:role/MyEC2Role1"
                ]
            },
            "Action": "s3:*",
            "Resource": [
                "arn:aws:s3:::bucket-uploads",
                "arn:aws:s3:::bucket-uploads/*"
            ]
        }
    ]
}

第二個存儲桶策略相同,但更改存儲桶名稱

{
    "Version": "2012-10-17",
    "Id": "Policy1",
    "Statement": [
        {
            "Sid": "Stmt1",
            "Effect": "Allow",
            "Principal": {
                "AWS": [
                    "arn:aws:iam::<account>:role/MyEC2Role0",
                    "arn:aws:iam::<account>:role/MyEC2Role1"
                ]
            },
            "Action": "s3:*",
            "Resource": [
                "arn:aws:s3:::bucket-exchange",
                "arn:aws:s3:::bucket-exchange/*"
            ]
        }
    ]
}

我從運行 Win16 Server 的 EC2 實例訪問這兩個存儲桶。 實例角色是MyEC2Role1 ,它分配了策略AmazonS3FullAccess並且它也屬於同一個賬戶。

當我運行 AWS CLI 命令aws s3 ls s3://bucket-uploads/時,它成功並列出了存儲桶的內容。 但是,當我運行aws s3 ls s3://bucket-exchange/時,它會引發以下錯誤

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

我一次又一次地比較了存儲桶的屬性和策略,但沒有發現任何區別,我在 AWS 文檔中搜索了該錯誤的故障排除,我也搜索了很長時間,我重新創建了存儲桶和任何東西工作。

有沒有人有同樣的問題? 關於解決方案或任何嘗試的想法?

謝謝。

我發現了我的錯誤,所以解決了我的問題。

我的 EC2 實例屬於一個 VPC,它定義了一個帶有附加策略的端點,該策略控制對 S3 存儲桶的訪問。 沒有意識到這一點並且沒有在我最初的問題中提及它是我的錯。

我已經修改了終端節點的策略以包含我想從我的 EC2 實例訪問的存儲桶,它允許所需的操作並消除錯誤。

總之,如果您無法從 EC2 實例訪問存儲桶且其策略(或 S3 存儲桶策略)正確,請檢查您的 VPC、其端點及其策略

暫無
暫無

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

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