连接 Oracle 云

您可以将 Oracle Cloud Infrastructure (OCI) 租户连接到 Cloudability ,以实现成本和使用数据的摄取。
注:

最长需要 24 小时,您的初始费用和使用数据才会出现在 Cloudability 中。

为确保完全兼容并获得支持,请按照说明中的连接步骤操作。 不支持自定义配置。 如有疑问,请联系 IBM 客服

整合摘要
  1. 在 Cloudability 中获取成本和使用数据

    Cloudability 从 "成本报告 "中获取 OCI 成本和使用数据。"成本报告 "由 OCI 所有,位于 OCI 控制台的根租户中。 要使 Cloudability 能够访问您的 OCI 成本和使用数据,您需要验证根租户的凭据,因为子租户的数据会滚动到根租户。

    认证过程使用 Terraform 脚本完成,生成和运行脚本需要您的根租户 OCID。 脚本包括创建组和用户、将用户添加到组、创建策略并将其附加到组的命令,这样 Cloudability 就可以从 OCI 控制台访问成本报告。 请注意,这些策略为 Cloudability 提供了 OCI 数据的只读权限。

    在 OCI 控制台中执行脚本后,需要生成签名密钥。 最后一步是在 Cloudability UI 中粘贴主区域名称、用户 OCID、组 OCID、指纹和私钥。

  2. 在 Cloudability 中获取使用数据

    一旦您完成了根租户的认证程序,您将只获得父租户的 OCI 使用数据。 验证证书后,您的儿童租户将显示在证书用户界面中,您也需要对这些儿童租户进行证书验证,以获取他们的使用数据。 获得使用数据后, Cloudability ,就可以提出调整规模的建议。 您可以在本页底部的 " 为子女租约添加证书 "中找到更多详细信息。

先决条件

开始之前,请确保以下几点:
  • 您是 Cloudability 管理员。
  • 您在 OCI 控制台中拥有管理员权限。
    • 这是在 OCI 控制台中执行 Terraform 脚本所必需的。

整合步骤

获取您的 OCI 租房 ID
  1. 登录 Oracle Cloud Infrastructure (OCI) 控制台。
  2. 从仪表板左上角的导航菜单中选择 " 治理与管理 "。
  3. 在 " 组织管理 "标题下选择 " 租约 "。 这里列出了您的租约。
  4. 选择租户名称中带有 "父母租户 "的租户 ID 旁的复制图标,复制父母租户 ID。
  5. 在 Cloudability 中,导航至 设置 > 供应商证书 > OCI
  6. 选择 " 添加证书 "。 添加证书 面板在左侧打开。
  7. 粘贴父租户 ID。
  8. 选择 " 保存"。

生成 Terraform 脚本

保存租户 ID 后,选择 " 生成脚本 "。 它会下载 terraform 脚本。 请在本地计算机上创建一个特定文件夹,例如: Cloudability ,并将脚本保存在该文件夹中。 这样做是因为在上传脚本时,您不能单独上传脚本 - 您必须上传包含脚本的文件夹。

以下是 Cloudability 用来创建所需资源的 terraform 内容:

variable "cloudablity_user_email" {
				description = "This is a variable to assign the email to user. If not provided, default email will be set."
				type        = string
				default     = "cldyuser@cloudability.com"
				}
				 
				resource "oci_identity_user" "cloudablity_user" {
				compartment_id = "ocid1.tenancy.oc1..aaaaaaaa4pjpasfply4eky7dl6msfdt3doqpfpmbuw2aesigtvedd4oxhufa"
				description = "This is a Cloudability user and they will be accessing cost data from your tenant."
				name = "CloudabilityDataCollector_User"
				freeform_tags = {
				"User_Created_For"= "Cloudability"
				}
				}
				 
				resource "oci_identity_group" "cloudability_group" {
				compartment_id = "ocid1.tenancy.oc1..aaaaaaaa4pjpasfply4eky7dl6msfdt3doqpfpmbuw2aesigtvedd4oxhufa"
				description = "This is a Cloudability group and it will be accessing cost data from your tenant."
				name = "CloudabilityDataCollector_Group"
				freeform_tags = {
				"Group_Created_For"= "Cloudability"
				}
				}
				 
				resource "oci_identity_user_group_membership" "user_group_membership" {
				group_id = oci_identity_group.cloudability_group.id
				user_id = oci_identity_user.cloudablity_user.id
				}
				 
				resource "oci_identity_policy" "cloudability_policy" {
				compartment_id = "ocid1.tenancy.oc1..aaaaaaaa4pjpasfply4eky7dl6msfdt3doqpfpmbuw2aesigtvedd4oxhufa"
				description = "This policy will retrieve permissions to access the cost report and list policy."
				name = "CloudabilityCostDataReaderPolicy"
				freeform_tags = {
				"Policy_Created_For"= "Cloudability"
				}
				statements = [
				"define tenancy reporting as ocid1.tenancy.oc1..aaaaaaaaned4fkpkisbwjlr56u7cj63lf3wffbilvqknstgtvzub7vhqkggq",
				"endorse group ${oci_identity_group.cloudability_group.name} to read objects in tenancy reporting",
				"allow group ${oci_identity_group.cloudability_group.name} to read organizations-tenancy in tenancy",
				"allow group ${oci_identity_group.cloudability_group.name} to read organizations-family in tenancy",
				"allow group ${oci_identity_group.cloudability_group.name} to read policies in tenancy",
				"allow group ${oci_identity_group.cloudability_group.name} to read metrics in tenancy",
				"allow group ${oci_identity_group.cloudability_group.name} to read rate-cards in tenancy",
				"allow group ${oci_identity_group.cloudability_group.name} to read instance-images in tenancy",
				"allow group ${oci_identity_group.cloudability_group.name} to inspect instances in tenancy",
				"allow group ${oci_identity_group.cloudability_group.name} to read instance-family in tenancy"
				]
		}
