为工作负载监控设置Google Cloud服务帐户

本主题描述设置 Turbonomic 将用于连接到 Google Cloud 环境的有效服务帐户的步骤。 授予此服务帐户的访问权确定 Turbonomic 发现,监视和优化的 Google Cloud 工作负载。

任务概述

要设置服务帐户,请在 Google Cloud中执行以下任务:

  1. 创建用于工作负载监视的服务帐户。

  2. 创建定制角色,然后将该角色分配给服务帐户。

创建用于工作负载监控的服务帐户

创建服务帐户并为该帐户生成密钥文件。 在 Turbonomic 用户界面中添加 Google Cloud 目标时,需要密钥文件。

要无缝监视 Google Cloud 工作负载,请在通常未达到 Google Cloud实施的速率限制 (例如,非生产项目) 的项目中创建服务帐户。

  1. 在将托管新服务帐户的项目中,打开 gcloud CLI 会话。

  2. 创建服务帐户。

    gcloud iam service-accounts create <SERVICE_ACCOUNT_NAME>

    其中:

    <SERVICE_ACCOUNT_NAME> 是新服务帐户的内部名称。 名称长度必须在 6 到 30 个字符之间。

  3. 记录以下信息以供以后使用。

    • <SERVICE_ACCOUNT_NAME>

    • <PROJECT_ID>

      注:

      <PROJECT_ID> 标识托管服务帐户的项目。 如果需要稍后复审或编辑服务帐户,那么需要此信息。

  4. 为服务帐户生成密钥文件。

    gcloud iam service-accounts keys create <KEY_FILE_NAME> \
      --iam-account=<SERVICE_ACCOUNT_NAME>@<PROJECT_ID>.iam.gserviceaccount.com

    其中:

    • <KEY_FILE_NAME> 是密钥文件的首选名称。

    • <SERVICE_ACCOUNT_NAME> 是您创建的服务帐户的名称。

    • <PROJECT_ID> 是托管服务帐户的项目。

  5. 将密钥文件(JSON 文件)下载到本地计算机。 稍后在 Turbonomic 用户界面中添加 Google Cloud 目标时,将使用密钥文件。

    cloudshell download <KEY_FILE_NAME>

    其中:

    <KEY_FILE_NAME> 是您在上一步中指定的密钥文件名。

自定义角色概述

您可以将以下定制角色分配给您创建的服务帐户。

  • 工作负载监控自定义角色

    此定制角色指定 Turbonomic 在整个组织或单个文件夹或项目中发现和监视工作负载所需的许可权。

    要监控的Google Cloud资源 任务
    组织 在组织级别创建定制角色。
    个别文件夹

    在组织级别创建定制角色。 无法在文件夹级别创建定制角色。

    个别项目 在项目级别创建定制角色。
  • 执行行动的自定义角色

    要从 Turbonomic执行操作,请创建用于指定执行操作所需的许可权的角色。

创建和分配自定义角色(组织级别)

注:

