Slide 33
Slide 33 text
例1. Fastly + BigQuery
-
コード例を乗せる
// Datadogが利用するIAM Role
resource "aws_iam_role" "datadog_aws_integration" {
depends_on = [
"datadog_integration_aws.aws",
]
name = "DatadogAWSIntegrationRole"
description = "Role for Datadog AWS Integration"
assume_role_policy =
"${data.aws_iam_policy_document.datadog_aws_integration_assume_role.json}"
}
// IAMポリシー
data "aws_iam_policy_document" "datadog_aws_integration_assume_role" {
statement {
actions = ["sts:AssumeRole"]
principals {
type = "AWS"
identifiers = ["arn:aws:iam::464622532012:root"] // DatadogのAWSアカウント
}
condition {
test = "StringEquals"
variable = "sts:ExternalId"
values = [
"${datadog_integration_aws.aws.external_id}",
]
}
}
}
// Datadog側のIntegrationを定義
resource "datadog_integration_aws" "aws" {
provider = "datadog.datadog"
account_id = "${data.aws_caller_identity.current.account_id}"
role_name = "DatadogAWSIntegrationRole" // AWS側で作成する IAM Role名
host_tags = [
"${var.datadog_aws_integration_host_tag}",
]
}
// moduleを呼ぶ側 … マルチプロバイダー指定
provider "aws" {
region = "${var.region}"
shared_credentials_file = "/path/to/credfile"
version = "= 2.11.0"
}
provider "datadog" {
alias = "datadog"
version = "=1.9.0"
}
// Providerに食わせた AWSアカウントの情報を取得できる。
data "aws_caller_identity" "current" {}