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

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

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

您可以使用身分識別提供者,而不是在 AWS 帳戶. 使用身分識別提供者 (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 登入時的行動應用程式而設計。在此範例中,美國東部:12345678-ffff-ffff-ffff 123456 代表 Amazon Cognito 可指派的身分集區識別碼。

{ "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 項進階功能。