Amazon S3:可讓聯合身分使用者以程式設計方式和在主控台存取其 S3 主目錄 - AWS Identity and Access Management

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

Amazon S3:可讓聯合身分使用者以程式設計方式和在主控台存取其 S3 主目錄

此範例會示範如何建立身分型政策,允許聯合身分使用者在 S3 中存取自己的主目錄儲存貯體物件。主目錄是一個儲存貯體,其中包含 home 資料夾和個別聯合身分使用者的資料夾。此政策定義了程式設計和主控台存取的許可。若要使用此原則,請取代 italicized placeholder text 在示例策略中使用您自己的信息。然後,遵循建立政策編輯政策中的指示進行操作。

此政策中的 ${aws:userid} 變數會解析成 role-id:specified-name。聯合身分使用者 ID 的 role-id 部分是在建立期間指派給聯合身分使用者的唯一識別符。如需詳細資訊,請參閱唯一識別碼。當同盟使用者擔任其角色時,會傳送至AssumeRoleWithWebIdentity要求的RoleSessionName 參數specified-name

您可以使用 AWS CLI 指令aws iam get-role --role-name specified-name。例如,假設您指定好記的名稱,John並CLI傳回角色 ID AROAXXT2NJT7D3SIQN7Z6。在這種情況下,聯合身分使用者 ID 會是 AROAXXT2NJT7D3SIQN7Z6:John。此政策然後就會允許聯合身分使用者 John 使用字首 AROAXXT2NJT7D3SIQN7Z6:John 存取 Amazon S3 儲存貯體。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "S3ConsoleAccess", "Effect": "Allow", "Action": [ "s3:GetAccountPublicAccessBlock", "s3:GetBucketAcl", "s3:GetBucketLocation", "s3:GetBucketPolicyStatus", "s3:GetBucketPublicAccessBlock", "s3:ListAccessPoints", "s3:ListAllMyBuckets" ], "Resource": "*" }, { "Sid": "ListObjectsInBucket", "Effect": "Allow", "Action": "s3:ListBucket", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket", "Condition": { "StringLike": { "s3:prefix": [ "", "home/", "home/${aws:userid}/*" ] } } }, { "Effect": "Allow", "Action": "s3:*", "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket/home/${aws:userid}", "arn:aws:s3:::amzn-s3-demo-bucket/home/${aws:userid}/*" ] } ] }