簡體   English   中英

允許用戶訪問特定 S3 存儲桶以進行備份的 AWS IAM 策略

[英]AWS IAM Policy to allow user access to specific S3 bucket for backup

我有一個支持將文件備份到 AWS S3 的 NAS。 我在 AWS 控制台中的 IAM 下創建了一個用戶,並嘗試生成一個策略,該策略僅允許該用戶訪問具有讀/寫權限的特定 S3 存儲桶。 以下是我生成的策略:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "Stmt1465916250000",
      "Effect": "Allow",
      "Action": [
          "s3:PutObject",
          "s3:PutObjectAcl"
        ],
        "Resource": [
         "arn:aws:s3:::atlas-nas-backups"
        ]
      }
   ]
}

但是,當我針對 S3 的所有操作通過策略模擬器運行此操作時,每個操作都失敗了。 我錯過了什么,這個用戶不能將對象寫入存儲桶? 除了能夠將文件備份到特定存儲桶之外,我不希望此用戶訪問任何其他 AWS 資源。

有怪癖斗權限,在那里你需要單獨指定桶本身它的鍵,使用/*通配符規范。 此外,即使對於寫操作,也可能需要 List 操作。

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "Stmt1465916250000",
      "Effect": "Allow",
      "Action": [
          "s3:PutObject",
          "s3:PutObjectAcl",
          "s3:ListBucket",
          "s3:GetBucketLocation"
        ],
        "Resource": [
         "arn:aws:s3:::atlas-nas-backups",
         "arn:aws:s3:::atlas-nas-backups/*"
        ]
      }
   ]
}

我還添加了“s3:GetBucketLocation”和“s3:ListBucket”操作。 如前所述,即使您只是在寫入對象,服務也可能希望列出項目並獲取存儲桶的位置(區域)。 您可能不需要最后兩個,但只是想向您展示以防萬一。

備份的最小策略只需要PutObjectListBucket

為什么是 ListBucket? 如果您只添加PutObject aws 會抱怨它缺少ListObjects權限。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": "s3:PutObject",
            "Resource": "arn:aws:s3:::atlas-nas-backups/*"
        },
        {
            "Sid": "VisualEditor1",
            "Effect": "Allow",
            "Action": "s3:ListBucket",
            "Resource": "arn:aws:s3:::atlas-nas-backups"
        }
    ]
}

暫無
暫無

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

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