Permissions

嘗試撤銷對 CloudFront S3 儲存桶的公共訪問權限

  • May 31, 2020

所有 AWS 安全工具整天都在困擾我,因為我打開了公共 S3 儲存桶訪問。所以我肯定地說,我們唯一需要公共訪問的儲存桶是我們的雲端儲存桶,讓我解決這個問題,然後我可以使用新的“不要公開任何這些你有什麼問題”設置。我關注了 AWS 文件,https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-restricting-access-to-s3.html

因此,我進入了 cloudfront 發行版的來源,並將其設置為“限制儲存桶訪問”。我讓它創建一個新的原始訪問身份並將其應用於儲存桶。有用。我去檢查儲存桶權限/策略,現在它說:

{
   "Version": "2012-10-17",
   "Statement": [
       {
           "Sid": "AddPerm",
           "Effect": "Allow",
           "Principal": "*",
           "Action": "s3:GetObject",
           "Resource": "arn:aws:s3:::cloudfront-mycompany-us-west-2/*"
       },
       {
           "Sid": "2",
           "Effect": "Allow",
           "Principal": {
               "AWS": "arn:aws:iam::cloudfront:user/CloudFront Origin Access Identity E22JXXXXXKYVK2"
           },
           "Action": "s3:GetObject",
           "Resource": "arn:aws:s3:::cloudfront-mycompany-us-west-2/*"
       }
   ]
}

這一切看起來都很好。但是,當我“阻止公共訪問”該 S3 儲存桶時,我的網站會離線。我在 cloudtrail 和 cloudwatch 日誌中環顧四周,但看不到任何似乎表明原因的東西。

有沒有人讓 CloudFront 使用非公共 S3 儲存桶並知道我錯過了什麼步驟?

您有一個額外的語句(頂部)允許“*”訪問儲存桶的對象。您只需要底部策略即可允許 CloudFront 使用 OAI 訪問對象。當您“阻止所有公共訪問”時,它會看到您在那裡有一個公共條目,它可能只是禁用整個策略而不僅僅是頂部。刪除第一條語句,確保 OAI 與與您的 CF 發行版關聯的 OAI 相同,然後打開“阻止所有公共訪問”。如果 CloudFront 自動將其策略放在儲存桶上,則之前的語句已經從之前手動放置在儲存桶上。

引用自:https://serverfault.com/questions/1019201