配置 IAM 政策

本页介绍了如何配置 Identity and Access Management (IAM) 政策,以允许成员创建和管理 Certificate Authority Service 资源。如需详细了解 IAM,请参阅 IAM 概览

常规 IAM 政策

在 CA Service 中,您可以向用户或服务账号授予 IAM 角色,以便创建和管理 CA Service 资源。您可以在以下级别添加这些角色绑定:

  • CA 池级别,用于管理对特定 CA 池以及该 CA 池中的 CA 的访问权限。
  • 项目级或组织级,用于授予对相应范围内所有 CA 池的访问权限。

如果在更高级别的资源中授予角色,则角色会被继承。例如,如果用户在项目级别被授予审核员 (roles/privateca.auditor) 角色,则可以查看项目下的所有资源。在证书授权机构 (CA) 池上设置的 IAM 政策会被该 CA 池中的所有 CA 继承。

不能对证书和 CA 资源授予 IAM 角色。

条件 IAM 政策

如果您有一个共享 CA 池,可能会被多个用户使用,并且这些用户有权请求不同类型的证书,您可以定义 IAM 条件来强制执行基于属性的访问权限,以便对 CA 池执行特定操作。

借助 IAM 条件角色绑定,您可以仅在满足指定条件时向主账号授予访问权限。例如,如果证书请求者角色绑定到 CA 池中的用户 alice@example.com,并且条件是请求的 DNS SAN 是 ['alice@example.com', 'bob@example.com'] 的子集,那么只有当请求的 SAN 是这两个允许值之一时,该用户才能从同一 CA 池请求证书。您可以使用通用表达式语言 (CEL) 表达式为 IAM 绑定设置条件。这些条件可帮助您进一步限制用户能够请求的证书类型。如需了解如何针对 IAM 条件使用 CEL 表达式,请参阅适用于 IAM 政策的通用表达式语言 (CEL) 方言

准备工作

  • 启用该 API。
  • 按照任一快速入门中的说明创建 CA 和 CA 池。
  • 了解适用于 Certificate Authority Service 的 IAM 角色。

在项目级层配置 IAM 政策绑定

以下场景介绍了如何在项目级向用户授予对 CA 服务资源的访问权限。

管理资源

CA 服务管理员 (roles/privateca.admin) 有权管理所有 CA 服务资源,并在 CA 池和证书模板上设置 IAM 政策。

如需在项目级别向用户分配 CA Service Admin (roles/privateca.admin) 角色,请按照以下说明操作:

控制台

  1. 在 Google Cloud 控制台中,转到 IAM 页面。

    转到 Identity and Access Management

  2. 选择项目。

  3. 点击 授予访问权限

  4. 新的主账号字段中,输入主账号的电子邮件地址或其他标识符。

  5. 选择角色列表中,选择 CA Service Admin 角色。

  6. 点击保存

gcloud

gcloud projects add-iam-policy-binding PROJECT_ID \
  --member=MEMBER \
  --role=roles/privateca.admin

替换以下内容:

  • PROJECT_ID:项目的唯一标识符。
  • MEMBER:您要向其分配 CA Service Admin 角色的用户或服务账号。

--role 标志采用您要向成员分配的 IAM 角色。

创建资源

CA Service Operation Manager (roles/privateca.caManager) 可以创建、更新和删除 CA 池和 CA。此角色还允许调用方撤消 CA 池中的 CA 颁发的证书。

如需在项目级别向用户分配 CA Service Operation Manager (roles/privateca.caManager) 角色,请按照以下说明操作:

控制台

  1. 在 Google Cloud 控制台中,转到 IAM 页面。

    转到 Identity and Access Management

  2. 选择项目。

  3. 点击 授予访问权限

  4. 新的主账号字段中,输入主账号的电子邮件地址或其他标识符。

  5. 选择角色列表中,选择 CA Service Operation Manager 角色。

  6. 点击保存

gcloud

gcloud projects add-iam-policy-binding PROJECT_ID \
  --member=MEMBER \
  --role=roles/privateca.caManager

替换以下内容:

  • PROJECT_ID:项目的唯一标识符。
  • MEMBER:您要为其添加 IAM 角色的用户或服务账号。

--role 标志采用您要向成员分配的 IAM 角色。

如需详细了解 gcloud projects add-iam-policy-binding 命令,请参阅 gcloud projects add-iam-policy-binding

(可选)使用现有 Cloud KMS 密钥创建 CA 还要求调用方是 Cloud KMS 密钥的管理员。

Cloud KMS Admin (roles/cloudkms.admin) 对所有 Cloud KMS 资源都有完整访问权限,但不包括执行加密和解密操作的权限。如需详细了解 Cloud KMS 的 IAM 角色,请参阅 Cloud KMS:权限和角色

如需向用户授予 Cloud KMS Admin (roles/cloudkms.admin) 角色,请按照以下说明操作:

