配置 IAM 政策

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

常规 IAM 政策

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

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

如果在更高级别的资源中授予角色,则角色会被继承。例如,某用户 谁在项目级被授予了 Auditor (roles/privateca.auditor) 角色 可以查看项目下的所有资源。IAM 政策 证书颁发机构 (CA) 池中设置的所有 CA 是否都被该 CA 池中的所有 CA 继承。

无法针对证书和 CA 资源授予 IAM 角色。

条件 IAM 政策

如果您的共享 CA 池可能被多个 可以请求不同类型的证书 用于强制执行基于属性的访问权限的 IAM 条件 对 CA 池执行某些操作。

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

准备工作

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

在项目级配置 IAM 政策绑定

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

管理资源

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 Service Auditor (roles/privateca.auditor) 拥有读取权限 所有资源。在获得特定 CA 池的许可后, 授予对 CA 池的读取权限。如果 CA 池位于 Enterprise 层级, 拥有此角色的用户还可以查看 CA 池。将此角色分配给负责验证 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 政策绑定

本部分介绍如何配置 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:其 CA 池的唯一标识符 要为其设置 IAM 政策的 ID。
  • LOCATION:CA 池的位置。对于 位置的完整列表,请参阅位置
  • MEMBER:您要访问的用户或服务账号 分配 IAM 角色。

--role 标志接受您要分配给成员的 IAM 角色。

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

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

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

控制台

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

    转到 Certificate Authority Service

  2. 点击 CA 池管理器标签页,然后选择要为其创建 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 pool add-iam-policy-binding

创建证书

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

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

控制台

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

    转到 Certificate Authority Service

  2. 点击 CA 池管理器,然后选择要为其创建 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. 点击模板管理器标签页,然后选择证书模板 您要为其授予权限的 API。

  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 角色,请参阅撤消访问权限

后续步骤