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

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

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

此範例示範如何建立身分型政策,允許聯合主體在 S3 中存取自己的主目錄儲存貯體物件。主目錄是一個儲存貯體,其中包含個別聯合主體的home資料夾和資料夾。此政策定義了程式設計和主控台存取的許可。若要使用此政策,請將範例政策中的斜體預留位置文字取代為您自己的資訊。然後,遵循建立政策編輯政策中的指示進行操作。

此政策中的 ${aws:userid} 變數會解析成 role-id:specified-name。聯合主體 ID role-id的一部分是在建立期間指派給聯合主體角色的唯一識別符。如需詳細資訊,請參閱唯一識別碼specified-name 是聯合委託人擔任其角色時傳遞給AssumeRoleWithWebIdentity請求的 RoleSessionName 參數

您可以使用 AWS CLI 命令 檢視角色 IDaws iam get-role --role-name specified-name。例如,假設您指定易讀的名稱 John 且 CLI 傳回該角色 ID AROAXXT2NJT7D3SIQN7Z6。在此情況下,聯合身分主體的使用者 ID 為 AROAXXT2NJT7D3SIQN7Z6:John。此政策接著允許聯合委託人 John 存取字首為 的 Amazon S3 儲存貯體AROAXXT2NJT7D3SIQN7Z6:John

JSON
{ "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}/*" ] } ] }