控制台

  1. 在 Google Cloud 控制台中,前往 Cloud Key Management Service(云密钥管理服务)页面。

    前往 Cloud Key Management Service

  2. 密钥环下,点击包含 CA 签名密钥的密钥环。

  3. 点击 CA 签名密钥。

  4. 如果信息面板尚未显示,请点击显示信息面板。然后,点击权限

  5. 点击 添加主账号

  6. 新的主账号字段中,输入主账号的电子邮件地址或其他标识符。

  7. 选择角色列表中,选择 Cloud KMS Admin 角色。

  8. 点击保存

gcloud

gcloud kms keys add-iam-policy-binding KEY \
  --keyring=KEYRING --location=LOCATION \
  --member=MEMBER \
  --role=roles/cloudkms.admin

替换以下内容:

  • KEY:密钥的唯一标识符。
  • KEYRING:包含密钥的密钥环。如需详细了解密钥环,请参阅密钥环
  • MEMBER:您要为其添加 IAM 绑定的用户或服务账号。

--role 标志采用您要向成员分配的 IAM 角色。

如需详细了解 gcloud kms keys add-iam-policy-binding 命令,请参阅 gcloud kms keys add-iam-policy-binding

审核资源

CA 服务审核员 (roles/privateca.auditor) 对 CA 服务中的所有资源都有读取权限。向特定 CA 池授予此权限后,系统会授予对该 CA 池的读取权限。如果 CA 池位于企业版层级,具有此角色的用户还可以查看 CA 池中的 CA 颁发的证书和 CRL。将此角色分配给负责验证 CA 池安全性和运维的个人。

如需在项目级别向用户分配 CA Service Auditor (roles/privateca.auditor) 角色,请按照以下说明操作:

控制台

  1. 在 Google Cloud 控制台中,转到 IAM 页面。

    转到 Identity and Access Management

  2. 选择项目。

  3. 点击 授予访问权限

  4. 新的主账号字段中,输入主账号的电子邮件地址或其他标识符。

  5. 选择角色列表中,选择 CA Service Auditor 角色。

  6. 点击保存

gcloud

gcloud projects add-iam-policy-binding PROJECT_ID \
  --member=MEMBER \
  --role=roles/privateca.auditor

替换以下内容:

  • PROJECT_ID:项目的唯一标识符。
  • MEMBER:您要向其分配 CA 服务审核员 (roles/privateca.auditor) 角色的用户的唯一标识符。

--role 标志采用您要向成员分配的 IAM 角色。

在资源级别配置 IAM 政策绑定

本部分介绍了如何在 CA 服务中为特定资源配置 IAM 政策绑定。

管理 CA 池

您可以在资源级授予 CA Service Admin (roles/privateca.admin) 角色,以管理特定的 CA 池或证书模板。

控制台

  1. 在 Google Cloud 控制台中,前往 Certificate Authority Service 页面。

    前往 Certificate Authority Service

  2. 点击 CA 池管理器标签页,然后选择要为其授予权限的 CA 池。

  3. 如果信息面板尚未显示,请点击显示信息面板。然后,点击权限

  4. 点击 添加主账号

  5. 新的主账号字段中,输入主账号的电子邮件地址或其他标识符。

  6. 选择角色列表中,选择 CA Service Admin 角色。

  7. 点击保存。系统会向主账号授予 CA 池资源上的所选角色。

gcloud

如需设置 IAM 政策,请运行以下命令:

gcloud privateca pools add-iam-policy-binding POOL_ID \
  --location LOCATION \
  --member MEMBER \
  --role roles/privateca.admin

替换以下内容:

  • POOL_ID:要为其设置 IAM 政策的 CA 池的唯一标识符。
  • LOCATION:CA 池的位置。如需查看位置的完整列表,请参阅位置
  • MEMBER:您要为其分配 IAM 角色的用户或服务账号。

--role 标志采用您要向成员分配的 IAM 角色。

如需详细了解 gcloud privateca pools add-iam-policy-binding 命令,请参阅 gcloud privateca pools add-iam-policy-binding

按照相同的步骤为证书模板授予 CA Service Admin 角色。

您还可以为特定 CA 池授予 CA Service Operation Manager (roles/privateca.caManager) 角色。此角色允许调用方撤消该 CA 池中 CA 颁发的证书。

控制台

  1. 在 Google Cloud 控制台中,前往 Certificate Authority Service 页面。

    前往 Certificate Authority Service

  2. 点击 CA 池管理器标签页,然后选择要为其授予权限的 CA 池。

  3. 如果信息面板尚未显示,请点击显示信息面板。然后,点击权限

  4. 点击 添加主账号

  5. 新的主账号字段中,输入主账号的电子邮件地址或其他标识符。

  6. 选择角色列表中,选择 CA Service Operation Manager 角色。

  7. 点击保存。系统会为主账号授予 CA 所属 CA 池资源上的所选角色。

gcloud

如需为特定 CA 池授予该角色,请运行以下 gcloud 命令:

gcloud privateca pools add-iam-policy-binding POOL_ID \
  --location LOCATION \
  --member MEMBER \
  --role roles/privateca.caManager

