限制服务帐号的使用

Resource Manager 提供了多种可在组织政策中使用的限制,用以约束 Cloud Identity and Access Management 服务帐号的使用。

在您设置此类限制条件后,它们将被应用于今后服务帐号的创建和修改。这些限制条件不具有回溯性,不会影响之前创建和配置的服务帐号。

禁止创建服务帐号

您可以使用 iam.disableServiceAccountCreation 布尔值限制条件来禁止创建新的服务帐号。这样您可以集中管理服务帐号,同时不会限制开发者对项目的其他权限。

禁止创建服务帐号密钥

您可以使用 iam.disableServiceAccountKeyCreation 布尔值限制条件来禁止创建新的外部服务帐号密钥。这样您可以控制非托管式长期服务帐号凭据的使用。设置此限制条件后,便无法为受该限制条件影响的项目中的服务帐号创建用户管理的凭据。

设置政策

服务帐户限制条件是一种布尔值限制条件

您必须具有修改组织政策的权限才能设置这种限制条件。例如,resourcemanager.organizationAdmin 角色便具有设置组织政策限制的权限。请参阅使用限制条件页面,详细了解如何在组织级别管理政策。

Console

要设置一项组织政策,以包含禁止创建服务帐号密钥的限制条件,请执行以下操作:

  1. 转到 Google Cloud Platform Console 中的组织政策页面。

    转到“组织政策”页面

  2. 在页面顶部,点击组织下拉列表,然后选择您的组织。
  3. 点击禁止创建服务帐号禁止创建服务帐号密钥
  4. 点击修改按钮。
  5. 应用对象下,选择自定义
  6. 实施下,选择开启
  7. 点击保存。此时将显示一条通知,确认政策已更新。

gcloud

您可以通过 gcloud 命令行工具来设置政策。

要禁止创建服务帐号,请运行以下命令:

gcloud alpha resource-manager org-policies enable-enforce \
    --organization 'ORGANIZATION_ID' \
    iam.disableServiceAccountCreation

要禁止创建服务帐号密钥,请运行以下命令:

gcloud alpha resource-manager org-policies enable-enforce \
    --organization 'ORGANIZATION_ID' \
    iam.disableServiceAccountKeyCreation

要停用政策,可以使用

disable-enforce
命令。

如需了解如何在组织政策中使用限制条件,请参阅使用限制条件

政策示例

以下代码段展示了一项组织政策,其中包含禁止创建服务帐号的限制条件:

resource: "organizations/842463781240"
policy {
  constraint: "constraints/iam.disableServiceAccountCreation"
  etag: "\a\005L\252\122\321\946\334"
  boolean_policy {
  enforced: true
  }
}

以下代码段展示了一项组织政策,其中包含禁止创建服务帐号密钥的限制条件:

resource: "organizations/842463781240"
policy {
  constraint: "constraints/iam.disableServiceAccountKeyCreation"
  etag: "\a\005L\252\122\321\946\334"
  boolean_policy {
  enforced: true
  }
}

错误消息

禁止创建服务帐号

在强制执行 iam.disableServiceAccountCreation 后,创建服务帐号的操作将会失败,系统会显示以下错误消息:

FAILED_PRECONDITION: Service account creation is not allowed on this project.

禁止创建服务帐号密钥

在强制执行 iam.disableServiceAccountKeyCreation 后,创建服务帐号密钥的操作将会失败,系统会显示以下错误消息:

FAILED_PRECONDITION: Key creation is not allowed on this service account.

排查已知问题

默认服务帐号

在您应用 iam.disableServiceAccountCreation 限制条件后,系统将阻止在相关项目中创建服务帐号。此限制也会影响到 GCP 服务,这些服务在启用时会自动在项目中创建默认服务帐号,例如:

  • Compute Engine
  • GKE
  • App Engine
  • Cloud Dataflow

在应用 iam.disableServiceAccountCreation 限制条件后,便无法启用这些服务,因为系统无法为这些服务创建默认服务帐号。

要解决此问题,请执行以下操作:

  1. 暂时移除 iam.disableServiceAccountCreation 限制条件。
  2. 启用所需服务。
  3. 创建任何其他所需的服务帐号。
  4. 最后,重新应用限制。
此页内容是否有用?请给出您的反馈和评价:

发送以下问题的反馈:

此网页
Resource Manager 文档