为 Audit Logging 配置角色

本主题介绍了如何为一组示例审核场景配置 Cloud Identity and Access Management 权限。它提供了有关针对每种场景为您公司中的审核相关职能角色授予哪些 Cloud IAM 角色的指导。本主题中的示例主要针对安全管理员、审核员和为组织管理审核任务的员工。

背景

Google Cloud 提供了 Cloud Audit Logs,它是 Cloud Logging 不可或缺的一部分。对于每个项目,它都包含两个日志流(管理员活动和数据访问);这两者由 Google Cloud 服务生成,可帮助您在 Google Cloud 项目中回答“谁何时在何处执行了哪些操作?”这一问题。这些日志与您的应用日志不同,如下所述:

  • 管理活动日志包含下列日志条目:API 调用或其他用于修改资源配置或元数据的管理操作。管理员活动日志始终处于启用状态。系统不会对管理员活动审核日志收费。
  • 数据访问日志可记录创建、修改或读取用户提供的数据的 API 调用。数据访问审核日志默认停用,因为它们可能很大。

生成审核日志的每项服务都列在生成审核日志的服务部分中。

日志条目会在 Cloud Logging 中保留一段时间,称为保留期限。之后,这些条目会被删除。要将日志条目保留更长时间,必须将其导出 Cloud Logging 并导入 Pub/Sub、BigQuery 或 Cloud Storage 存储分区。

本主题中的示例场景假定已经配置了 Cloud Organization。

本文档并未详细介绍日志记录角色和权限。如需详细说明,请参阅 Cloud Logging 的访问权限控制指南

场景:运营监控

在此场景中,组织有一个中央安全团队,该团队可以审核 Cloud Logging 中以及在长期存储中存储时可能包含敏感信息的日志。

历史审核数据存储在 Cloud Storage 中。组织使用应用来提供历史审核数据访问权限。该应用使用服务帐号来访问日志数据。由于部分审核日志数据的敏感性,我们在使该数据可供查看之前使用 Cloud Data Loss Prevention 对其进行了遮盖。

下表说明了需要授予 CTO、安全团队和服务帐号的 Cloud IAM 角色以及授予这些角色所在的资源级别。

角色 资源 成员 说明
resourcemanager.organizationAdmin 组织 首席技术官 resourcemanager.organizationAdmin 角色使 CTO 能够为安全团队和服务帐号分配权限。
logging.viewer 组织 安全团队 logging.viewer 角色可让安全管理团队查看管理员活动日志。
logging.privateLogViewer 组织 安全团队 logging.privateLogViewer 角色可授予查看数据访问日志的权限。

导出日志条目后,对已导出副本的访问完全由下列任一目标位置上的 Cloud IAM 权限和角色控制:Cloud Storage、BigQuery 或 Pub/Sub。在此场景中,Cloud Storage 是长期存储审核日志的目标位置。

角色 资源 成员 说明
logging.viewer 组织 服务帐号 logging.viewer 角色允许服务帐号读取 Cloud Logging 中的管理员活动日志。

数据访问日志中的数据被视为该组织的个人身份信息 (PII)。通过将应用与 Cloud DLP 集成,您可以在查看数据访问日志时遮盖敏感的 PII 数据,无论这些数据是在数据访问日志中还是在 Cloud Storage 的历史归档文件中。

角色 资源 成员 说明
storage.objectViewer 存储分区 服务帐号 storage.objectViewer 角色允许服务帐号读取导出的管理员活动日志。

此场景中绑定到组织资源的 Cloud IAM 政策如下所示:

{
  "bindings": [{
    "role": "roles/resourcemanager.organizationAdmin",
      "members": [
        "user:cto@example.com"
      ]
    },
    {
      "role": "roles/logging.viewer",
      "members": [
        "group:security-team@example.com",
        "serviceAccount:prod-logviewer@admin-resources.iam.gserviceaccount.com"
      ]
    },
    {
      "role": "roles/logging.privateLogViewer",
      "members": [
        "group:security-team@example.com"
      ]
    }
  ]
}

此场景中配置为目标接收器的存储分区上绑定的 Cloud IAM 政策如下所示:

{
  "bindings": [{
    "role": "roles/storage.objectViewer",
    "members": [
      "serviceAccount:prod-logviewer@admin-resources.iam.gserviceaccount.com"
    ]
  }]
}

场景:开发团队监控他们的审核日志