替换以下内容:

  • POOL_ID:CA 池的唯一标识符。
  • LOCATION:CA 池的位置。如需查看位置的完整列表,请参阅位置
  • MEMBER:您要向其分配 CA Service Operation Manager (roles/privateca.caManager) 角色的用户的唯一标识符。

--role 标志采用您要向成员分配的 IAM 角色。

如需详细了解 gcloud privateca pools add-iam-policy-binding 命令,请参阅 gcloud privateca pools add-iam-policy-binding

创建证书

向用户授予 CA Service Certificate Manager (roles/privateca.certificateManager) 角色,以便他们向 CA 池提交证书颁发请求。此角色还会授予对 CA 服务资源的读取权限。如需仅允许创建证书,而不提供读取权限,请授予 CA Service Certificate Requester (roles/privateca.certificateRequester) 角色。如需详细了解 CA 服务的 IAM 角色,请参阅使用 IAM 进行访问权限控制

如需向用户授予为特定 CA 创建证书的权限,请按照以下说明操作。

控制台

  1. 在 Google Cloud 控制台中,前往 Certificate Authority Service 页面。

    前往 Certificate Authority Service

  2. 点击 CA 池管理器,然后选择要为其授予权限的 CA 池。

  3. 如果信息面板尚未显示,请点击显示信息面板。然后,点击权限

  4. 点击 添加主账号

  5. 新的主账号字段中,输入主账号的电子邮件地址或其他标识符。

  6. 选择角色列表中,选择 CA Service Certificate Manager 角色。

  7. 点击保存。系统会为主账号授予 CA 所属 CA 池资源上的所选角色。

gcloud

gcloud privateca pools add-iam-policy-binding 'POOL_ID' \
  --location LOCATION \
  --member MEMBER \
  --role roles/privateca.certificateManager

替换以下内容:

  • POOL_ID:CA 池的唯一标识符。
  • LOCATION:CA 池的位置。如需查看位置的完整列表,请参阅位置
  • MEMBER:您要向其分配 CA Service Certificate Manager (roles/privateca.certificateManager) 角色的用户的唯一标识符。

--role 标志采用您要向成员分配的 IAM 角色。

向证书模板添加 IAM 政策绑定

如需为特定证书模板添加 IAM 政策,请按照以下说明操作:

控制台

  1. 在 Google Cloud 控制台中,前往 Certificate Authority Service 页面。

    前往 Certificate Authority Service

  2. 点击模板管理器标签页,然后选择要为其授予权限的证书模板。

  3. 如果信息面板尚未显示,请点击显示信息面板。然后,点击权限

  4. 点击 添加主账号

  5. 新的主账号字段中,输入主账号的电子邮件地址或其他标识符。

  6. 选择角色下拉列表中选择要授予的角色。

  7. 点击保存

gcloud

gcloud privateca templates add-iam-policy-binding TEMPLATE_ID \
  --location=LOCATION \
  --member=MEMBER \
  --role=ROLE

替换以下内容:

  • LOCATION:证书模板的位置。如需查看位置的完整列表,请参阅位置
  • MEMBER:您要为其添加 IAM 政策绑定的用户或服务账号。
  • ROLE:您要授予成员的角色。

如需详细了解 gcloud privateca templates add-iam-policy-binding 命令,请参阅 gcloud privateca templates add-iam-policy-binding

如需详细了解如何修改用户的 IAM 角色,请参阅授予访问权限

移除 IAM 政策绑定

您可以使用 Google Cloud CLI 的 remove-iam-policy-binding 命令移除现有 IAM 政策绑定。

如需移除特定 CA 池上的 IAM 政策,请使用以下 gcloud 命令:

gcloud

gcloud privateca pools remove-iam-policy-binding POOL_ID \
  --location=LOCATION \
  --member=MEMBER \
  --role=ROLE

替换以下内容:

  • LOCATION:CA 池的位置。如需查看位置的完整列表,请参阅位置
  • MEMBER:您要为其移除 IAM 政策绑定的用户或服务账号。
  • ROLE:您要为成员移除的角色。

如需详细了解 gcloud privateca pools remove-iam-policy-binding 命令,请参阅 gcloud privateca pools remove-iam-policy-binding

如需移除特定证书模板上的 IAM 政策,请使用以下 gcloud 命令:

gcloud

gcloud privateca templates remove-iam-policy-binding TEMPLATE_ID \
  --location=LOCATION \
  --member=MEMBER \
  --role=ROLE

替换以下内容:

  • LOCATION:证书模板的位置。如需查看位置的完整列表,请参阅位置
  • MEMBER:您要为其移除 IAM 政策绑定的用户或服务账号。
  • ROLE:您要为成员移除的角色。

如需详细了解 gcloud privateca templates remove-iam-policy-binding 命令,请参阅 gcloud privateca templates remove-iam-policy-binding

如需详细了解如何移除用户的 IAM 角色,请参阅撤消访问权限

后续步骤