连接 Google Cloud
概述
本指南将引导您完成将 Google Cloud Platform 连接至 IBMCloudability 的操作流程。 Cloudability 支持
GCP 标准计费
GCP 详细账单。
连接后,您将能够访问 Cloudability 中的 FinOps 功能。
先决条件
Cloudability 使用 IAM 创建和管理自定义角色
在 GCP 中应具备 IAM 权限,以便创建自定义角色
Cloudability 使用这些自定义角色,其权限专门用于读取账单、承诺和定价数据。
CloudabilityRole_Billing – 用于计费账户
- CloudabilityRole_Buckets - 用于访问 GCS 存储桶
CloudabilityRole_AdvancedFeatures – 用于项目
应具备在 GCP 中创建 GCS 存储桶的权限。
需要以下权限
bigquery.tables.export (从 导出表格数据) BigQuery
storage.buckets.getIamPolicy
storage.buckets.get
storage.buckets.list
storage.multipartUploads.abort
storage.multipartUploads.创建
storage.multipartUploads.列表
storage.multipartUploads.listParts
storage.objects.create
storage.objects.delete
storage.objects.get
storage.objects.list
storage.objects.update
应能在 GCP 控制台中执行 GCP shell 脚本,该脚本将把该角色绑定到 Cloudability 的服务账户( billing-data-service-acct@cloudability-credentials.iam.gserviceaccount.com )上,使其作为 billing-project 层级的自定义角色成员
要在云控制台中成功运行我们的脚本,您的 gcloud 用户需要在项目级别获得以下 IAM 权限:
iam.roles.create
resourcemanager.projects.setIamPolicy
resourcemanager.projects.getIamPolicy
这使客户能够完全掌控并清晰了解其 GCP 项目中任何承担该角色的实体所采取的所有行动。
管理员访问 Cloudability 供应商凭证
熟悉 GCP 组织
熟悉使用批量操作进行 GCP 凭证管理
访问并启用 Google Cloud Resource Manager API 的权限
入门:
Cloudability 的 GCP 认证流程包含两个主要步骤:
GCP 账单账户认证
GCP 项目认证(高级功能)
GCP 账单账户认证流程包含若干步骤,您需在不同阶段分别于 GCP 门户网站和 Cloudability 网站执行相应操作。
在此过程中, Cloudability 将使用您的计费表ID生成包含gcloud IAM命令的脚本,该脚本需在 GCP 控制台中运行。
- 检查相应项目的 IAM 部分,以确定您是否拥有这些权限。
- 启用 Google Cloud Resource Manager API
- Cloudability 使用 Google 的云 Resource Manager API来测试是否已授予支持可用功能所需的权限。
- Google 的云 Resource Manager API为您提供诸多优势,且完全免费。 您可以在 Resource Manager 上阅读更多相关内容。
- 有关通过 Resource Manager 提供的API列表,请参阅 Cloud Resource Manager API 。
为 GCP 计费账户进行资质认证
步骤 1 - GCP 门户 – 启用 BigQuery 导出功能及表 ID
在 GCP 控制台中 , 进入「API与服务 > 库」部分,搜索 「Cloud Resource Manager API」。
在 Cloud Resource Manager API 页面上, 选择 ENABLE。
请确保已勾选“启用API”。
在 Google 控制台中,在搜索栏中输入 "账单",在显示的结果中选择 "账单账户"。

选择账单导出。

选择 "编辑设置"(根据您要设置的导出类型)。

点击“编辑设置”按钮,选择您要设置的导出类型——标准账单或详细账单。
选择将存储您的计费数据(很可能是您的计费项目)的项目,然后点击数据集并选择创建新数据集。

添加数据集 ID 并单击创建数据集。

选择 "保存 "完成整个过程。

GCP 标准使用成本表名称应采用此格式: gcp_billing_export_v1_<BILLING_ACCOUNT_ID>。
GCP 详细使用成本表名称应采用此格式 gcp_billing_export_resource_v1_<BILLING_ACCOUNT_ID> .
标准使用/详细使用成本表应包含如下图所示的以下分区细节。

启用 BigQuery 导出功能后,系统将花费数小时创建计费表,完成后您即可获取该表的表ID。
您可以在包含计费数据导出文件( BigQuery )的项目中,通过导航至 「表信息 > 表ID 」找到计费表ID。

当您为计费账户启用 BigQuery 导出功能时,必须指定一个项目和数据集,计费数据将导出至该项目和数据集。 在指定的数据集中自动为您创建一个表格。 该表称为计费表, Cloudability 的服务账户必须能够读取该表中的数据。
创建存储桶
需要一个存储桶,将 BQ 表导出的数据复制到存储桶中,然后 Cloudability 才能检索这些数据。
在 Google 控制台中工作;在搜索栏中输入 "云存储",并在显示时选择它。

单击 "创建 "创建一个 "水桶"。
输入存储桶的名称(例如:cloudability-export,然后单击创建)。

出现提示时,保留默认值并单击 "确认"。

将创建水桶。