在此场景中,组织的开发者需要查看在开发其应用时生成的审核日志。除非使用 Cloud DLP 对生产日志进行了遮盖,否则他们不得查看这些日志。开发者可以使用信息中心应用提供对导出的生产数据的“只能查看”权限。组织的安全团队可以访问生产环境和开发环境中的所有日志。

下表说明了需要授予安全团队、开发者和服务帐号的 Cloud IAM 角色以及授予这些角色所在的资源级别。

角色 资源 成员 说明
logging.viewer 组织 安全团队 logging.viewer 角色可让安全管理团队查看管理员活动日志。
logging.privateLogViewer 组织 安全团队 logging.privateLogViewer 角色可授予查看数据访问日志的权限。
logging.viewer 文件夹 开发团队 logging.viewer 角色可让开发者团队查看由开发者项目(包含在所有开发者项目所在的文件夹中)生成的管理员活动日志。
logging.privateLogViewer 文件夹 开发团队 logging.privateLogViewer 角色可授予查看数据访问日志的权限。

对已导出副本的访问完全由下列任一目标位置上的 Cloud IAM 权限和角色控制:Cloud Storage、BigQuery 或 Pub/Sub。在此场景中,BigQuery 是长期存储审核日志的目标位置。

角色 资源 成员 说明
bigquery.dataViewer BigQuery 数据集 信息中心服务帐号 bigquery.dataViewer 角色允许仪表板应用使用的服务帐号读取导出的管理活动日志。

此场景中绑定到开发团队的文件夹资源的 Cloud IAM 政策如下所示:

{
  "bindings": [{
    "role": "roles/logging.viewer",
    "members": [
      "group:developer-team@example.com"
    ]
  },
  {
    "role": "roles/logging.privateLogViewer",
    "members": [
      "group:developer-team@example.com"
    ]
  }]
}

此场景中绑定到组织资源的 Cloud IAM 政策如下所示:

{
  "bindings": [{
    "role": "roles/logging.viewer",
    "members": [
      "group:security-team@example.com"
    ]
  },
  {
    "role": "roles/logging.privateLogViewer",
    "members": [
      "group:security-team@example.com"
    ]
  }]
}

此场景中配置为目标接收器的 BigQuery 数据集上绑定的 Cloud IAM 政策如下所示:

{
  "bindings": [{
    "role": "roles/bigquery.dataViewer",
    "members": [
      "serviceAccount:prod-project-dashboard@admin-resources.iam.gserviceaccount.com"
    ]
  }]
}

场景:外部审核人员

在此场景,组织的审核日志将汇总并导出到中央接收器位置。第三方审核人员每年会被授予几次查看组织审核日志的权限。审核人员无权查看管理员活动日志中的 PII 数据。为了符合此项要求,可使用信息中心来提供对 BigQuery 中存储的历史日志的访问,并根据请求提供对 Cloud Logging 管理员活动日志的访问权限。

组织会为每个审核期创建一个临时的审核人员帐号。该帐号会受到监控,并且通常会被授予访问信息中心应用的权限。

在正常访问期间,审核人员只获得查看 BigQuery 中存储的历史日志的权限。如果发现任何异常情况,审核人员会被授予相应权限,可通过信息中心的高级访问模式查看实际的 Cloud Logging 管理员活动日志。在每个审核期结束时,访问权限即被撤消。

在通过信息中心应用提供数据以供查看之前,使用 Cloud DLP 遮盖这些数据。

下表说明了组织管理员可向信息中心使用的服务帐号授予的 Cloud IAM 日志记录角色,以及授予该角色所在的资源级别。

角色 资源 成员 说明
logging.viewer 组织 信息中心服务帐号 logging.viewer 角色允许服务帐号读取 Cloud Logging 中的管理员活动日志。
bigquery.dataViewer BigQuery 数据集 信息中心服务帐号 bigquery.dataViewer 角色允许仪表板应用使用的服务帐号读取导出的管理活动日志。

此场景中绑定到组织资源的 Cloud IAM 政策如下所示:

{
  "bindings": [{
    "role": "roles/logging.viewer",
    "members": [
      "serviceAccount:prod-project-dashboard@admin-resources.iam.gserviceaccount.com"
    ]
  }]
}

此场景中配置为目标接收器的 BigQuery 数据集上绑定的 Cloud IAM 政策如下所示:

{
  "bindings": [{
    "role": "roles/bigquery.dataViewer",
    "members": [
      "serviceAccount:prod-project-dashboard@admin-resources.iam.gserviceaccount.com"
    ]
  }]
}