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 命令檢視角色 ID aws iam get-role --role-name specified-name。例如,假設您指定易讀的名稱 John 且 CLI 傳回該角色 ID AROAXXT2NJT7D3SIQN7Z6。在這種情況下,聯合身分主體的使用者 ID 為 AROAXXT2NJT7D3SIQN7Z6:John。之後,此政策會允許聯合身分主體 John 使用字首 AROAXXT2NJT7D3SIQN7Z6:John 存取 Amazon S3 儲存貯體。

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