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

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

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

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

您可以使用 AWS CLI 命令檢視角色 ID 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": [ { "Effect": "Allow", "Action": [ "s3:ListAllMyBuckets", "s3:GetBucketLocation" ], "Resource": "*" }, { "Effect": "Allow", "Action": "s3:ListBucket", "Resource": "arn:aws:s3:::bucket-name", "Condition": { "StringLike": { "s3:prefix": [ "", "home/", "home/${aws:userid}/*" ] } } }, { "Effect": "Allow", "Action": "s3:*", "Resource": [ "arn:aws:s3:::bucket-name/home/${aws:userid}", "arn:aws:s3:::bucket-name/home/${aws:userid}/*" ] } ] }