注:

Terraform 脚本中添加了变量 "cloudablity_user_email",因为它是在 OCI 控制台中使用身份域的用户所需的信息。 电子邮件地址 " cldyuser@cloudability.com " 是一个占位符示例,可直接在 terraform 脚本中更改,或稍后在 OCI 控制台上传时更新。

上传 Terraform 脚本
  1. 在 OCI 控制台中,选择仪表板页面左上角的导航菜单,然后选择 开发人员服务

    OCI 地形截图

  2. Resource Manager 标题中选择堆栈
    注:

    确保在左侧视图的 列表范围 中选择根分区。

    OCI 资源管理器截图

  3. 选择 " 创建堆栈 "创建 新堆栈。

    OCI 创建堆栈截图

  4. 在 " 创建堆栈 "页面,选择 " 我的 配置 "上传 Terraform 配置文件。

    OCI 我的配置截图

  5. 在堆栈配置部分,选择 文件夹 ,然后浏览到存储配置文件的文件夹。
  6. 在弹出窗口中选择 上传
    注:

    确保所选隔间在 " 在隔间中创建 "字段下选择了"(根)"。

    OCI 上传 terraform 截图

  7. 在 " 名称 " 文本框中,输入 " Cloudability "作为值。 选择 下一步
  8. 现在,您可以选择更新 Terraform 脚本中提供的电子邮件地址 " cldyuser@cloudability.com "。 只有在 OCI 控制台中有 身份域 的情况下才需使用该变量,如有需要可在此阶段更新。
  9. 选择 Terraform 版本为 " 1.0 "
  10. 选择 运行应用 复选框。

    OCI terraform 运行应用截图

  11. 选择创建以创建堆栈。

将验证提供的 Terraform 文件并创建新堆栈。 Resource Manager 将验证提供的 Terraform 文件并创建一个新堆栈。

通过获取作业来监控作业状态(生命周期状态)。 成功 表示任务已完成。

该任务将创建一个用户、一个组和一个策略。 根据工作的复杂程度,操作可能需要一些时间。 在作业运行时或完成后,您将收到作业日志内容。

一旦创建了堆栈,就可以在 " 堆栈 "部分看到它。

OCI 地形堆栈截图

验证创建的资源
  1. 从仪表板左上角的导航菜单中选择 身份和安全

    OCI terraform 身份和安全截图

  2. 通过 身份 → 域 → 选择域 → 用户管理选项卡,在身份标题中选择 用户

    你可以看到 Terraform 作业创建了一个名为 "CloudabilityDataCollector_User" 的用户。

    注:

    如果您不希望 Cloudability 创建本地用户,而希望使用 "联合 "用户,请参阅 " 为 OCI 认证联合用户 "。

  3. 在 " 身份 "标题中选择 " "。 如果您正在使用身份域 ,则需要在身份标头中选择 ,然后选择默认域、用户管理并选择。 你可以看到 Terraform 作业创建了一个名为 "CloudabilityDataCollector_Group" 的组。
  4. 选择"...... CloudabilityDataCollector_Group '以检查'. CloudabilityDataCollector_User 已作为 组员 加入该组。
  5. 组信息 中,复制组 OCID 并保存。 稍后需要在 Cloudability UI 中粘贴这些信息。

  6. 在 "身份 "标题下选择 " 策略 "。

    OCI terraform 政策截图

    您可以注意到 Terraform 作业创建的名为 "CloudabilityCostDataReaderPolicy" 的策略。 该策略包含从客户环境中获取数据所需的所有策略。 不支持修改此策略名称。

