我正在做一些圍繞使用S3的研究。 我想實現的基本上是像在文件系統上一樣控制對S3存儲桶中對象的訪問,但對於IAM聯合用戶來說。限制聯合IAM用戶在對象級別訪問Amazon S3
假設以下情形
Bucket
|- File 1.txt -> ACL: Read: User1; Read: User 2
|- File 2.txt -> ACL: Read: Everyone; Read, Write: User 2
|- File 3.txt -> ACL: Read: Group 1; Read, Write: User 2
可以利用ACL和亞馬遜的「原生」的用戶和組來實現這種配置。另一方面,對於聯合用戶,我唯一能夠找到的就是使用分配的存儲桶策略生成臨時令牌。
如果我理解正確的話,鬥式控制正在比ACL相反的方式工作(定義了哪些對象的用戶可以訪問,而ACL定義誰有權訪問的對象)
我的問題是。是否可以在ACL中分配聯合用戶(或以其他方式爲聯合用戶設置相同的目標)?
我想才達到一樣,你必須在羣體和你標記對象的用戶,其組可以訪問他們
假設場「文件系統中相同的行爲X-AMZ-薈萃seclevels'包含有權訪問文件(Group1,Group2,admin3rdfloor)的組,並提供與IAM Federated用戶相關的政策(這不正確,但我想描述我心目中的內容),我可以授予此用戶訪問權限到x-amz-meta-seclevels字段中包含admin3rdfloor值的所有文件。
{
'Statement': [
{
'Sid': 'PersonalBucketAccess',
'Action': [
's3:GetObject'
],
'Effect': 'Allow',
'Resource': 'arn:aws:s3:::MyBucketName'
'Condition':{
'StringLike':{
's3:x-amz-meta-seclevels':'admin3rdfloor'
}
}
}
]
}
這是任何方式實現的?
感謝您的幫助!
如果我正確理解此政策,我給$ {aws:username}訪問myBucket/home/$ {aws:username}/*中的所有文件,這不能解決我的問題。在我的情況下,所有文件都在一個沒有文件夾的桶中。完全平坦的結構。我想爲聯邦用戶生成策略,這將允許此用戶根據ACL或其他可以與策略匹配的自定義元數據僅訪問文件的子集。 – Midi
您是否找到任何解決方案?我也有同樣的問題。 – Arash
@Arash:其實我每次用戶訪問文件時都會創建一個解決方案,創建預先註冊的url。我們正在將文件元數據存儲在SQL中,並且有一個端點,用戶正在請求指定它的元數據的文件。我們正在檢查他是否有適當的權利,如果一切正常,我們將他重定向到生成的預先登記的網址。 – Midi