连接 Oracle 云
最长需要 24 小时,您的初始费用和使用数据才会出现在 Cloudability 中。
为确保完全兼容并获得支持,请按照说明中的连接步骤操作。 不支持自定义配置。 如有疑问,请联系 IBM 客服。
- 在 Cloudability 中获取成本和使用数据
Cloudability 从 "成本报告 "中获取 OCI 成本和使用数据。"成本报告 "由 OCI 所有,位于 OCI 控制台的根租户中。 要使 Cloudability 能够访问您的 OCI 成本和使用数据,您需要验证根租户的凭据,因为子租户的数据会滚动到根租户。
认证过程使用 Terraform 脚本完成,生成和运行脚本需要您的根租户 OCID。 脚本包括创建组和用户、将用户添加到组、创建策略并将其附加到组的命令,这样 Cloudability 就可以从 OCI 控制台访问成本报告。 请注意,这些策略为 Cloudability 提供了 OCI 数据的只读权限。
在 OCI 控制台中执行脚本后,需要生成签名密钥。 最后一步是在 Cloudability UI 中粘贴主区域名称、用户 OCID、组 OCID、指纹和私钥。
- 在 Cloudability 中获取使用数据
一旦您完成了根租户的认证程序,您将只获得父租户的 OCI 使用数据。 验证证书后,您的儿童租户将显示在证书用户界面中,您也需要对这些儿童租户进行证书验证,以获取他们的使用数据。 获得使用数据后, Cloudability ,就可以提出调整规模的建议。 您可以在本页底部的 " 为子女租约添加证书 "中找到更多详细信息。
先决条件
- 您是 Cloudability 管理员。
- 您在 OCI 控制台中拥有管理员权限。
- 这是在 OCI 控制台中执行 Terraform 脚本所必需的。
整合步骤
- 登录 Oracle Cloud Infrastructure (OCI) 控制台。
- 从仪表板左上角的导航菜单中选择 " 治理与管理 "。
- 在 " 组织管理 "标题下选择 " 租约 "。 这里列出了您的租约。
- 选择租户名称中带有 "父母租户 "的租户 ID 旁的复制图标,复制父母租户 ID。
- 在 Cloudability 中,导航至 设置 > 供应商证书 > OCI。
- 选择 " 添加证书 "。 添加证书 面板在左侧打开。
- 粘贴父租户 ID。
- 选择 " 保存"。
生成 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 控制台上传时更新。
- 在 OCI 控制台中,选择仪表板页面左上角的导航菜单,然后选择 开发人员服务。

- 在 Resource Manager 标题中选择堆栈。注:
确保在左侧视图的 列表范围 中选择根分区。

- 选择 " 创建堆栈 "创建 新堆栈。

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

- 在堆栈配置部分,选择 文件夹 ,然后浏览到存储配置文件的文件夹。
- 在弹出窗口中选择 上传。注:
确保所选隔间在 " 在隔间中创建 "字段下选择了"(根)"。

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

- 选择创建以创建堆栈。
将验证提供的 Terraform 文件并创建新堆栈。 Resource Manager 将验证提供的 Terraform 文件并创建一个新堆栈。
通过获取作业来监控作业状态(生命周期状态)。 成功 表示任务已完成。
该任务将创建一个用户、一个组和一个策略。 根据工作的复杂程度,操作可能需要一些时间。 在作业运行时或完成后,您将收到作业日志内容。
一旦创建了堆栈,就可以在 " 堆栈 "部分看到它。

- 从仪表板左上角的导航菜单中选择 身份和安全。

- 通过 身份 → 域 → 选择域 → 用户管理选项卡,在身份标题中选择 用户。
你可以看到 Terraform 作业创建了一个名为 "CloudabilityDataCollector_User" 的用户。
注:如果您不希望 Cloudability 创建本地用户,而希望使用 "联合 "用户,请参阅 " 为 OCI 认证联合用户 "。
- 在 " 身份 "标题中选择 " 组 "。 如果您正在使用身份域 ,则需要在身份标头中选择域 ,然后选择默认域、用户管理并选择组。 你可以看到 Terraform 作业创建了一个名为 "CloudabilityDataCollector_Group" 的组。
- 选择"...... CloudabilityDataCollector_Group '以检查'. CloudabilityDataCollector_User 已作为 组员 加入该组。
- 在 组信息 中,复制组 OCID 并保存。 稍后需要在 Cloudability UI 中粘贴这些信息。

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

您可以注意到 Terraform 作业创建的名为 "CloudabilityCostDataReaderPolicy" 的策略。 该策略包含从客户环境中获取数据所需的所有策略。 不支持修改此策略名称。
- 从仪表板左上角的导航菜单中选择 身份和安全。
- 通过 身份 → 域 → 选择域 → 用户管理选项卡,在身份标题中选择 用户。注:
如果正在使用 身份域 模块,请在 "身份 "标题下选择 " 域 ",然后选择 " 默认域 "和 " 用户 "。
- 选择名为 "CloudabilityDataCollector_User" 的用户。
- 选择 API 密钥 → 添加 API 密钥

- 选择 " 生成 API 密钥对 "。

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

在 Cloudability 中,导航至 设置 > 供应商凭证 > 添加数据源 > OCI。 添加 OCI 账户 面板打开。
或
在 Cloudability 中,导航至 设置 > 供应商证书 > OCI。 选择 " 添加证书 "。 添加证书 面板打开。
将信息粘贴到配置文件中,如下所示:- 主区域 : 显示在 配置文件 中 区域 的旁边
- 用户 ID :显示在 配置文件 用户 旁边。
- 组 ID :该信息已在上一步中保存。 您可以通过导航至 " 身份与安全"> " 组"> "''OCID "找到该 OCID。 CloudabilityDataCollector_Group '.
- 命名空间 :这是您的 OCI 命名空间,请填写配置的命名空间。
- 指纹 :直接显示在 配置文件 中。
- 密码 :可以留空。
- 私钥 : 此信息已在上一步中保存。注:
确保在 Cloudability 中完整粘贴 私钥 ,包括"-----BEGIN PRIVATE KEY----" 和"-----END PRIVATE KEY----"。
- 选择 " 保存"。
- 选择 " 验证凭证 "。注:
确保在选择 " 验证凭据 "之前选择 " 保存" ,以避免出现任何错误信息。
若信息验证正确,则在" 账单报告" 下方会显示一个绿色勾号。 在高级功能下方也会出现一个绿色勾号,但仅限于根租户。
在 Cloudability 中获取您的 OCI 成本数据可能需要 24 小时。 查看 OCI 数据后,您可以继续更新标签和业务映射——有关此内容的更多信息,请参阅 Apptio 社区帖子。
第 3 步 - 在 Cloudability - 为子女租约添加证书
一旦您的证书通过验证, Cloudability 就会自动发现您的子租户,并显示在用户界面上。 将鼠标悬停在儿童租约右侧的 3 个点上,然后选择 "铅笔 "按钮。

然后,您就可以按照上述父母租户的相同流程开始认证子女租户。
通过批量操作验证凭据
为快速验证多个账户,请点击批量操作按钮。 此界面显示所有账户,但状态为"需要凭证"(X)的账户除外。
- 选择需要验证的账户。
- 点击 “查看选定内容”
- 点击验证。
这将触发批量验证流程,批量操作按钮将被禁用直至流程完成。
完成后,账户将转为"已验证凭证状态"或"无效凭证状态"(因存在错误)。权限列表
下面是 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 | 允许阅读政策以进行核查 | 是 | 是 |