簡體   English   中英

S3 存儲桶策略可以覆蓋 IAM 策略嗎?

[英]Can S3 bucket-policy override IAM policy?

  1. 我創建了一個 S3 存儲桶和一個 EC2 實例。
  2. 我已將一個角色附加到包含AmazonS3ReadOnlyAccess策略的 EC2 實例。
  3. 使用 EC2 實例中的 AWS CLI 列出我的 S3 存儲桶的所有內容
  4. 我創建了一個存儲桶策略,以防止對該存儲桶的任何主體進行任何操作:
"Action": "s3:*",
      "Effect": "Deny",
      "Resource": "arn:aws:s3:::ananda-demo-bucket-1/",
      "Principal": "*"

但是,從我的 EC2 實例中,我仍然可以列出我的存儲桶的內容。 這是否意味着我無法使用自定義存儲桶策略覆蓋 AWS IAM 策略,或者我創建的存儲桶策略是錯誤的?

是的,它確實可以覆蓋策略,但僅限於使用拒絕的地方。 如果它包含允許但 IAM 策略包含拒絕,則不會評估為允許。

為了讓您的策略拒絕 S3 存儲桶內的所有操作,存儲桶策略中的資源應包括以下內容:

  • arn:aws:s3:::ananda-demo-bucket-1
  • arn:aws:s3:::ananda-demo-bucket-1/*

通過使用*的主體執行此操作,您將拒絕訪問所有內容,因此您將無法再從任何資源(包括控制台)與此 S3 存儲桶進行交互,您應該在進行如此大的更改之前意識到這一點. 嘗試限制您拒絕的操作,以便在控制台中仍然可以使用 S3 存儲桶的管理。

為了在任何權限評估中概括策略評估邏輯,如果有任何來自以下之一的拒絕,則該操作將被拒絕:

  • 服務控制政策
  • IAM 邊界
  • 資源政策
  • IAM 政策

完整的評估流程如下所示

在此處輸入圖像描述

有關更多信息,請查看 AWS 文檔中的策略評估邏輯頁面。

一些命令在存儲桶級別運行,而其他命令在對象級別運行。

嘗試這個:

      "Action": "s3:*",
      "Effect": "Deny",
      "Resource": [
         "arn:aws:s3:::ananda-demo-bucket-1",
         "arn:aws:s3:::ananda-demo-bucket-1/*",
      ]
      "Principal": "*"

暫無
暫無

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

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