第二步 - Cloudability – 在 Cloudability 中添加凭据详细信息
GCS标准计费
收集完上述信息后,您可将其输入 Cloudability 以更新您的 GCP 凭证。
Cloudability 将使用此信息生成一个Shell脚本。 当该脚本从您的 Cloud Shell 在 GCP 门户中运行时,它将通过自定义角色创建并授予 Cloudability 权限,以便访问存储账户。
在 Cloudability 中,导航至
设置 > 供应商凭证 > 添加数据源 > GCP。
单击 Next
选择 GCP - 将打开添加 GCP 账户面板。
或
设置 > 供应商凭证 > Ingress > GCP。
单击 Next
选择 GCP 标准计费——添加凭证面板随即打开。
输入完整的表ID,该ID由项目、数据集和表组合而成,例如: project:dataset.gcp_billing_export_v1_<BILLING_ACCOUNT_ID>
输入 GCS 存储桶名称
输入组织ID(推荐,有助于快速入职)
GCP 客户可以通过使用……以自动化方式快速为项目进行凭证认证 GCP 组织 . 您需要将所有创建于"无组织"下的项目移入新的组织资源中。
有关如何迁移项目的说明,请参阅《将项目迁移到组织资源中》。
点击生成安装脚本
点击下载脚本
GCP shell脚本模板将下载至本地——请将其保存在安全位置以备后续操作,该文件需上传至 GCP 控制台
标准计费与BQ流媒体服务
设置 > 供应商凭证 > 添加数据源 > GCP。
单击 Next
选择 GCP - 将打开添加 GCP 账户面板。
或
设置 > 供应商凭证 > Ingress > GCP。
单击 Next
选择 GCP 标准计费——添加凭证面板随即打开。
输入完整的表ID,该ID由项目、数据集和表组合而成,例如: project:dataset.gcp_billing_export_v1_<BILLING_ACCOUNT_ID
桶名称(可选 - 可留空)
组织ID(推荐使用,有助于快速入职)
GCP 客户可以通过以下方式自动快速地为项目进行身份验证: GCP 组织 . 您需要将所有创建于"无组织"下的项目移入新的组织资源中。
有关如何迁移项目的说明,请参阅《将项目迁移到组织资源中》。
点击生成安装脚本
点击下载脚本
- GCP shell脚本模板将下载至本地——请将其保存在安全位置以备后续操作,该文件需上传至 GCP 控制台

详细计费(推荐)
设置 > 供应商凭证 > 添加数据源 > GCP。
单击 Next
选择 GCP - 将打开添加 GCP 账户面板。
或
设置 > 供应商凭证 > Ingress > GCP。
单击 Next
选择 GCP 详细计费——添加凭证面板随即打开。
输入完整的表ID ,该ID由项目、数据集和表组合而成,例如: project:dataset.gcp_billing_export_resource_v1_<BILLING_ACCOUNT_ID
输入 GCS存储桶名称。
输入详细计费日期。
注: 此日期表示您启用详细账单导出功能的月份和年份。 如果您是第一次执行此操作,则当前月份为 YYYY-MM。
组织ID (推荐使用,有助于快速入职)
GCP 客户可以通过使用……以自动化方式快速为项目进行身份验证 GCP 组织 . 您需要将所有创建于"无组织"下的项目移入新的组织资源中。
有关如何迁移项目的说明,请参阅《将项目迁移到组织资源中》。
点击生成安装脚本
点击下载脚本
GCP shell脚本模板将下载至本地——请将其保存在安全位置以备后续操作,该文件需上传至 GCP 控制台
步骤3 – 上传并运行 GCP shell脚本
该脚本执行两个步骤:首先在计费项目中设置自定义角色,然后将 Cloudability 的服务账户添加为项目成员,并绑定该自定义角色。 这确保了我们的服务账户只能从计费项目内的 BigQuery 表中读取数据。 我们不会在非计费项目中访问 BigQuery 数据。
对于GCS存储桶,我们遵循上述流程:通过 BigQuery 导出作业将 BigQuery 数据导出至GCS,随后将该数据拉取至 Cloudability。
1. 自定义角色的设置
该脚本首先在计费项目中创建自定义角色。 该脚本为自定义角色授予了读取计费数据所需的权限
# 示例:为 my-billing-project-123 创建计费自定义角色 # 计费项目 ID 为 my-billing-project-123 gcloud iam roles create CloudabilityRole_Billing \ --project \ my-billing-project-123 \ --title \" Cloudability 计费角色" \ --description \"允许 Cloudability 访问计费账户数据" \ --permissions \ bigquery.jobs.create,bigquery.tables.getData \ --stage =GA
2. 将服务账户添加为成员并绑定自定义角色
创建自定义角色后,脚本将添加 Cloudability 的服务账户作为计费项目的成员,并将其与该自定义角色绑定。
# 示例:将 Cloudability 的服务帐户添加为 my-billing- project-123 的成员 # 计费项目 ID 为 my-billing-project-123 gcloud projects add-iam-policy-binding my-billing-project-123 \ --member serviceAccount:billing-data-service-acct@cloudability- \ --role 'projects/my-billing-project credentials.iam.gserviceaccount.com 123/roles/CloudabilityRole_Billing '
3. GCS 存储桶
若选择使用GCS存储桶的 GCP 标准计费方案或 GCP 详细计费方案,则必须配置 GCP GCS存储桶。 Cloudability 将从配置的 GCPBigQuery 表中临时将数据导出至此GCS存储桶,以便将这些数据摄入 Cloudability。 数据摄取完成后, Cloudability 将从存储桶中删除数据。
注意: 同一 GCP 付款方账户ID不能同时用于标准计费和详细计费。
运行脚本
请按照以下步骤通过云控制台内的 Cloud Shell 运行脚本。 在 Cloud Shell 的哪个位置运行脚本并不重要。
激活 Cloud Shell ,选择图标
,然后选择 “上传文件”。 从文件浏览器中选择下载的脚本并确认。chmod +x <scriptname> 使脚本可执行
接下来,在 Cloud Shell 中运行脚本:
./ script-name
- 检查是否有任何错误。 例如,

