使用 Cloud HSM 配置密钥访问理由
本页面介绍了如何为 Cloud HSM 配置 Key Access Justifications, Assured Workloads 的 日本区域控制软件包。
在为日本区域创建新的 Assured Workloads 文件夹的步骤中,您可以选择为加密密钥创建新项目和密钥环。您可以将 Cloud HSM 密钥添加到此密钥环,还可以配置 Key Access Justifications 政策来控制对每个密钥的访问权限。
准备工作
- 只有在以下情况下,才能将 Key Access Justifications 与 Cloud HSM 密钥搭配使用 Assured Workloads 中的日本区域控制软件包。
- 请确保您的管理员已向您授予以下必要权限之一: Identity and Access Management (IAM) 角色,用于创建和管理您的 Key Access Justifications 政策和 Cloud HSM 密钥本身。
必需的 IAM 权限
如需获取创建和管理 Cloud HSM 密钥及其 Key Access Justifications 政策所需的权限,
请让管理员授予您
对包含密钥环的项目拥有 Cloud KMS Admin (roles/cloudkms.admin
) IAM 角色。
如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
此预定义角色包含 创建和管理 Cloud HSM 密钥及其 Key Access Justifications 政策所需的权限。如需查看所需的确切权限,请展开所需权限部分:
所需权限
如需创建和管理 Cloud HSM 密钥及其 Key Access Justifications 政策,您需要具备以下权限:
-
cloudkms.cryptoKeys.create
-
cloudkms.cryptoKeys.update
-
cloudkms.cryptoKeys.get
使用 Key Access Justifications 配置 Cloud HSM 密钥
如需使用 Cloud HSM 密钥配置密钥访问权限证明,您可以在创建密钥时将密钥访问权限政策作为参数添加进去,也可以在创建密钥后使用该政策更新密钥。
创建新密钥和政策
REST
使用 cryptoKeys.create
方法创建新的密钥和政策:
POST https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys?crypto_key_id=KEY_NAME
在请求中,替换以下占位值:
- PROJECT_ID:包含您要向其添加密钥的密钥环的项目 ID,例如
919698201234
。 - LOCATION:密钥环的位置,例如
us-west1
。 - KEY_RING:您在创建 Assured Workloads 文件夹的密钥管理项目和密钥环时指定的密钥环的名称,例如
my-key-ring
。 - KEY_NAME:您要创建的 HSM 密钥的名称,
示例:
my-hsm-key
。
请求正文:
{ "purpose": "PURPOSE", "versionTemplate": { "protectionLevel": "HSM", "algorithm": "ALGORITHM" }, "keyAccessJustificationsPolicy": { "allowedAccessReasons": [ ALLOWED_ACCESS_REASONS ] } }
在请求正文中,替换以下占位值:
- PURPOSE:密钥的用途。如需查看不同密钥用途的列表,请参阅密钥用途,例如
ENCRYPT_DECRYPT
。 - ALGORITHM:要使用的加密算法。有关
可用的算法,请参阅
Cloud KMS 算法,例如
GOOGLE_SYMMETRIC_ENCRYPTION
。 - ALLOWED_ACCESS_REASONS:Key Access Justifications 政策,用于定义一个或多个允许的理由代码(例如
CUSTOMER_INITIATED_ACCESS
),以便访问加密密钥。
以下示例请求和请求正文仅允许访问 有几个理由:
POST https://cloudkms.googleapis.com/v1/projects/919698201234/locations/us-west1/keyRings/my-key-ring/cryptoKeys?crypto_key_id=my-hsm-key
{ "purpose": "ENCRYPT_DECRYPT", "versionTemplate": { "protectionLevel": "HSM", "algorithm": "GOOGLE_SYMMETRIC_ENCRYPTION" }, "keyAccessJustificationsPolicy": { "allowedAccessReasons": [ "CUSTOMER_INITIATED_ACCESS", "GOOGLE_INITIATED_SYSTEM_OPERATION" ] } }
更新现有密钥的政策
REST
使用 cryptoKeys.patch
方法更新 Cloud KMS 中的现有密钥:
PATCH https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME?update_mask=keyAccessJustificationsPolicy
在请求中,替换以下占位值:
- PROJECT_ID:包含密钥对应的密钥环的项目的 ID,例如
919698201234
。 - LOCATION:密钥环的位置,例如
us-west1
。 - KEY_RING:您在创建密钥环时指定的密钥环的名称
您创建了 Assured Workloads 文件夹的密钥管理项目
和密钥环,例如
my-key-ring
。 - KEY_NAME:您要更新的 HSM 密钥的名称,
示例:
my-hsm-key
。
请求正文:
{ "purpose": "PURPOSE", "versionTemplate": { "protectionLevel": "HSM", "algorithm": "ALGORITHM" }, "keyAccessJustificationsPolicy": { "allowedAccessReasons": [ ALLOWED_ACCESS_REASONS ] } }
在请求正文中,替换以下占位值:
- PURPOSE:密钥的用途。有关不同键的列表
目的,请参阅
密钥用途,例如
ENCRYPT_DECRYPT
。 - ALGORITHM:要使用的加密算法。有关
可用的算法,请参阅
Cloud KMS 算法,例如
GOOGLE_SYMMETRIC_ENCRYPTION
。 - ALLOWED_ACCESS_REASONS:Key Access Justifications 政策,定义零
最多允许
理由代码
访问加密密钥的权限。
CUSTOMER_INITIATED_ACCESS
。
以下示例请求和请求正文仅允许访问 有几个理由:
PATCH https://cloudkms.googleapis.com/v1/projects/919698201234/locations/us-west1/keyRings/my-key-ring/cryptoKeys/my-hsm-key?keyAccessJustificationsPolicy
{ "purpose": "ENCRYPT_DECRYPT", "versionTemplate": { "protectionLevel": "HSM", "algorithm": "GOOGLE_SYMMETRIC_ENCRYPTION" }, "keyAccessJustificationsPolicy": { "allowedAccessReasons": [ "CUSTOMER_INITIATED_ACCESS", "GOOGLE_INITIATED_SYSTEM_OPERATION" ] } }
获取密钥的 Key Access Justifications 政策
REST
使用
cryptoKeys.get
方法:
GET https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME
在请求参数中,将以下占位值替换为 拥有:
- PROJECT_ID:包含相应密钥环的
键,例如
919698201234
。 - LOCATION:密钥环的位置,例如
us-west1
。 - KEY_RING:您在创建密钥时指定的密钥环的名称
您创建了 Assured Workloads 文件夹的密钥管理项目
和密钥环,例如
my-key-ring
。 - KEY_NAME:您要获取的 HSM 密钥的名称,
示例:
my-hsm-key
。
以下示例请求会获取 Cloud KMS 中密钥的元数据:
GET https://cloudkms.googleapis.com/v1/projects/919698201234/locations/us-west1/keyRings/my-key-ring/cryptoKeys/my-hsm-key
响应正文包含与您的密钥相关的元数据,包括 keyAccessJustificationsPolicy
。例如:
{ "purpose": "ENCRYPT_DECRYPT", "versionTemplate": { "protectionLevel": "HSM", "algorithm": "GOOGLE_SYMMETRIC_ENCRYPTION" }, "keyAccessJustificationsPolicy": { "allowedAccessReasons": [ "CUSTOMER_INITIATED_ACCESS", "GOOGLE_INITIATED_SYSTEM_OPERATION" ] } }