本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 TIP 外掛程式存取 AWS 服務
信任的身分傳播 (TIP) 是 的一項功能 AWS IAM Identity Center ,可讓 的管理員根據 群組關聯等使用者屬性 AWS 服務 授予許可。透過信任的身分傳播,身分內容會新增至 IAM 角色,以識別請求存取 AWS 資源的使用者。此內容會傳播到其他 AWS 服務。
身分內容包含的資訊, AWS 服務 用於在收到存取請求時做出授權決策。此資訊包含識別請求者的中繼資料 (例如,IAM Identity Center 使用者)、請求存取的 AWS 服務 (例如,Amazon Redshift),以及存取範圍 (例如,唯讀存取)。接收 AWS 服務 使用此內容,以及指派給使用者的任何許可,來授權存取其資源。如需詳細資訊,請參閱 AWS IAM Identity Center 《 使用者指南》中的信任身分傳播概觀中的 。
TIP 外掛程式可與支援受信任身分傳播 AWS 服務 的 搭配使用。做為參考使用案例,請參閱《Amazon Q Business 使用者指南》中的使用 設定 AWS IAM Identity Center Amazon Q Business 應用程式。
注意
如果您使用的是 Amazon Q Business,請參閱使用 設定 Amazon Q Business 應用程式 AWS IAM Identity Center以取得服務特定指示。
使用 TIP 外掛程式的先決條件
需要下列資源,外掛程式才能運作:
-
您必須使用 適用於 Java 的 AWS SDK 或 適用於 JavaScript 的 AWS SDK。
-
確認您正在使用的服務支援信任的身分傳播。
請參閱《 AWS IAM Identity Center 使用者指南》中AWS 透過與 IAM Identity Center 整合之受管應用程式的 IAM Identity Center 啟用受信任身分傳播欄。
-
啟用 IAM Identity Center 和信任的身分傳播。
請參閱AWS IAM Identity Center 《 使用者指南》中的 TIP 先決條件和考量事項。
-
您必須擁有 Identity-Center-integrated的應用程式。
請參閱AWS IAM Identity Center 《 使用者指南》中的AWS 受管應用程式或客戶受管應用程式。
-
您必須設定信任的權杖發行者 (TTI),並將您的服務連線至 IAM Identity Center。
請參閱《 AWS IAM Identity Center 使用者指南》中設定信任權杖發行者的先決條件和任務。
在程式碼中使用 TIP 外掛程式
-
建立信任身分傳播外掛程式的執行個體。
-
建立服務用戶端執行個體以與您的 互動, AWS 服務 並透過新增信任的身分傳播外掛程式來自訂服務用戶端。
TIP 外掛程式採用下列輸入參數:
-
webTokenProvider:客戶實作以從外部身分提供者取得 OpenID 字符的函數。 -
accessRoleArn:由具有使用者身分內容的外掛程式擔任的 IAM 角色 ARN,以取得身分增強憑證。 -
applicationArn:用戶端或應用程式的唯一識別符字串。此值是已設定 OAuth 授予的應用程式 ARN。 -
ssoOidcClient:(選用) SSO OIDC 用戶端,例如SsoOidcClientfor Java 或 client-sso-oidcfor JavaScript,搭配客戶定義的組態。如果未提供,applicationRoleArn將使用 的 OIDC 用戶端會執行個體化和使用。 -
stsClient:(選用) AWS STS 具有客戶定義組態的用戶端,用於accessRoleArn以使用者的身分內容擔任 。如果未提供,applicationRoleArn則會執行個體化並使用 的 AWS STS 用戶端。 -
applicationRoleArn:(選用) 要擔任的 IAM 角色 ARN,AssumeRoleWithWebIdentity以便可以引導 OIDC 和 AWS STS 用戶端。-
如果未提供,則必須同時提供
ssoOidcClient和stsClient參數。 -
如果提供,
applicationRoleArn不能與accessRoleArn參數的值相同。applicationRoleArn用於建置 stsClient,其用於擔任 accessRole。如果applicationRole和 都使用相同的角色accessRole,則表示使用角色來擔任自己 (自我角色假設),這會不建議這麼做 AWS。如需詳細資訊,請參閱公告。
-
ssoOidcClient、 stsClient和 applicationRoleArn 參數的考量事項
設定 TIP 外掛程式時,請根據您提供的參數,考慮下列許可要求:
-
如果您要提供
ssoOidcClient和stsClient:-
上的登入資料
ssoOidcClient應具有呼叫身分中心的oauth:CreateTokenWithIAM許可,以取得身分中心特定的使用者內容。 -
上的登入資料
stsClient應具有sts:AssumeRole和 上的sts:SetContext許可accessRole。accessRole也需要設定與 上登入資料的信任關係stsClient。
-
-
如果您要提供
applicationRoleArn:-
applicationRole應該具有必要資源 (IdC 執行個體accessRole) 的oauth:CreateTokenWithIAMsts:AssumeRole和sts:SetContext許可,因為它將用於建置 OIDC 和 STS 用戶端。 -
applicationRole應與用於產生 的身分提供者具有信任關係webToken,因為webToken將用於透過外掛程式的 AssumeRoleWithWebIdentity 呼叫擔任 applicationRole。
-
ApplicationRole 組態範例:
具有 Web 權杖提供者的信任政策:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Federated": "arn:aws:iam::ACCOUNT_ID:oidc-provider/IDENTITY_PROVIDER_URL" }, "Action": "sts:AssumeRoleWithWebIdentity", "Condition": { "StringEquals": { "IDENTITY_PROVIDER_URL:aud": "CLIENT_ID_TO_BE_TRUSTED" } } } ] }
許可政策:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sts:AssumeRole", "sts:SetContext" ], "Resource": [ "accessRoleArn" ] }, { "Effect": "Allow", "Action": [ "sso-oauth:CreateTokenWithIAM" ], "Resource": [ "*" ] } ] }
使用 TIP 的程式碼範例
以下範例示範如何使用 適用於 Java 的 AWS SDK 或 在程式碼中實作 TIP 外掛程式 適用於 JavaScript 的 AWS SDK。