- 如果脚本运行成功,您将在 Cloud Shell 中看到与下面类似的输出:

步骤 4 – Cloudability 验证凭据
选择「验证凭据」。
选择刷新图标更新状态。
绿色复选标记表示该账单账户已成功认证。
您已成功将您的计费账户添加至 Cloudability。 我们定期采集数据,您的账单数据将从下一个采集周期开始提供。 下一次采集时,我们还将枚举与该计费账户相关的项目。
最后,若贵机构需要添加其他 GCP 计费账户,请对每个计费账户重复此操作流程。
GCP 项目认证(高级功能)
本节的目的是帮助您完成项目的认证过程,以启用 Cloudability 的高级功能。 如果您的组织拥有多个 GCP 项目,则必须为每个需要启用高级功能的项目重复此过程。
开始之前,请确保您已完成所有先决条件
认证您的项目:
添加新项目凭证
要为 GCP 项目启用高级功能:
导航至 “供应商凭证”,然后选择“ GCP ”选项卡
选择 “ 编辑”图标以打开“编辑凭据”面板。
选择更新凭据。
选择下载脚本。
如果浏览器弹出警告, 请选择 保留 。

运行脚本
有关更多信息,请参阅“运行脚本”部分
如何确认成功
这可以通过批量操作或手动完成。
通过用户界面进行批量验证: GCP 使用批量操作进行凭证验证
通过用户界面手动验证:
在每个项目上选择「验证凭据」。
选择 “详细信息”以验证项目是否具备使用高级功能所需的权限。
s
常见问题解答
账单导出页面提供的详细信息与账单表格的 BigQuery 页面所示内容存在差异。
具体来说, BigQuery 页面上的表 ID 是使用账单项目 ID 构建的,而账单导出页面则列出账单项目名称。 ID 是唯一的,而名称则不是。
解决方案:检查先决条件。
如果项目ID、数据集或表ID出现截断该怎么办?
情境:您将完整的 GCP 计费表ID输入系统后,发现存在错误。 此外,当您编辑凭证时,会发现项目 ID、数据集或表 ID 被截断。 您可能已在计费导出页面中检索或创建了您的 GCP 计费表ID。
解决方案:您必须从 BigQuery 页面完整复制您的计费表的表ID。
[脚本] 错误:( gcloud.iam.roles.create ) 项目中的某个资源存在冲突。
背景:如果计费项目中已有角色,且角色_id为 CloudabilityRole_Billing ,则可能出现这种情况。 该错误说明脚本无法创建一个新角色(role_id CloudabilityRole_Billing ),因为已经存在一个角色。
解决方案:忽略此错误。
[脚本] 错误:( gcloud.iam.roles.create ) 先决条件失败:无法创建具有角色ID ( CloudabilityRole_Billing ) 的角色,因为该角色ID对应的角色已处于已删除状态。
背景:从计费项目中删除现有角色后运行脚本时,可能会出现这种情况,角色_id CloudabilityRole_Billing。 角色可能处于删除状态,脚本无法使用该角色 ID 创建新角色。 您可以在云控制台中查看角色的状态(已启用、已禁用、已删除)。
解决方案:从计费项目中删除现有角色(role_id CloudabilityRole_Billing ),然后重新运行脚本。
如何处理 GCP 域名限制?
如果有域限制,则可能会出现错误信息。 为解决此问题,请将 Cloudability 加入白名单,通过在组织策略中添加 Cloudability 的 GCP 工作区客户 ID 来查询数据。
域名是 cloudability.com ,ID 是 C03n3dgoi
要查看 GCP 付费方账户在 Cloudability 报告界面中的完整SCUD增强功能,应使用哪个计费导出文件进行凭证设置?
建议使用 GCP 详细计费导出功能,该功能可在 Cloudability 报告中全面呈现资源过度使用与使用不足的场景。
VPC 服务控制
前置条件:
每台 VM 都必须配备GPU。
每台 VM 都必须安装 GPU驱动程序。
每台 VM 都必须安装 Python 3.6 或更高版本。
每个 VM 都必须安装创建 Python 虚拟环境所需的软件包。
另请参阅 《配置 GCP 监控代理以实现资源优化》 。