如果希望Turbonomic监控单个项目,请跳至下一节。

  1. 创建用于工作负载监视的定制角色。

    此自定义角色指定了所需的监控权限。 有关这些权限的更多信息,请参阅工作负载监控权限

    gcloud iam roles create <ROLE_ID> --organization=<ORGANIZATION_ID> \
      --title='Turbonomic Role: Access - Organization' \
      --description='Minimum permissions to manage the Google Cloud organization' \
      --permissions="billing.accounts.list,\
    billing.resourceAssociations.list,\
    compute.autoscalers.list,\
    compute.commitments.list,\
    compute.disks.get,\
    compute.disks.list,\
    compute.diskTypes.list,\
    compute.instances.get,\
    compute.instances.list,\
    compute.instanceGroupManagers.get,\
    compute.instanceGroupManagers.list,\
    compute.instanceGroups.get,\
    compute.instanceGroups.list,\
    compute.instanceTemplates.list,\
    compute.machineTypes.get,\
    compute.machineTypes.list,\
    compute.regions.list,\
    compute.zones.list,\
    container.clusters.get,\
    logging.logEntries.list,\
    logging.views.get,\
    logging.views.list,\
    monitoring.services.get,\
    monitoring.services.list,\
    monitoring.timeSeries.list,\
    resourcemanager.folders.get,\
    resourcemanager.folders.list,\
    resourcemanager.organizations.get,\
    resourcemanager.projects.get,\
    resourcemanager.projects.list,\
    serviceusage.services.get" --stage=ALPHA

    其中:

    • <ROLE_ID> 是定制角色的首选标识。

    • <ORGANIZATION_ID>Turbonomic 将监视的组织。

  2. 将定制角色分配给服务帐户。

    gcloud organizations add-iam-policy-binding <ORGANIZATION_ID> \
      --member=serviceAccount:<SERVICE_ACCOUNT_NAME>@<PROJECT_ID>.iam.gserviceaccount.com --role=<ROLE_NAME>

    其中:

    • <ORGANIZATION_ID>Turbonomic 将监视的组织。

    • <SERVICE_ACCOUNT_NAME> 是您创建的服务帐户的名称。

    • <PROJECT_ID> 是托管服务帐户的项目。

    • <ROLE_NAME> 是角色名称的完整路径,如下所示:

      organizations/<ORGANIZATION_ID>/roles/<ROLE_ID>

      注:

      已在先前步骤中创建 <ROLE_ID>

  3. 将预定义的 计费帐户查看者 角色添加到服务帐户。

    gcloud organizations add-iam-policy-binding <ORGANIZATION_ID> \
      --member=serviceAccount:<SERVICE_ACCOUNT_NAME>@<PROJECT_ID>.iam.gserviceaccount.com \
      --role=roles/billing.viewer

    其中:

    • <ORGANIZATION_ID> 是您的 Google Cloud 组织。

    • <SERVICE_ACCOUNT_NAME> 是您创建的服务帐户的名称。

    • <PROJECT_ID> 是托管服务帐户的项目。

  4. 创建自定义角色以执行 Turbonomic 的操作。

    该自定义角色指定了所需的操作执行权限。 有关这些权限的更多信息,请参阅操作执行权限

    gcloud iam roles create <ROLE_ID_ACTION> --organization=<ORGANIZATION_ID> \
      --title='Turbonomic Role: Org Action Execution' \
      --description='Minimum permissions to execute actions in the Google Cloud organization' \
      --permissions="compute.autoscalers.get,\
    compute.autoscalers.update,\
    compute.disks.create,\
    compute.disks.createSnapshot,\
    compute.disks.delete,\
    compute.disks.resize,\
    compute.disks.update,\
    compute.disks.use,\
    compute.disks.useReadOnly,\
    compute.globalOperations.get,\
    compute.instanceGroupManagers.get,\
    compute.instanceGroupManagers.update,\
    compute.instanceGroups.get,\
    compute.instanceGroups.list,\
    compute.instanceGroups.use,\
    compute.instances.attachDisk,\
    compute.instances.detachDisk,\
    compute.instances.setMachineType,\
    compute.instances.start,\
    compute.instances.stop,\
    compute.instanceTemplates.list,\
    compute.regionOperations.get,\
    compute.snapshots.create,\
    compute.snapshots.get,\
    compute.zoneOperations.get,\
    container.clusters.update,\
    iam.serviceAccounts.actAs" --stage=ALPHA

    其中:

    • <ROLE_ID_ACTION> 是操作执行的定制角色的首选标识。

    • <ORGANIZATION_ID>Turbonomic 将监视的组织。

  5. 将执行操作的自定义角色分配给服务账户。

    gcloud projects add-iam-policy-binding <ORGANIZATION_ID> \
      --member=serviceAccount:<SERVICE_ACCOUNT_NAME>@<PROJECT_ID>.iam.gserviceaccount.com --role=<ROLE_NAME_ACTION>

    其中:

    • <ORGANIZATION_ID>Turbonomic 将监视的组织。

    • <SERVICE_ACCOUNT_NAME> 是您创建的服务帐户的名称。

    • <PROJECT_ID> 是托管服务帐户的项目。

    • <ROLE_NAME_ACTION> 是角色名称的完整路径,如下所示:

      organizations/<ORGANIZATION_ID>/roles/<ROLE_ID_ACTION>

      注:

      已在先前步骤中创建 <ROLE_ID_ACTION>

创建和分配自定义角色(项目级)

