terraform으로 컨테이너에 기밀 정보 전달

2629 단어 도커TerraformECSAWS

ECS에서 컨테이너에 기밀 정보를 전달하는 방법



태스크 정의 컨테이너 편집 환경 변수 메뉴에서 ValueFrom에 ssm 매개변수 arn을 지정하여 컨테이너에 민감한 정보를 보다 안전하게 전달할 수 있습니다.





terraform에서 valueFrom의 값을 설정하는 방법



terraform 공식 사이트의 task_definition 페이지에는 Value의 값을 설정할 수 있는 Environment에 대해서는 기재가 있지만 ValueFrom을 설정할 수 있는 파라미터의 기재는 없습니다.

하지만 AWS 콘솔 화면에서 Containedefinition 항목을 확인하면 secrets 값이 있으며 ValueFrom 항목임을 확인할 수 있습니다. 참고로 Environment는 Value이므로 ssm의 arn을 전달해도 설정하고 싶은 파라미터로 변환되지 않습니다. (자신은 이것으로 한 번 실패했습니다)



terraform 코드



복수의 값을 건네주는 경우가 많다고 생각하기 때문에, 그 때에는 이하와 같이 for를 사용하면 편합니다.

taskdefinition.tf
resource "aws_ecs_task_definition" "example"{

container_definitions = jsonencode(
                       [
                         {
////////////////////省略//////////////////////////////////////
                           secrets = [for k, v in aws_ssm_parameter.parameter_for_ecs :
                           { name      = k
                             valueFrom = v.arn}]
////////////////////省略//////////////////////////////////////
                         }
                       ]
                     )

                   }

좋은 웹페이지 즐겨찾기