配置 IAM 政策

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

常规 IAM 政策

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

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

如果在更高级别的资源中授予角色,则角色会沿用。例如,在项目级被授予 Auditor (roles/privateca.auditor) 角色的用户能够查看项目下的所有资源。在证书授权机构 (CA) 池中设置的 IAM 政策由该 CA 池中的所有 CA 沿用。

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

条件 IAM 政策

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

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

准备工作

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

在项目级配置 IAM 政策绑定

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

管理资源

CA Service Admin (roles/privateca.admin) 拥有管理所有 CA Service 资源的权限,并可以在 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 Service Auditor (roles/privateca.auditor) 拥有对 CA Service 中所有资源的读取权限。如果针对特定 CA 池授予此角色,则会授予对该 CA 池的读取权限。如果 CA 池位于 Enterprise 层级,则拥有此角色的用户还可以查看 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 Service Auditor (roles/privateca.auditor) 角色的用户的唯一标识符

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

在资源级配置 IAM 政策绑定

本部分介绍如何在 CA Service 中为特定资源配置 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 Service 资源的读取权限。如需仅允许创建证书而不授予读取权限,请授予 证书授权机构 (CA) Service Certificate Requester (roles/privateca.certificateRequester) 角色。如需详细了解 CA Service 的 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 角色,请参阅撤消访问权限

后续步骤