針對第三方身分提供者建立角色 (聯合身分) - AWS Identity and Access Management

針對第三方身分提供者建立角色 (聯合身分)

您可以使用身分提供者,而不是在 AWS 帳戶中建立 IAM 使用者。您可以使用身分提供者 (IdP),管理 AWS 外部的使用者身分,並提供這些外部使用者身分許可,以存取您帳戶中的 AWS 資源。如需有關聯合身分與身分提供者的詳細資訊,請參閱 身分提供者與聯合

為聯合身分使用者建立角色 (主控台)

用於為聯合身分使用者建立角色的程序將根據您選擇的第三方提供者決定:

為聯合存取建立角色 (AWS CLI)

從 AWS CLI 為支援的身分提供者 (OIDC 或 SAML) 建立角色的步驟是相同的。區別在於,您在先決條件步驟中建立的信任政策的內容不同。首先,遵循先決條件小節中針對您正在使用之提供者類型的步驟操作:

從 AWS CLI 建立角色包含多個步驟。當您使用主控台建立角色時,有許多步驟會自動為您完成,但是使用 AWS CLI 的話,您必須自行明確執行每個步驟。您必須建立角色,然後為該角色指派許可政策。或者,您也可以設定角色的許可界限

建立聯合身分的角色 (AWS CLI)

  1. 建立角色:aws iam create-role

  2. 將許可政策連接到角色:aws iam attach-role-policy

    為角色建立內嵌許可政策:aws iam put-role-policy

  3. (選用) 透過連接標籤來將自訂屬性新增至該角色:aws iam tag-role

    如需詳細資訊,請參閱 管理 IAM 角色的標籤 (AWS CLI 或 AWS API)

  4. (選用) 設定角色的許可界限aws iam put-role-permissions-boundary

    許可界限控制角色可以擁有的許可上限。許可界限是進階 AWS 功能。

以下範例顯示前兩個最常見步驟,可在簡單的環境中建立一個身分提供者角色。此範例允許 123456789012 帳戶中的任何使用者擔任角色,並檢視 example_bucket Amazon S3 儲存貯體。此範例也假設您在執行 Windows 的電腦上執行 AWS CLI,並且已使用您的憑證設定 AWS CLI。如需詳細資訊,請參閱設定 AWS Command Line Interface

下列範例信任政策是針對使用者使用 Amazon Cognito 登入時的行動應用程式而設計。在此範例中,us-east:12345678-ffff-ffff-ffff-123456 代表由 Amazon Cognito 指派的身分集區 ID。

{ "Version": "2012-10-17", "Statement": { "Sid": "RoleForCognito", "Effect": "Allow", "Principal": {"Federated": "cognito-identity.amazonaws.com"}, "Action": "sts:AssumeRoleWithWebIdentity", "Condition": {"StringEquals": {"cognito-identity.amazonaws.com:aud": "us-east:12345678-ffff-ffff-ffff-123456"}} } }

下列許可政策允許任何擔任角色的人只對 example_bucket Amazon S3 儲存貯體執行 ListBucket 動作。

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": "s3:ListBucket", "Resource": "arn:aws:s3:::example_bucket" } }

若要建立此 Test-Cognito-Role 角色,您必須先將之前的信任政策以名稱 trustpolicyforcognitofederation.json 和之前名為 permspolicyforcognitofederation.json 的許可政策儲存到您本機 policies 磁碟機的 C: 資料夾。然後,您可以使用以下命令來建立角色,並連接內嵌政策。

# Create the role and attach the trust policy that enables users in an account to assume the role. $ aws iam create-role --role-name Test-Cognito-Role --assume-role-policy-document file://C:\policies\trustpolicyforcognitofederation.json # Attach the permissions policy to the role to specify what it is allowed to do. aws iam put-role-policy --role-name Test-Cognito-Role --policy-name Perms-Policy-For-CognitoFederation --policy-document file://C:\policies\permspolicyforcognitofederation.json

為聯合存取建立角色 (AWS API)

從 AWS CLI 為支援的身分提供者 (OIDC 或 SAML) 建立角色的步驟是相同的。區別在於,您在先決條件步驟中建立的信任政策的內容不同。首先,遵循先決條件小節中針對您正在使用之提供者類型的步驟操作:

為聯合身分建立角色 (AWS API)

  1. 建立角色:CreateRole

  2. 將許可政策連接到角色:AttachRolePolicy

    為角色建立內嵌許可政策:PutRolePolicy

  3. (選用) 藉由連接標籤將自訂屬性新增至使用者:TagRole

    如需詳細資訊,請參閱 管理 IAM 使用者的標籤 (AWS CLI 或 AWS API)

  4. (選用) 設定角色的許可界限PutRolePermissionsBoundary

    許可界限控制角色可以擁有的許可上限。許可界限是進階 AWS 功能。