Terraform으로 StringLike 조건 생성
Nov 12 2020
AWS IAM 정책에 대한 테라 폼을 생성하려고합니다. 정책의 조건은 다음과 같습니다.
"StringLike": {
"kms:EncryptionContext:aws:cloudtrail:arn": [
"arn:aws:cloudtrail:*:aws-account-id:trail/*"
]
다음에 대한 문서를 찾고 있습니다 aws_iam_policy_document.https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/iam_policy_document, 그러나 이것을 terraform으로 작성하는 방법에 대해서는 명확하지 않습니다. 어떤 도움이라도 대단히 감사하겠습니다. 이것은 나의 시도입니다
condition {
test = "StringLike"
variable = "kms:EncryptionContext:aws:cloudtrail:arn"
values = [
"arn:aws:cloudtrail:*:aws-account-id:trail/*"
]
}
답변
2 MontassarBouagina Nov 12 2020 at 20:02
안녕하세요 Evan 당신 논리는 다음을 추가하는 것이 정확합니다.
각 문서 구성에는 하나 이상의 statement
data "aws_iam_policy_document" "example" {
statement {
actions = [
"*", *//specify your actions here*
]
resources = [
"*", *//specify your resources here*
]
condition {
test = "StringLike"
variable = "kms:EncryptionContext:aws:cloudtrail:arn"
values = [
"arn:aws:cloudtrail:*:aws-account-id:trail/*"
]
}
}
각 정책 설명에는 0 개 이상의 조건 블록이있을 수 있으며 각 조건 블록은 다음 인수를 허용합니다.
test(필수) 평가할 IAM 조건 연산자의 이름입니다.variable(필수) 조건을 적용 할 컨텍스트 변수의 이름입니다. 컨텍스트 변수는 aws :로 시작하는 표준 AWS 변수이거나 서비스 이름으로 시작하는 서비스 별 변수 일 수 있습니다.values(필수) 조건을 평가할 값입니다. 여러 값이 제공되는 경우 하나 이상의 값이 적용되면 조건이 일치합니다. (즉, 테스트는 "OR"부울 연산과 결합됩니다.)
여러 조건 블록이 제공되는 경우 정책 설명이 적용 되려면 모두 참으로 평가되어야합니다. (즉, 조건은 "AND"부울 연산과 결합됩니다.)
다음은 terraform 의 REF입니다.
추가로 작성한 문서에서 정책을 작성하려면 다음과 같이 사용하십시오.
resource "aws_iam_policy" "example" {
policy = data.aws_iam_policy_document.example.json
}
여기 Hashicorp 의 심판이 있습니다 .