0
我想定義一個限制訪問特定用戶的S3存儲桶級策略(例如使用Cognito ID)。爲什麼在桶策略中不能使用如下所示的Condition
塊?某些「條件」在AWS S3桶策略中不允許?
{
"Statement":[
{
"Effect":"Allow",
"Principal": "*",
"Condition": {
"StringEquals":{
"cognito-identity.amazonaws.com:aud":[
"us-east-1:12345678-abcd-abcd-abcd-123456790ab",
"us-east-1:98765432-dcba-dcba-dcba-123456790ab"
]
}
},
"Action":"s3:ListBucket",
"Resource":"arn:aws:s3:::my-bucket-name"
}
]
}
當我嘗試,我得到errror:
策略有一個無效的條件關鍵詞 - cognito-identity.amazonaws.com:aud
但此塊工作正常(減去本金)在用戶級策略中。我試圖理解規則是什麼,所以我不必盲目嘗試做出更改並「看看有什麼作用」。
要成爲可以從桶政策(例如資源URL內)引用${cognito-identity.amazonaws.com:sub}
;但我不能把它當作條件鍵(如上面的例子)。
因此:桶策略的規則與其他策略不同嗎?這是記錄在某處嗎?我特別喜歡這裏一個權威來源的指針,因爲我懷疑我可能錯過了一些重要的文檔。
我已經更新了我的帖子有一個完整的失敗的例子(即當我粘貼到一個S3桶政策 - 並更改名稱鬥匹配有問題的水桶 - 它失敗,出現錯誤贈送) 。從桶策略中* *可以參考'$ {cognito-identity.amazonaws.com:sub}';但我不能把它當作條件鍵(如上面的例子)。 – Bosh
抱歉誤解你的問題我編輯了答案 – fmog
謝謝 - 我也發現了這個解決方法。但我試圖理解*爲什麼*限制,以及它是否記錄在某處。我覺得我可能會錯過一些原則。 – Bosh