Google Cloud 提供两种组织政策限制条件,用于在整个组织中设置密钥版本销毁政策:
constraints/cloudkms.minimumDestroyScheduledDuration
用于为组织内的新密钥设置安排销毁的最短时长。constraints/cloudkms.disableBeforeDestroy
用于要求在安排销毁密钥版本之前先停用密钥版本。
准备工作
本页面的说明假定您熟悉使用限制条件,并且拥有所需的资源和角色。
所需的资源
在完成本页面上的步骤之前,您必须拥有以下资源:
- 组织。
- 可选:组织中的文件夹或项目资源。
所需的角色
如需获得管理组织政策所需的权限,请让您的管理员为您授予组织的 Organization Policy Administrator (roles/orgpolicy.policyAdmin
) IAM 角色。如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
此预定义角色可提供管理组织政策所需的权限。如需查看所需的确切权限,请展开所需权限部分:
所需权限
管理组织政策需要以下权限:
-
orgpolicy.constraints.list
-
orgpolicy.policies.create
-
orgpolicy.policies.delete
-
orgpolicy.policies.list
-
orgpolicy.policies.update
-
orgpolicy.policy.get
-
orgpolicy.policy.set
要求最短的已安排销毁时长
每个密钥的最短预定销毁时长限制条件 (constraints/cloudkms.minimumDestroyScheduledDuration
) 用于为新密钥的安排销毁时长设置最短时长。此限制条件会替换项目、文件夹或组织级层的最低预定销毁时长。此限制条件可降低意外销毁仍需要的密钥的几率。您可以将此限制设置为更高的值,以确保在密钥销毁变得不可逆之前,您有时间阻止密钥销毁。
如果不需要的密钥销毁会造成更大的危害,例如对于受数据保留要求约束的生产数据,请为此约束使用更高的值。如果不需要的密钥销毁造成的危害较小,例如在开发或测试环境中,请为此约束条件使用较低的值。您还可以使用较低的值来及时进行加密粉碎。不过,作为最小值,此限制条件无法确保新创建的密钥具有较短的安排销毁时长。
如需设置预定销毁的最短时长,请按以下步骤操作:
使用
describe
命令获取组织资源的当前政策。此命令返回直接应用于此资源的政策:gcloud org-policies describe \ constraints/cloudkms.minimumDestroyScheduledDuration \ --organization=ORGANIZATION_ID
将
ORGANIZATION_ID
替换为组织资源的唯一标识符。组织 ID 采用十进制数字的格式,不能添加前导零。您还可以查看分别带有
--folder
或--project
标志以及文件夹 ID 或项目 ID 的文件夹或项目的组织政策。响应将返回当前组织政策(如果存在)。输出类似于以下内容:
name: organizations/ORGANIZATION_ID/policies/cloudkms.minimumDestroyScheduledDuration spec: etag: COTP+KYGELiCmsoB inheritFromParent: true rules: - values: allowedValues: - in:7d updateTime: '2023-08-17T14:00:04.424051Z'
如果未设置任何政策,
describe
命令会返回NOT_FOUND
错误:ERROR: (gcloud.org-policies.describe) NOT_FOUND: Requested entity was not found.
使用
set-policy
命令针对组织设置政策。此命令会覆盖当前附加至该资源的所有政策。创建临时文件
/tmp/policy.yaml
以存储政策:name: organizations/ORGANIZATION_ID/policies/cloudkms.minimumDestroyScheduledDuration spec: rules: - values: allowedValues: - in:MINIMUM_DURATION
替换以下内容:
ORGANIZATION_ID
:您组织的数字 ID。MINIMUM_DURATION
:相应组织中密钥的已安排销毁状态的最短持续时间(以天为单位)。必须是以下值之一:7d
、15d
、30d
、60d
、90d
或120d
。
运行
set-policy
命令:gcloud org-policies set-policy /tmp/policy.yaml
使用
describe --effective
查看当前的有效政策。 此命令会返回组织政策,因为此时它是在包含继承政策的资源层次结构中进行评估。gcloud org-policies describe \ constraints/cloudkms.minimumDestroyScheduledDuration --effective \ --organization=ORGANIZATION_ID
输出类似于以下内容:
name: organizations/ORGANIZATION_ID/policies/cloudkms.minimumDestroyScheduledDuration spec: rules: - values: allowedValues: - 30d - 15d - 90d - 60d - 7d - 120d
由于该组织政策在组织层级设置,因此允许继承的所有子资源都将继承该政策。
要求在销毁密钥之前先停用密钥
借助将密钥销毁限制为已停用的密钥限制 (constraints/cloudkms.disableBeforeDestroy
),您可以要求在安排销毁密钥之前先停用密钥。在销毁密钥之前停用密钥是一种推荐的最佳实践,因为这有助于您验证密钥是否未在使用。您可以将此限制与细致的 Identity and Access Management 政策相结合,以创建需要多个角色协作的多步骤销毁流程。
如需使用此限制条件创建多步销毁流程,请确保没有任何用户同时拥有 cloudkms.cryptoKeyVersions.update
和 cloudkms.cryptoKeyVersions.destroy
权限。此用例要求您使用自定义角色。
如需要求在安排销毁密钥之前,密钥必须处于已停用状态,请按以下步骤操作:
gcloud
使用
describe
命令获取组织资源的当前政策。此命令返回直接应用于此资源的政策:gcloud org-policies describe \ constraints/cloudkms.disableBeforeDestroy \ --organization=ORGANIZATION_ID
将
ORGANIZATION_ID
替换为组织资源的唯一标识符。组织 ID 采用十进制数字的格式,不能添加前导零。您还可以查看文件夹或项目的组织政策,只需使用
--folder
或--project
标志并相应地指定文件夹 ID 或项目 ID 即可。响应将返回当前组织政策(如果存在)。输出类似于以下内容:
name: organizations/ORGANIZATION_ID/policies/cloudkms.disableBeforeDestroy spec: etag: CPvY+KYGENDwgxA= rules: - enforce: true updateTime: '2023-08-17T14:19:39.033618Z'
如果未设置任何政策,
describe
命令会返回NOT_FOUND
错误:ERROR: (gcloud.org-policies.describe) NOT_FOUND: Requested entity was not found.
使用
set-policy
命令针对组织设置政策。此命令会覆盖已附加到资源的所有政策。创建临时文件
/tmp/policy.yaml
以存储政策:name: organizations/ORGANIZATION_ID/policies/cloudkms.disableBeforeDestroy spec: rules: - enforce: true
将
ORGANIZATION_ID
替换为组织资源的唯一标识符。运行
set-policy
命令:gcloud org-policies set-policy /tmp/policy.yaml
使用
describe --effective
查看当前的有效政策。 此命令会返回组织政策,因为此时它是在包含继承政策的资源层次结构中进行评估。gcloud org-policies describe \ constraints/cloudkms.disableBeforeDestroy --effective \ --organization=ORGANIZATION_ID
输出类似于以下内容:
name: organizations/ORGANIZATION_ID/policies/cloudkms.minimumDestroyScheduledDuration spec: rules: - enforce: true
由于该组织政策在组织层级设置,因此允许继承的所有子资源都将继承该政策。