Systems Manager Parameter Store를 사용하여 민감한 데이터 지정
AWS Batch(을)를 사용하면 AWS Systems Manager 파라미터 스토어 파라미터에 민감한 데이터를 저장한 후 컨테이너 정의에서 참조하여 컨테이너에 민감한 데이터를 주입할 수 있습니다.
주제
Systems Manager Parameter Store를 사용하여 민감한 데이터 지정 시 고려할 사항
Systems Manager 파라미터 스토어 파라미터를 사용하여 컨테이너에 민감한 데이터를 지정할 때 다음 사항을 고려해야 합니다.
-
이 기능을 사용하려면 컨테이너 인스턴스에 컨테이너 에이전트의 버전 1.23.0 이상이 필요합니다. 그러나 최신 버전의 컨테이너 에이전트를 사용하는 것이 좋습니다. 에이전트 버전을 확인하고 최신 버전으로 업데이트하는 방법에 대한 자세한 내용은 Amazon Elastic Container Service 개발자 안내서의 Amazon ECS 컨테이너 에이전트 업데이트를 참조하십시오.
-
컨테이너가 처음 시작될 때 작업의 해당 컨테이너에 민감한 데이터가 주입됩니다. 암호 또는 파라미터 스토어 파라미터가 이후에 업데이트되거나 교체되면 컨테이너가 업데이트된 값을 자동으로 받지 않습니다. 업데이트된 암호로 새 작업을 강제로 시작하려면 새 작업을 시작해야 합니다.
AWS Batch 암호에 대한 필수 IAM 권한
이 기능을 사용하려면 실행 역할이 있어야 하며 작업 정의에서 해당 역할을 참조해야 합니다. 이렇게 하면 Amazon ECS 컨테이너 에이전트가 필요한 AWS Systems Manager 리소스를 가져올 수 있습니다. 자세한 내용은 AWS Batch IAM 실행 역할 단원을 참조하십시오.
사용자가 생성하는 AWS Systems Manager 파라미터 스토어 파라미터에 액세스 권한을 부여하려면 실행 역할에 다음 권한을 인라인 정책으로서 직접 추가하세요. 자세한 내용은 IAM 사용 설명서의 IAM 정책 추가 및 제거를 참조하세요.
-
ssm:GetParameters
― 태스크 정의에서 Systems Manager 파라미터 스토어 파라미터를 참조하는 경우에 필요합니다. -
secretsmanager:GetSecretValue
― Secrets Manager 암호를 직접 참조하는 경우 또는 Systems Manager 파라미터 스토어 파라미터가 태스크 정의에서 Secrets Manager 암호를 참조하는 경우에 필요합니다. -
kms:Decrypt
― 암호가 사용자 지정 KMS 키를 사용하고 기본 키를 사용하지 않는 경우에 필요합니다. 사용자 지정 키의 ARN을 리소스로 추가해야 합니다.
다음 예제에서는 인라인 정책이 필수 권한을 추가합니다.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:GetParameters", "secretsmanager:GetSecretValue", "kms:Decrypt" ], "Resource": [ "arn:aws:ssm:
<region>
:<aws_account_id>
:parameter/<parameter_name>
", "arn:aws:secretsmanager:<region>
:<aws_account_id>
:secret:<secret_name>
", "arn:aws:kms:<region>
:<aws_account_id>
:key/<key_id>
" ] } ] }
민감한 데이터를 환경 변수로 삽입
컨테이너 정의 내에서 컨테이너에 설정할 환경 변수의 이름으로 secrets
(을)를 지정하여 컨테이너에 제공할 민감한 데이터가 들어있는 Systems Manager 파라미터 스토어 파라미터의 전체 ARN을 지정합니다.
다음은 Systems Manager 파라미터 스토어 파라미터를 참조할 때 형식을 나타내는 태스크 정의의 조각입니다. Systems Manager 파라미터 스토어 파라미터가 현재 실행 중인 태스크와 동일한 리전에 있는 경우, 파라미터의 전체 ARN 또는 이름을 사용할 수 있습니다. 파라미터가 다른 리전에 있다면 전체 ARN을 지정해야 합니다.
{ "containerProperties": [{ "secrets": [{ "name": "
environment_variable_name
", "valueFrom": "arn:aws:ssm:region
:aws_account_id
:parameter/parameter_name
" }] }] }
로그 구성에 민감한 데이터 삽입
컨테이너 정의 내에서, logConfiguration
을 정의할 때 컨테이너에 설정할 로그 드라이버 옵션의 이름과 컨테이너에 제공할 민감한 데이터가 들어있는 Systems Manager 파라미터 스토어 파라미터의 전체 ARN을 사용하여 secretOptions
를 지정할 수 있습니다.
중요
Systems Manager 파라미터 스토어 파라미터가 현재 실행 중인 태스크와 동일한 리전에 있는 경우, 파라미터의 전체 ARN 또는 이름을 사용할 수 있습니다. 파라미터가 다른 리전에 있다면 전체 ARN을 지정해야 합니다.
다음은 Systems Manager 파라미터 스토어 파라미터를 참조할 때 형식을 나타내는 태스크 정의의 조각입니다.
{ "containerProperties": [{ "logConfiguration": [{ "logDriver": "
fluentd
", "options": { "tag": "fluentd demo
" }, "secretOptions": [{ "name": "fluentd-address
", "valueFrom": "arn:aws:ssm:region
:aws_account_id
:parameter/parameter_name
" }] }] }] }
AWS Systems Manager Parameter Store 파라미터 생성
AWS Systems Manager 콘솔을 사용하면 민감한 데이터에 대한 Systems Manager 파라미터 스토어 파라미터를 생성할 수 있습니다. 자세한 정보는 AWS Systems Manager 사용 설명서의 연습: 명령에 파라미터 생성 및 사용(콘솔)을 참조하세요.
파라미터 스토어 파라미터를 생성하려면
-
AWS Systems Manager 콘솔(https://console.aws.amazon.com/systems-manager/
)을 엽니다. -
탐색 창에서 파라미터 스토어(Parameter Store), 파라미터 생성(Create parameter)을 차례대로 선택합니다.
-
이름(Name)에서 계층 구조와 파라미터 이름을 입력합니다. 예를 들어
test/database_password
를 입력합니다. -
설명(Description)에 선택적 설명을 입력합니다.
-
유형에서 String, StringList 또는 SecureString을 선택합니다.
참고
-
SecureString을 선택한 경우, KMS 키 ID 필드가 표시됩니다. KMS 키 ID, KMS 키 ARN, 별칭 이름 또는 별칭 ARN을 제공하지 않으면 시스템에서
alias/aws/ssm
을 사용합니다. Systems Manager의 기본 KMS 키입니다. 이 키의 사용을 방지하려면 사용자 지정 키를 선택합니다. 자세한 정보는 AWS Systems Manager 사용 설명서의 보안 문자열 파라미터 사용을 참조하세요. -
사용자 지정 KMS 키 별칭 이름 또는 별칭 ARN과 함께
key-id
파라미터를 사용하여 콘솔에 보안 문자열 파라미터를 생성할 때에는 별칭 앞에 접두사alias/
를 지정해야 합니다. ARN 예제는 다음과 같습니다.arn:aws:kms:us-east-2:123456789012:alias/
MyAliasName
별칭 이름 예제는 다음과 같습니다.
alias/
MyAliasName
-
-
값(Value)에 값을 입력합니다. 예:
MyFirstParameter
. SecureString을 선택한 경우, 입력하는 값이 정확하게 마스킹됩니다. -
파라미터 생성(Create parameter)을 선택합니다.