配置 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
) 角色,请按照以下说明操作:
控制台
在 Google Cloud 控制台中,转到 IAM 页面。
选择项目。
点击
授予访问权限。在新的主账号字段中,输入主账号的电子邮件地址或 其他标识符。
在选择角色列表中,选择 CA Service Admin 角色。
点击保存。
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
)
角色,请按照以下说明操作:
控制台
在 Google Cloud 控制台中,转到 IAM 页面。
选择项目。
点击
授予访问权限。在新的主账号字段中,输入主账号的电子邮件地址或其他标识符。
在选择角色列表中,选择 CA Service Operation Manager 角色。
点击保存。
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
) 角色,请按照以下说明操作:
控制台
在 Google Cloud 控制台中,前往 Cloud Key Management Service 页面。
在密钥环下,点击包含 CA 签名密钥的密钥环。
点击作为 CA 签名密钥的密钥。
如果信息面板尚未显示,请点击显示信息面板。然后, 点击权限。
点击
添加主账号。在新的主账号字段中,输入主账号的电子邮件地址或 其他标识符。
在选择角色列表中,选择 Cloud KMS Admin 角色。
点击保存。
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
)
角色,请按照以下说明操作:
控制台
在 Google Cloud 控制台中,转到 IAM 页面。
选择项目。
点击
授予访问权限。在新的主账号字段中,输入主账号的电子邮件地址或 其他标识符。
在选择角色列表中,选择 CA Service Auditor 角色。
点击保存。
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 池或证书模板。
控制台
在 Google Cloud 控制台中,前往 Certificate Authority Service 页面。
点击 CA 池管理器标签页,然后选择要为其授予权限的 CA 池。
如果信息面板尚未显示,请点击显示信息面板。然后, 点击权限。
点击
添加主账号。在新的主账号字段中,输入主账号的电子邮件地址或其他 标识符。
在选择角色列表中,选择 CA Service Admin 角色。
点击保存。系统会为主账号授予针对 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 颁发的证书。
控制台
在 Google Cloud 控制台中,前往 Certificate Authority Service 页面。
点击 CA 池管理器标签页,然后选择要为其创建 CA 池的 CA 池 希望授予权限。
如果信息面板尚未显示,请点击显示信息面板。然后, 点击权限。
点击
添加主账号。在新的主账号字段中,输入主账号的电子邮件地址或其他 标识符。
在选择角色列表中,选择 CA Service Operation Manager 角色。
点击保存。系统会为主账号授予 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 创建证书的权限,请按照以下说明操作。
控制台
在 Google Cloud 控制台中,前往 Certificate Authority Service 页面。
点击 CA 池管理器,然后选择要为其创建 CA 池的 CA 池 希望授予权限。
如果信息面板尚未显示,请点击显示信息面板。然后, 点击权限。
点击
添加主账号。在新的主账号字段中,输入主账号的电子邮件地址或其他 标识符。
在选择角色列表中,选择 CA Service Certificate Manager 角色。
点击保存。系统会向主账号授予针对 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 政策,请按照以下说明操作:
控制台
在 Google Cloud 控制台中,前往 Certificate Authority Service 页面。
点击模板管理器标签页,然后选择证书模板 您要为其授予权限的 API。
如果信息面板尚未显示,请点击显示信息面板。然后, 点击权限。
点击
添加主账号。在新的主账号字段中,输入主账号的电子邮件地址或其他 标识符。
从选择角色下拉列表中选择要授予的角色。
点击保存。
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 角色,请参阅撤消访问权限。
后续步骤
- 查看 CA Service 的 IAM 角色及其相关权限。
- 了解模板和发布政策。
- 了解如何管理政策控制项。