

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

# 共用 OIDC 提供者的身分提供者控制項
<a name="id_roles_providers_oidc_secure-by-default"></a>

對於已辨識的共用 OpenID Connect (OIDC) 身分提供者 (IdP)，IAM 需要明確評估角色信任政策中的特定宣告。這些必要宣告稱為*身分提供者控制項*，由 IAM 在角色建立和信任政策更新期間進行評估。如果角色信任政策未評估共用 OIDC IdP 所需的控制項，角色建立或更新將會失敗。這可確保只有來自預期組織的授權身分才能擔任角色和存取 AWS 資源。當 OIDC 提供者在多個 AWS 客戶之間共用時，此安全控制項至關重要。



對於現有的 OIDC 角色信任政策，IAM 不會評估身分提供者控制項。現有 OIDC 角色若要對角色信任政策進行任何修改，IAM 將要求其在角色信任政策中包含身分提供者控制項。

## OIDC 提供者類型
<a name="id_roles_providers_oidc_idp_types"></a>

IAM 將 OIDC 身分提供者分類為兩種不同的類型：**私有**和**共用**。私有 OIDC IdP 可由單一組織擁有和管理，也可以是 SaaS 提供者的租用戶，其 OIDC 發行者 URL 可作為該組織特有的唯一識別碼。相比之下，共用的 OIDC IdP 可在多個組織之間使用，對於使用該共用身分提供者的所有組織，OIDC 發行者 URL 可能相同。

下表概述了私有和共用 OIDC 提供者之間的主要差異：


| 特性 | 私有 OIDC 提供者 | 共用 OIDC 提供者 | 
| --- | --- | --- | 
|  發行者  |  組織獨有  |  在多個組織間共用  | 
|  租用資訊  |  透過唯一發行者傳達  |  透過 JWT 中的宣告傳達  | 
|  信任政策需求  |  不需要評估特定宣告  |  需要評估特定宣告  | 

## 具有身分提供者控制項的共用 OIDC 身分提供者
<a name="id_roles_providers_oidc_idp_shared_oidc_secure_support"></a>

在 IAM 中建立或修改 OIDC 提供者時，系統會自動識別並評估已辨識之共用 OIDC 提供者所需的宣告。如果未在角色信任政策中設定身分提供者控制項，則角色建立或更新將會失敗，並發生 MalformedPolicyDocument 錯誤。

下表列出了需要在角色信任政策中使用身分提供者控制項的共用 OIDC 提供者，以及有助於設定身分提供者控制項的其他資訊。


| OIDC IdP | OIDC URL | 租用宣告 | 必要宣告 | 
| --- | --- | --- | --- | 
| [Amazon Cognito](https://docs.aws.amazon.com/cognito/latest/developerguide/iam-roles.html) |  `cognito-identity.amazonaws.com`  | aud |  `cognito-identity.amazonaws.com:aud`  | 
| [Azure Sentinel](https://learn.microsoft.com/en-us/azure/defender-for-cloud/sentinel-connected-aws) |  https://sts.windows.net/33e01921-4d64-4f8c-a055-5bdaffd5e33d  |  sts:RoleSessionName  |  sts:RoleSessionName  | 
| [Buildkite](https://buildkite.com/docs/pipelines/security/oidc/aws) |  https://agent.buildkite.com  |  sub  |  agent.buildkite.com:sub  | 
| [Codefresh SaaS](https://codefresh.io/docs/docs/integrations/oidc-pipelines/) | https://oidc.codefresh.io | sub |  oidc.codefresh.io:sub  | 
| [DVC Studio](https://dvc.org/doc/studio/user-guide/openid-connect) | https://studio.datachain.ai/api | sub |  studio.datachain.ai/api:sub  | 
| [GitHub actions](https://docs.github.com/en/actions/security-for-github-actions/security-hardening-your-deployments/configuring-openid-connect-in-amazon-web-services) | https://token.actions.githubusercontent.com | sub |  token.actions.githubusercontent.com:sub  | 
| [GitHub audit log streaming](https://docs.github.com/en/enterprise-cloud@latest/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/streaming-the-audit-log-for-your-enterprise) | https://oidc-configuration.audit-log.githubusercontent.com | sub |  oidc-configuration.audit-log.githubusercontent.com:sub  | 
| [GitHub vstoken](https://docs.github.com/en/actions/security-for-github-actions/security-hardening-your-deployments/configuring-openid-connect-in-amazon-web-services) | https://vstoken.actions.githubusercontent.com | sub |  vstoken.actions.githubusercontent.com:sub  | 
| [GitLab](https://docs.gitlab.com/ci/cloud_services/aws/) | https://gitlab.com | sub |  gitlab.com:sub  | 
| [IBM Turbonomic SaaS\$1](https://www.ibm.com/docs/en/tarm/8.16.x?topic=turbonomic-setting-up-aws-iam-role-saas-deployments) |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/IAM/latest/UserGuide/id_roles_providers_oidc_secure-by-default.html)  | sub |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/IAM/latest/UserGuide/id_roles_providers_oidc_secure-by-default.html)  | 
| [Pulumi Cloud](https://www.pulumi.com/docs/pulumi-cloud/deployments/oidc/aws/) | https://api.pulumi.com/oidc | aud |  api.pulumi.com/oidc:aud  | 
| [sandboxes.cloud](https://docs.sandboxes.cloud/docs/cloud-resources-setup) | https://sandboxes.cloud | aud |  sandboxes.cloud:aud  | 
| [Scalr](https://docs.scalr.io/docs/aws) | https://scalr.io | sub |  scalr.io:sub  | 
| [Shisho Cloud](https://shisho.dev/docs/g/getting-started/integrate-apps/aws/) | https://tokens.cloud.shisho.dev | sub |  tokens.cloud.shisho.dev:sub  | 
| [Terraform Cloud](https://developer.hashicorp.com/terraform/cloud-docs/workspaces/dynamic-provider-credentials/aws-configuration) | https://app.terraform.io | sub |  app.terraform.io:sub  | 
| [Upbound](https://docs.upbound.io/providers/provider-aws/authentication/) | https://proidc.upbound.io | sub |  proidc.upbound.io:sub  | 
| [Vercel global endpoint](https://vercel.com/docs/oidc/reference) | https://oidc.vercel.com | aud |  oidc.vercel.com:aud  | 

\$1 IBM Turbonomic 會隨平台新版本定期更新其 OIDC 發行者 URL。我們會視需要將範圍內的其他 Turbonomic OIDC 發行者新增為共用提供者。

對於 IAM 識別為共用的任何新 OIDC IdP，將以類似方式記錄和強制執行角色信任政策所需的身分提供者控制項。

## 其他資源
<a name="concept_additional_resources"></a>

其他資源：
+ 如需有關為 OIDC 聯合身分建立 IAM 角色的詳細資訊，請參閱[為 OpenID Connect 聯合身分建立角色 (主控台)](id_roles_create_for-idp_oidc.md)。
+ 如需可用於宣告的 IAM 條件索引鍵清單，請參閱[AWS OIDC 聯合的可用金鑰](reference_policies_iam-condition-keys.md#condition-keys-wif)。