我是 AWS 的新手,我有一個場景,我需要根據標簽授予對 s3 物件的訪問權限。我使用我的根賬戶創建了 IAM 用戶并將以下策略附加到用戶。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "*",
"Resource": "*",
"Condition": {
"StringEquals": {
"s3:ExistingObjectTag/role": "developer"
}
}
}
]
}
現在我有許多檔案的桶,并用標簽role和值標記了一個檔案,developer這樣我的用戶只能看到我標記的一個檔案。
https://imgur.com/a/tEe0rCw
https://imgur.com/a/Npq9gb??4
但是當我使用 IAM 用戶登錄時,我沒有看到任何存盤桶。理想情況下,我希望我會看到帶有相關檔案的存盤桶(帶有正確標簽的檔案)
https://imgur.com/a/t7GSlxS
我嘗試了其他幾個選項,但沒有一個選項有效。我嘗試的另一個選擇是
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:GetObject",
"s3:ListObject"
],
"Resource": "arn:aws:s3:::general-eda/*",
"Condition": {
"StringEquals": {
"s3:ExistingObjectTag/role": "developer"
}
}
}
]
}
我做錯了什么還是用戶應該擁有任何其他權限,以便標簽按預期作業。任何幫助表示贊賞。
Edit1:根據評論,我編輯了我的政策,但仍然無法正常作業
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:GetObject",
"s3:ListObject"
],
"Resource": "*",
"Condition": {
"StringEquals": {
"s3:ExistingObjectTag/role": "developer"
}
}
},
{
"Effect": "Allow",
"Action": "s3:ListAllMyBuckets",
"Resource": "*"
}
]
}
uj5u.com熱心網友回復:
您的政策基本上是說“只要物件具有”標簽,就允許此人在 AWS上執行任何role:develop操作。
但是,很少有對 AWS 的 API 呼叫可以使用此 Condition。它們是:DeleteObjectTagging, DeleteObjectVersionTagging, GetObject, GetObjectAcl, GetObjectAttributes, GetObjectTagging, GetObjectVersion, GetObjectVersionAcl, GetObjectVersionAttributes, GetObjectVersionTagging, PutObjectAcl, PutObjectTagging, PutObjectVersionAcl,PutObjectVersionTagging
請參閱:Amazon S3 的操作、資源和條件鍵 - 服務授權參考
因此,任何不是上述之一的 API 呼叫都將由于您的 IAM 策略中的條件而失敗。
要列出存盤桶的內容,您需要向s3:ListBucket用戶授予權限。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/517069.html
