簡體   English   中英

AWS S3 拒絕除 1 個用戶之外的所有訪問 - 存儲桶策略

[英]AWS S3 deny all access except for 1 user - bucket policy

我已經在 AWS S3 中設置了一個存儲桶。 我使用 ALLOW 策略(使用存儲桶策略編輯器)授予我的 IAM 用戶訪問存儲桶的權限。 我能夠與用戶一起將文件保存到存儲桶中。 我之前一直在使用存儲桶進行媒體服務,因此默認操作似乎是授予公眾查看文件(圖像)的權限,這對大多數網站都適用。

在我的新項目中,我希望能夠使用 IAM 用戶訪問 S3 存儲桶,但希望拒絕所有其他訪問。 沒有公共讀取訪問權限,除了應該擁有保存/刪除任何內容的完全訪問權限的 IAM 用戶之外,沒有任何訪問權限。

看起來我應該做什么,我正在閱讀here 它說使用NotPrincipal屬性創建Deny策略,這樣它仍然會允許該用戶,但拒絕其他所有人。 為了更好地衡量,我還為我想要的用戶添加了一個Allow策略:

{
    "Version": "2012-10-17",
    "Id": "Policy**********",
    "Statement": [
        {
            "Sid": "Stmt**********",
            "Effect": "Deny",
            "NotPrincipal": {
                "AWS": "arn:aws:iam::*********:user/my_user"
            },
            "Action": "s3:*",
            "Resource": "arn:aws:s3:::my_bucket/*"
        },
        {
            "Sid": "Stmt*************",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::**********:user/my_user"
            },
            "Action": "s3:*",
            "Resource": "arn:aws:s3:::my_bucket/*"
        }
    ]
}

但這拒絕了所有人的訪問,甚至是my_user 當我剛剛使用上述策略的Allow部分時,我可以再次確認我有訪問權限,但是公眾也有讀取訪問權限,我試圖關閉它。

如何設置我的存儲桶策略以僅向唯一的 IAM 用戶授予完全訪問權限,並拒絕向任何其他用戶授予所有訪問權限?

謝謝。

這很簡單:

  • 默認情況下,存儲桶沒有公共訪問權限
  • 不要添加 Bucket Policy ,因為您不想授予訪問公共訪問權限
  • 相反,向 IAM 用戶添加一個授予他們訪問權限的策略

要意識到的主要事情是 IAM 用戶無法通過未經身份驗證的 URL(例如s3.amazonaws.com/bucket/file.jpg )訪問內容,因為 S3 不知道他們是誰。 當 IAM 用戶訪問內容時,他們將需要使用經過身份驗證的訪問,以便 S3 知道他們是誰,例如:

IAM 用戶的策略如下所示:

{
  "Effect": "Allow",
  "Action": "s3:*",
  "Resource": [
    "arn:aws:s3:::my_bucket",
    "arn:aws:s3:::my_bucket/*"
  ]
}

如果我理解正確,請僅允許 1 個 IAM 用戶訪問 buket。 我們可以使用桶策略。 我在 netApp 文檔中得到了這個。

{
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::95390887230002558202:federated-user/Bob"
      },
      "Action": [
        "s3:*"
      ],
      "Resource": [
        "arn:aws:s3:::examplebucket",
        "arn:aws:s3:::examplebucket/*"
      ]
    },
    {
      "Effect": "Deny",
      "NotPrincipal": {
        "AWS": "arn:aws:iam::95390887230002558202:federated-user/Bob"
      },
      "Action": [
        "s3:*"
      ],
      "Resource": [
        "arn:aws:s3:::examplebucket",
        "arn:aws:s3:::examplebucket/*"
      ]
    }
  ]
}

暫無
暫無

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

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