aws_iam_policy_documentデータソースのprincipals
aws_iam_policy_document
データソースのprincipals
はtype
とidentifiers
が必須項目で以下のように記述する。
data "aws_iam_policy_document" "example" {
...
statement {
...
principals {
type = "Service"
identifiers = ["ec2.amazonaws.com"]
}
...
}
...
}
以下のようなPolicyになる。
{
"Version": "2012-10-17",
"Statement": [
{
...
"Principal": {
"Service": "ec2.amazonaws.com"
}
...
},
]
}
"Principal": "*"
を指定する例がよく見られるが、aws_iam_policy_document
のprincipals
はオブジェクト型なので
principals = "*"
のようにstring
を指定できない。
またprincipals
の直下のtype
,identifiers
は必須項目なので省略できない。
“Principal”: “*” を指定する方法
aws_iam_policy_document
データソースで"Principal": "*"
を指定するには以下の様にtype
とidentifiers
に*
を指定する。
data "aws_iam_policy_document" "example" {
...
statement {
...
principals {
type = "*"
identifiers = ["*"]
}
...
}
...
}
すると以下のように"Principal": "*"
が設定される。
{
"Version": "2012-10-17",
"Statement": [
{
...
"Principal": "*"
...
},
]
}
参考
Data Source: aws_iam_policy_document(principals and not_principals)
\手を動かしながらTerraformを学びたい人にオススメ!/