查看理由并据此执行操作

本页介绍了如何查看和处理 Key Access Justifications 发送的用于请求访问加密密钥的理由。每当您的信息被加密或解密时,“密钥访问理由”都会向您发送说明访问原因的理由。您查看和处理理由的方式取决于您在 Key Access Justifications 中使用的密钥类型:

  • 对于外部管理的密钥,Cloud EKM 合作伙伴可能会提供设置政策的功能,以便根据理由的内容自动批准或拒绝访问请求。如需详细了解如何设置政策,请参阅所选密钥管理器的相关文档。以下合作伙伴支持密钥访问理由:
    • Fortanix
    • Thales
  • 对于使用 Key Access Justifications 政策配置的所有密钥(无论密钥类型如何),您都可以在 Cloud KMS 审核日志中查看访问请求

拒绝访问可能会妨碍 Google 人员为您提供合同服务。例如:

  • 由于 CUSTOMER_INITIATED_ACCESSGOOGLE_INITIATED_SYSTEM_OPERATION 的原因而拒绝访问请求会导致您的服务不可用。
  • 如果您出于 CUSTOMER_INITATED_SUPPORT 原因拒绝访问权限请求,在极少数情况下,当您的支持服务工单需要访问敏感客户信息时,Google 人员将无法回复该工单。支持服务工单通常不需要此访问权限,我们的第一线支持人员也没有此访问权限。
  • 如果因 GOOGLE_INITIATED_SERVICE 而拒绝访问请求,会降低服务可用性和可靠性,并会导致 Google 无法从中断中恢复。

查看 EKM 密钥的理由

您可以使用 Google Cloud 控制台查看 Key Access Justifications 在有用户访问您的数据时发送给外部密钥管理器的理由。如需访问理由,您首先需要在包含用于加密的密钥的项目中启用 Cloud Audit Logs with Cloud KMS。

完成设置后,Cloud Audit Logs 还会包含在外部请求中用于加密操作的理由。该理由包含在资源键的数据访问日志的 protoPayloadmetadata 条目中。如需详细了解这些字段,请参阅了解审核日志。如需详细了解如何将 Cloud Audit Logs 与 Cloud KMS 搭配使用,请参阅 Cloud KMS 审核日志记录信息

请注意,与与外部密钥管理器共享的理由不同,Cloud Audit Logs 中的理由不能用于批准或拒绝关联的加密操作。 Google Cloud 仅在操作完成后记录理由。因此, Google Cloud 中的日志主要用于记录保存。

查看 Cloud HSM 密钥和软件密钥的理由

配置了密钥访问理由的 Cloud HSM 和软件密钥已用于执行加密或解密操作时,您可以查看 Cloud KMS 审核日志,了解以下信息:

  • key_access_justification:与请求关联的理由代码
  • key_access_justification_policy_metadata:密钥的 Key Access Justifications 政策元数据,其中包含以下信息:
    • customer_configured_policy_enforced:指示是否针对操作强制执行了对密钥设置的 Key Access Justifications 政策。
    • customer_configured_policy:表示允许访问按键的正当理由代码。
    • justification_propagated_to_ekm:表示是否已将访问请求传播到外部密钥管理器(如果已配置)。

以下示例展示了使用 Key Access Justifications 配置的 Cloud HSM 密钥的 Cloud KMS 审核日志条目:

  {
    @type: "type.googleapis.com/google.cloud.audit.AuditLog"
    (...)
    metadata: {
      entries: {
        key_access_justification: {
          @type: "type.googleapis.com/google.cloud.ekms.v0.AccessReasonContext"
          reason: "CUSTOMER_INITIATED_ACCESS"
        }
        key_access_justification_policy_metadata: {
          customer_configured_policy_enforced: "true"
          customer_configured_policy: {
            allowed_access_reasons: ["CUSTOMER_INITIATED_ACCESS", "GOOGLE_INITIATED_SYSTEM_OPERATION"]
          }
        justification_propagated_to_ekm: "false"
        }
      }
    }
    methodName: "useVersionToDecrypt"
    serviceName: "cloudkms.googleapis.com"
    (...)
  }