管理工作负载身份池和提供商

本页面介绍如何管理工作负载身份池及其身份提供商。

您可以使用 gcloud 命令行工具REST API 管理池和提供商;Beta 版不支持使用 Cloud Console 或 Google Cloud 客户端库。

准备工作

创建工作负载身份池,并配置身份提供商。请参阅以下某个页面,了解操作方法:

管理工作负载身份池

创建池

如需创建工作负载身份池,请执行以下操作:

gcloud

执行 gcloud beta iam workload-identity-pools create 命令。

REST

调用 projects.locations.workloadIdentityPools.create()

列出池

如需列出项目中的所有工作负载身份池,请执行以下操作:

gcloud

执行 gcloud beta iam workload-identity-pools list 命令。

REST

调用 projects.locations.workloadIdentityPools.list()

获取池

如需获取特定工作负载身份池的详细信息,请执行以下操作:

gcloud

执行 gcloud beta iam workload-identity-pools describe 命令。

REST

调用 projects.locations.workloadIdentityPools.get()

更新池

如需更新现有工作负载身份池,请执行以下操作:

gcloud

执行 gcloud beta iam workload-identity-pools update 命令。

REST

调用 projects.locations.workloadIdentityPools.patch()

删除池

如需删除工作负载身份池,请执行以下操作:

gcloud

执行 gcloud beta iam workload-identity-pools delete 命令。

REST

调用 projects.locations.workloadIdentityPools.delete()

您最长可以在删除后 30 天内恢复删除的池。30 天后,系统会永久删除池。在系统永久删除某个池之前,您不能在创建新的工作负载身份池时重复使用该池的名称。

恢复删除的池

您最长可以在删除后 30 天内恢复已删除的工作负载身份池。如需恢复删除的池,请执行以下操作:

gcloud

执行 gcloud beta iam workload-identity-pools undelete 命令。

REST

调用 projects.locations.workloadIdentityPools.undelete()

管理工作负载身份提供商

创建提供商

如需创建工作负载身份提供商,请执行以下操作:

gcloud

执行 gcloud beta iam workload-identity-pools providers create-aws 命令以创建 AWS 提供商。

执行 gcloud beta iam workload-identity-pools providers create-oidc 命令以创建 OIDC 提供商。这包括 Microsoft Azure。

REST

调用 projects.locations.workloadIdentityPools.providers.create()

列出提供商

如需列出项目中的所有工作负载身份提供商,请执行以下操作:

gcloud

执行 gcloud beta iam workload-identity-pools providers list 命令。

REST

调用 projects.locations.workloadIdentityPools.providers.list()

获取提供商

如需获取特定工作负载身份提供商的详细信息,请执行以下操作:

gcloud

执行 gcloud beta iam workload-identity-pools providers describe 命令。

REST

调用 projects.locations.workloadIdentityPools.providers.get()

更新提供商

如需更新现有工作负载身份提供商,请执行以下操作:

gcloud

执行 gcloud beta iam workload-identity-pools providers update-aws 命令以更新 AWS 提供商。

执行 gcloud beta iam workload-identity-pools providers update-oidc 命令以更新 OIDC 提供商。这包括 Microsoft Azure。

REST

调用 projects.locations.workloadIdentityPools.providers.patch()

删除提供商

如需删除工作负载身份提供商,请执行以下操作:

gcloud

执行 gcloud beta iam workload-identity-pools providers delete 命令。

REST

调用 projects.locations.workloadIdentityPools.providers.delete()

您最长可以在删除后 30 天内恢复删除的提供商。30 天后,系统会永久删除提供商。在系统永久删除某个提供商之前,您不能在创建新的提供商时重复使用该提供商的名称。

恢复删除的池

您最长可以在删除后 30 天内恢复已删除的工作负载身份提供商。如需恢复删除的提供商,请执行以下操作:

gcloud

执行 gcloud beta iam workload-identity-pools providers undelete 命令。

REST

调用 projects.locations.workloadIdentityPools.providers.undelete()

使用组织政策限制身份提供商配置

默认情况下,任何具有 Workload Identity Pool Admin 角色 (roles/iam.workloadIdentityPoolAdmin) 的用户都可以配置与任何受支持的身份提供商的联合。但是,作为组织管理员,您可能只希望允许访问特定的可信提供商的资源。

您可以使用组织政策来限制允许的身份提供商。在 Cloud Console 中或使用 gcloud 命令行工具启用 constraints/iam.workloadIdentityPoolProviders 限制条件,并指定许可提供商的颁发者 URI。

如需只允许来自 AWS 的联合,请使用 URI https://sts.amazonaws.com 创建一个限制条件。以下示例展示了如何使用 gcloud 命令行工具创建此限制条件:

gcloud beta resource-manager org-policies allow constraints/iam.workloadIdentityPoolProviders \
     https://sts.amazonaws.com --organization=organization-number

如需只允许来自一个 OIDC 提供商的联合,请使用允许的提供商的 issuer_uri 创建一个限制条件。例如,以下命令只允许来自特定 Azure 租户的联合:

gcloud beta resource-manager org-policies allow constraints/iam.workloadIdentityPoolProviders \
     https://sts.windows.net/azure-tenant-id --organization=organization-number

您可以重复运行这些命令,以允许来自其他提供商的联合。

如需阻止来自所有提供商的联合,请执行以下操作:

  1. 创建一个包含以下内容的 YAML 文件:

    constraint: constraints/iam.workloadIdentityPoolProviders
    listPolicy:
      allValues: DENY
    
  2. 将文件传递给 gcloud beta resource-manager org-policies set-policy 命令:

    gcloud beta resource-manager org-policies set-policy file-name.yaml \
        --organization=organization-number
    

如需允许来自任何提供商的联合,请删除您组织的所有 constraints/iam.workloadIdentityPoolProviders 限制条件。

后续步骤