生成应用程序接口密钥
  1. 从仪表板左上角的导航菜单中选择 身份和安全
  2. 通过 身份 → 域 → 选择域 → 用户管理选项卡,在身份标题中选择 用户
    注:

    如果正在使用 身份域 模块,请在 "身份 "标题下选择 " ",然后选择 " 默认域 "和 " 用户 "。

  3. 选择名为 "CloudabilityDataCollector_User" 的用户。
  4. 选择 API 密钥添加 API 密钥

  5. 选择 " 生成 API 密钥对 "。

  6. 选择 " 下载私人密钥 "。 稍后您需要将其粘贴到 Cloudability UI 中。
  7. 选择 " 下载公钥 "。
  8. 选择 添加 ,指纹就会生成。
  9. 选择 查看配置文件

    OCI Terraform 视图配置截图

步骤 2 - 在 Cloudability - 在 Cloudability UI 中添加信息
  1. 在 Cloudability 中,导航至 设置 > 供应商凭证 > 添加数据源 > OCI添加 OCI 账户 面板打开。

    在 Cloudability 中,导航至 设置 > 供应商证书 > OCI。 选择 " 添加证书 "。 添加证书 面板打开。

    将信息粘贴到配置文件中,如下所示:
    • 主区域 : 显示在 配置文件区域 的旁边
    • 用户 ID :显示在 配置文件 用户 旁边。
    • 组 ID :该信息已在上一步中保存。 您可以通过导航至 " 身份与安全"> " 组"> "''OCID "找到该 OCID。 CloudabilityDataCollector_Group '.
    • 命名空间 :这是您的 OCI 命名空间,请填写配置的命名空间。
    • 指纹 :直接显示在 配置文件 中。
    • 密码 :可以留空。
    • 私钥 : 此信息已在上一步中保存。
      注:

      确保在 Cloudability 中完整粘贴 私钥 ,包括"-----BEGIN PRIVATE KEY----" 和"-----END PRIVATE KEY----"。

  2. 选择 " 保存"。
  3. 选择 " 验证凭证 "。
    注:

    确保在选择 " 验证凭据 "之前选择 " 保存" ,以避免出现任何错误信息。

若信息验证正确,则在" 账单报告" 下方会显示一个绿色勾号。 在高级功能下方也会出现一个绿色勾号,但仅限于根租户。

在 Cloudability 中获取您的 OCI 成本数据可能需要 24 小时。 查看 OCI 数据后,您可以继续更新标签和业务映射——有关此内容的更多信息,请参阅 Apptio 社区帖子

第 3 步 - 在 Cloudability - 为子女租约添加证书

一旦您的证书通过验证, Cloudability 就会自动发现您的子租户,并显示在用户界面上。 将鼠标悬停在儿童租约右侧的 3 个点上,然后选择 "铅笔 "按钮。

OCI terraform 为儿童添加证书截图

然后,您就可以按照上述父母租户的相同流程开始认证子女租户。

通过批量操作验证凭据

为快速验证多个账户,请点击批量操作按钮。 此界面显示所有账户,但状态为"需要凭证"(X)的账户除外。

  1. 选择需要验证的账户。
  2. 点击 “查看选定内容”
  3. 点击验证。

这将触发批量验证流程,批量操作按钮将被禁用直至流程完成。

完成后,账户将转为"已验证凭证状态"或"无效凭证状态"(因存在错误)。
注意: 若账户数量庞大,此操作可能需要几分钟时间。
您需要等待最多48小时才能在 Cloudability 中获取使用情况数据,并开始接收资源优化建议。

权限列表

下面是 OCI 证书详细信息中显示的权限列表。 其中一些仅适用于父账户/租户,不适用于子账户/租户( “oci.get.costReports”, " oci.list.tenancies " 和 “oci.list.rateCards” )。

许可权 描述 适用于父母账户/租约 适用于儿童账户/租约
oci.get.costReports 获取成本报告的权限
oci.list.tenancies

父母允许列出子女租约

oci.get.metrics

获取指标的权限

oci.list.rateCards

允许列出费率卡
oci.list.assignedSubscriptions 列出指定订阅的权限
oci.list.computeShapes 列出计算形状的权限
oci.list.computeImages 列出计算图像的权限
oci.list.imageShape.兼容性 列出图像形状的权限
oci.get.instanceFamily 读取实例族的权限
oci.list.policies 允许阅读政策以进行核查