注意:如果希望Turbonomic监控单个文件夹或整个组织,请参阅上一节。
  1. 创建用于工作负载监视的定制角色。

    此自定义角色指定了所需的监控权限。 有关这些权限的更多信息,请参阅工作负载监控权限

    gcloud iam roles create <ROLE_ID> --project=<PROJECT_ID_MONITOR> \
      --title='Turbonomic Role: Min Access - Project' \
      --description='Minimum permissions to manage the Google Cloud project' \
      --permissions="compute.autoscalers.list,\
    compute.commitments.list,\
    compute.disks.get,\
    compute.disks.list,\
    compute.diskTypes.list,\
    compute.instances.get,\
    compute.instances.list,\
    compute.instanceGroupManagers.get,\
    compute.instanceGroupManagers.list,\
    compute.instanceGroups.get,\
    compute.instanceGroups.list,\
    compute.instanceTemplates.list,\
    compute.machineTypes.get,\
    compute.machineTypes.list,\
    compute.regions.list,\
    compute.zones.list,\
    container.clusters.get,\
    logging.logEntries.list,\
    logging.views.get,\
    logging.views.list,\
    monitoring.services.get,\
    monitoring.services.list,\
    monitoring.timeSeries.list,\
    resourcemanager.projects.get,\
    serviceusage.services.get" --stage=ALPHA

    其中:

    • <ROLE_ID> 是定制角色的首选标识。

    • <PROJECT_ID_MONITOR>Turbonomic 将监视的项目。

  2. 将定制角色分配给服务帐户。

    gcloud projects add-iam-policy-binding <PROJECT_ID_MONITOR> \
      --member=serviceAccount:<SERVICE_ACCOUNT_NAME>@<PROJECT_ID>.iam.gserviceaccount.com --role=<ROLE_NAME>

    其中:

    • <PROJECT_ID_MONITOR>Turbonomic 将监视的项目。

    • <SERVICE_ACCOUNT_NAME> 是您创建的服务帐户的名称。

    • <PROJECT_ID> 是托管服务帐户的项目。

    • <ROLE_NAME> 是角色名称的完整路径,如下所示:

      projects/<PROJECT_ID_MONITOR>/roles/<ROLE_ID>

      注:

      已在先前步骤中创建 <ROLE_ID>

  3. 将预定义的 计费帐户查看者 角色添加到服务帐户。

    gcloud organizations add-iam-policy-binding <ORGANIZATION_ID> \
      --member=serviceAccount:<SERVICE_ACCOUNT_NAME>@<PROJECT_ID>.iam.gserviceaccount.com \
      --role=roles/billing.viewer

    其中:

    • <ORGANIZATION_ID> 是您的 Google Cloud 组织。

    • <SERVICE_ACCOUNT_NAME> 是您创建的服务帐户的名称。

    • <PROJECT_ID> 是托管服务帐户的项目。

  4. 创建自定义角色以执行 Turbonomic 的操作。

    该自定义角色指定了所需的操作执行权限。 有关这些权限的更多信息,请参阅操作执行权限

    gcloud iam roles create <ROLE_ID_ACTION> --project=<PROJECT_ID_MONITOR> \
      --title='Turbonomic Role: Project Action Execution' \
      --description='Minimum permissions to execute actions in the Google Cloud project' \
      --permissions="compute.autoscalers.get,\
    compute.autoscalers.update,\
    compute.disks.create,\
    compute.disks.createSnapshot,\
    compute.disks.delete,\
    compute.disks.resize,\
    compute.disks.update,\
    compute.disks.use,\
    compute.disks.useReadOnly,\
    compute.globalOperations.get,\
    compute.instanceGroupManagers.get,\
    compute.instanceGroupManagers.update,\
    compute.instanceGroups.get,\
    compute.instanceGroups.list,\
    compute.instanceGroups.use,\
    compute.instances.attachDisk,\
    compute.instances.detachDisk,\
    compute.instances.setMachineType,\
    compute.instances.start,\
    compute.instances.stop,\
    compute.instanceTemplates.list,\
    compute.regionOperations.get,\
    compute.snapshots.create,\
    compute.snapshots.get,\
    compute.zoneOperations.get,\
    container.clusters.update,\
    iam.serviceAccounts.actAs" --stage=ALPHA

    其中:

    • <ROLE_ID_ACTION> 是操作执行的定制角色的首选标识。

    • <PROJECT_ID_MONITOR>Turbonomic 将监视的项目。

  5. 将执行操作的自定义角色分配给服务账户。

    gcloud projects add-iam-policy-binding <PROJECT_ID_MONITOR> \
      --member=serviceAccount:<SERVICE_ACCOUNT_NAME>@<PROJECT_ID>.iam.gserviceaccount.com --role=<ROLE_NAME_ACTION>

    其中:

    • <PROJECT_ID_MONITOR>Turbonomic 将监视的项目。

    • <SERVICE_ACCOUNT_NAME> 是您创建的服务帐户的名称。

    • <PROJECT_ID> 是托管服务帐户的项目。

    • <ROLE_NAME_ACTION> 是角色名称的完整路径,如下所示:

      projects/<PROJECT_ID_MONITOR>/roles/<ROLE_ID_ACTION>

      注:

      已在先前步骤中创建 <ROLE_ID_ACTION>

下一步

Turbonomic 用户界面中, 添加 Google Cloud 目标。 有关详细信息,请参阅此 主题