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を学びたい人にオススメ!/
