Terraform で AWS アカウントをリンクする
インフラストラクチャをコードとして管理している場合、Terraform モジュール doit-cloudconnect を使用して、AWS アカウントを DoiT プラットフォームにリンクできます。
このモジュールには、次の Terraform およびプロバイダーバージョンが必要です。
-
Terraform:
>= 1.3 -
AWS プロバイダー(
hashicorp/aws):~> 6.50 -
DoiT Terraform プロバイダー(
doitintl/doit):>= 1.5.0 -
Time プロバイダー(
hashicorp/time):~> 0.13
開始する前に
次の値を準備してください。
-
Your AWS account ID: リンクしたい AWS アカウントの 12 桁の ID。
-
Your External ID: DoiT がロールの信頼ポリシーで使用する一意の識別子。
-
DoiT コンソール にサインインし、上部ナビゲーションのメガメニューから Data ingestion and integrations > AWS を選択します。
-
Link new account を選択し、続けて Create a role manually を選択します。
-
Your External ID の値を控えます。
-
-
DoiT API key: アカウントを登録するために DoiT プロバイダーが必要とするキーです。DoiT コンソールの プロフィールページ から API キーを生成できます。
API キーは
DOIT_API_TOKEN環境変数で指定してください。API キーを変数としてモジュールに渡したり、設定内にハードコードしたりしないでください。export DOIT_API_TOKEN="<your-doit-api-key>"
プロバイダーを設定する
必要なプロバイダーを Terraform 設定に追加します。
terraform {
required_providers {
aws = {
source = "hashicorp/aws"
version = "~> 6.50"
}
doit = {
source = "doitintl/doit"
version = ">= 1.5.0"
}
}
}
provider "aws" {
region = "us-east-1"
}
# Reads the API key from the DOIT_API_TOKEN environment variable
provider "doit" {}
新しいアカウントをリンクする
モジュールを追加する
設定に doit-cloudconnect モジュールを追加し、必要な入力値を指定します。プレースホルダーは必ず必要な値に置き換えてください。
サポートされている機能、入力変数、出力の詳細については、Terraform Registry: doit-cloudconnect を参照してください。
- Read-only (Core)
- With write features
- With real-time anomalies
これにより、アカウントは Core の read-only 権限でリンクされます。
module "doit_cloudconnect" {
source = "github.com/doitintl/terraform-aws-doit-cloudconnect"
external_id = var.doit_external_id
account_id = "<YOUR-AWS-ACCOUNT-ID>"
}
書き込み権限が必要な機能を有効にするには、それらを additional_features に列挙します。
module "doit_cloudconnect" {
source = "github.com/doitintl/terraform-aws-doit-cloudconnect"
external_id = var.doit_external_id
account_id = "<YOUR-AWS-ACCOUNT-ID>"
additional_features = [
"PerfectScale for Spot",
"Kubernetes auto connect clusters"
]
}
Real-time anomaly detection では、feature_config を通じて CloudTrail S3 バケットを指定する必要があります。
module "doit_cloudconnect" {
source = "github.com/doitintl/terraform-aws-doit-cloudconnect"
external_id = var.doit_external_id
account_id = "<YOUR-AWS-ACCOUNT-ID>"
additional_features = ["Real-time anomalies"]
feature_config = {
real-time-data = {
bucket_name = "<YOUR-CLOUDTRAIL-BUCKET-NAME>"
bucket_region = "us-east-1"
}
}
}
IAM ポリシーに加えて、リアルタイムアノマリーには、CloudTrail バケット上で DoiT の SNS アカウントをターゲットとする S3 イベント通知が必要です。詳細については、Enable real-time anomaly on AWS accounts を参照してください。
doit_external_id 変数を定義し、その値を指定します(たとえば、terraform.tfvars ファイルや TF_VAR_doit_external_id 環境変数を通じて指定します)。
variable "doit_external_id" {
type = string
description = "External ID from the DoiT console for the role trust policy"
}
設定を適用する
設定が含まれているディレクトリで Terraform を実行します。
terraform init
terraform plan
terraform apply
apply が成功すると、アカウントは DoiT に登録されます。アカウントがリンクされるまで最大 30 秒かかる場合があります。成功すると、リンクされた AWS アカウントは DoiT コンソールで Healthy ステータスとして表示されます。
機能を更新する
機能を追加または削除するには、additional_features リスト(および必要に応じて feature_config)を更新し、terraform apply を実行してください。
アカウントのリンクを解除する
アカウントのリンクを解除するには、terraform destroy を実行するか、モジュールブロックを削除してから apply を実行してください。これにより IAM ロールが削除され、アカウントが DoiT から登録解除されます。