配置 IAM 政策

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

常规 IAM 政策

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

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

如果在更高的资源级层授予角色,则这些角色会被继承。例如,在项目级层被授予 Auditor (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 Service Admin (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 Service Auditor (roles/privateca.auditor) 拥有对 CA Service 中所有资源的读取权限。针对特定 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 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 clusters 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 privatecapool add-iam-policy-binding

创建证书

向用户授予 CA Service Certificate Manager (roles/privateca.certificateManager) 角色,让他们向 CA 池提交证书颁发请求。此角色还授予对 CA 服务资源的读取权限。如需仅允许创建没有读取权限的证书,请授予 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 template 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 clusters 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 template remove-iam-policy-binding

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

后续步骤