Attribute の Azure デプロイ
Attribute Terraform を使用したインスト ール
スムーズな実装を行うために、Attribute では Terraform モジュールを提供しており、請求情報の抽出とセンサー登録のセットアップを自動化します。Terraform の詳細なドキュメントとサンプルは、Terraform モジュール内の README に記載されています。
このモジュールによって作成されるリソース
モジュールを実行すると、次のリソースが作成されます。
Attributeという名前の Resource group- 請求データを保存する Storage account
- データ取得を可能にする
Attributeという名前の Managed Identity - データ取得を容易にする Data Export リソース
重要な補足事項
- 対応している Terraform バージョンは 1.9 以上 です。
- モジュールは Azure テナントレベルまたは Azure サブスクリプションレベルのいずれかにインストールでき、Attribute ソリューションに必要なすべてのインフラストラクチ ャを作成します。
- モジュールを実行するには、ユーザーに特定の権限セットが必要です — 下記のインストール手順のステップ 2 に再掲されている「必要な権限のリスト」を参照してください。
- モジュールはコンピュートインフラストラクチャ上に Attribute センサーをデプロイすることは ありません。この処理は、各コンピュートクラスタごとに異なるツールを使用して行います (詳細は Attribute のインストールガイドを参照してください)。
付録 A: 詳細なインストール手順
この付録では、サブスクリプションレベルでのセットアップ手順全体を説明します。
ステップ 1 — Billing 連携
-
使用している Terraform のバージョンが 1.9 以上であることを確認します。
terraform version -
モジュールを実行する権限があることを確認します。最新の一覧はモジュールの README に記載されています。必要な権限:
Microsoft.Resources/subscriptions/resourceGroups/read
Microsoft.Resources/subscriptions/resourceGroups/write
Microsoft.Resources/subscriptions/read
Microsoft.Storage/storageAccounts/read
Microsoft.Storage/storageAccounts/write
Microsoft.Storage/storageAccounts/listkeys/action
Microsoft.Storage/storageAccounts/blobServices/containers/read
Microsoft.Storage/storageAccounts/blobServices/containers/write
Microsoft.Storage/storageAccounts/blobServices/read
Microsoft.Storage/storageAccounts/fileServices/read
Microsoft.ManagedIdentity/userAssignedIdentities/read
Microsoft.ManagedIdentity/userAssignedIdentities/write
Microsoft.ManagedIdentity/userAssignedIdentities/federatedIdentityCredentials/read
Microsoft.ManagedIdentity/userAssignedIdentities/federatedIdentityCredentials/write
Microsoft.Authorization/roleAssignments/read
Microsoft.Authorization/roleAssignments/write
Microsoft.CostManagement/exports/read
Microsoft.CostManagement/exports/write -
main.tfファイルを更新します。デフォルトでは、Billing Export は サブスクリプション スコープで作成されます。代わりに Billing account スコープでエクスポートを作成したい場合は、後述のオプション 2 を参照してください。
オプション 1 — サブスクリプションレベルで実行する場合:
- 使用している Terraform プロファイルを更新し、対象の Azure サブスクリプションを指すようにします。
subscription_idを更新し、あなたのサブスクリプションを指すようにします。organization_idとtokenの値は 変更せず、そのままにしておきます。
terraform {
required_providers {
azurerm = {
source = "hashicorp/azurerm"
version = "~> 4.0"
}
azapi = {
source = "azure/azapi"
version = ">= 2.0.0, < 3.0"
}
}
}
provider "azurerm" {
features {}
subscription_id = "subscription-id"
}
module "attribute-sensor" {
source = "ZouzIO/attribute-sensor/azurerm"
version = "~> 2.0"
organization_id = "XXXXXXXXXXXXXXXXXXX"
token = "XXXXXXXXXXXXXXXXX"
}オプション 2 — Billing Export を billing account レベルで作成する場合:
main.tf内のattribute-sensorモジュールを更新し、Billing account ID を含めます。module "attribute-sensor" {
source = "ZouzIO/attribute-sensor/azurerm"
version = "2.0.1"
organization_id = var.organization_id
token = var.token
billing_account_id = "<YOUR_BILLING_ACCOUNT_ID>"
}追加のサブスクリプションごとに、モジュールを更新して次の値を含めます (プライマリではないサブスクリプションについてはコストエクスポートを無効化します)。
module "attribute-sensor" {
source = "ZouzIO/attribute-sensor/azurerm"
version = "2.0.1"
organization_id = var.organization_id
token = var.token
create_costs_export = false
} -
Terraform を適用します。
terraform init
terraform apply -
検証。次のリソースが作成されたことを確認します。
Attributeロール- Storage account
AttributeExportCost Management export
