[英]How to grant full permissions on an S3 bucket for an IAM user using boto3?
我正在使用 username 作為username
動態創建多個 IAM 用戶,並使用username-bucket
作為名稱創建一個 S3 存儲username-bucket
。
我想在以username-bucket
作為名稱創建的 s3 存儲桶上為新創建的用戶授予完全權限。
我已經閱讀了boto3
文檔,其中他們將策略分配給s3
存儲桶。 https://boto3.amazonaws.com/v1/documentation/api/latest/guide/s3-example-bucket-policies.html
但它適用於任何用戶。 沒有選項可以傳遞應該對存儲桶具有權限的用戶名。
在boto3
是否有這樣的選擇?
與在您鏈接的示例中將Principal
設置為*
,您希望使用以下格式將用戶指定為Principal
:
"Principal": {"AWS":"arn:aws:iam::account-number-without-hyphens:user/username"}
有關在 S3 存儲桶策略中指定Principal
更多信息,請參閱此處的文檔。
替代建議:您可以授予每個用戶訪問共享存儲桶中目錄的權限,而不是為每個用戶提供自己的存儲桶。
這允許您使用更易於管理的IAM 策略變量。
來自IAM 策略元素:變量和標簽 - AWS Identity and Access Management :
{
"Version": "2012-10-17",
"Statement": [
{
"Action": ["s3:ListBucket"],
"Effect": "Allow",
"Resource": ["arn:aws:s3:::mybucket"],
"Condition": {"StringLike": {"s3:prefix": ["${aws:username}/*"]}}
},
{
"Action": [
"s3:GetObject",
"s3:PutObject"
],
"Effect": "Allow",
"Resource": ["arn:aws:s3:::mybucket/${aws:username}/*"]
}
]
}
存儲桶上的這一單一策略將允許每個用戶訪問他們自己的目錄。 用戶名將自動插入到策略中。 這意味着您只需使用一個策略創建一個存儲桶。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.