本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
建立第三方身分識別提供者 (同盟) 的角色
您可以使用身分識別提供IAM者,而不是在 AWS 帳戶. 使用身分識別提供者 (IdP),您可以管理以外的使用者身分識別, AWS 並授與這些外部使用者身分識別權限,以存取您帳戶中的 AWS 資源。如需有關聯合身分與身分提供者的詳細資訊,請參閱 身分提供者與聯合。
為聯合身分使用者建立角色 (主控台)
用於為聯合身分使用者建立角色的程序將根據您選擇的第三方提供者決定:
-
對於 OpenID Connect(OIDC),請參閱為 OpenID Connect 聯合建立角色 (主控台)。
-
對於 SAML 2.0,請參閱建立 SAML 2.0 聯合 (主控台) 的角色。
為聯合存取建立角色 (AWS CLI)
從中為受支援的身分識別提供者 (OIDC或SAML) 建立角色的步驟 AWS CLI 相同。區別在於,您在先決條件步驟中建立的信任政策的內容不同。首先,遵循先決條件小節中針對您正在使用之提供者類型的步驟操作:
-
如需提OIDC供者,請參閱為 建立角色的先決條件 OIDC。
-
如需提SAML供者,請參閱建立角色的先決條件 SAML。
從中建立角色 AWS CLI 需要多個步驟。當您使用主控台建立角色時,許多步驟都是為您完成的,但是 AWS CLI 您必須明確地自行執行每個步驟。您必須建立角色,然後為該角色指派許可政策。或者,您也可以設定角色的許可界限。
建立聯合身分的角色 (AWS CLI)
-
建立角色:aws iam create-role
-
將許可政策附加到角色:aws iam attach-role-policy
或
為角色建立內嵌許可政策:aws iam put-role-policy
-
(選用) 透過連接標籤來將自訂屬性新增至該角色:aws iam tag-role
如需詳細資訊,請參閱管理IAM角色的標籤 (AWS CLI 或 AWS API)。
-
(可選)設置角色的許可邊界: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
從中為受支援的身分識別提供者 (OIDC或SAML) 建立角色的步驟 AWS CLI 相同。區別在於,您在先決條件步驟中建立的信任政策的內容不同。首先,遵循先決條件小節中針對您正在使用之提供者類型的步驟操作:
-
如需提OIDC供者,請參閱為 建立角色的先決條件 OIDC。
-
如需提SAML供者,請參閱建立角色的先決條件 SAML。
若要建立聯合身分的角色 (AWS API)
-
建立角色:CreateRole
-
將權限原則附加至角色:AttachRolePolicy
或
建立角色的內嵌權限原則:PutRolePolicy
-
(選擇性) 透過附加標籤將自訂屬性新增至使用者:TagRole
如需詳細資訊,請參閱管理IAM使用者的標籤 (AWS CLI 或 AWS API)。
-
(選擇性) 設定角色的權限範圍:PutRolePermissionsBoundary
許可界限控制角色可以擁有的許可上限。權限界限是一 AWS 項進階功能。