

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# Systems Manager Parameter Store를 사용하여 민감한 데이터 지정
<a name="specifying-sensitive-data-parameters"></a>

를 사용하면 Parameter Store 파라미터에 AWS Systems Manager 민감한 데이터를 저장한 다음 컨테이너 정의에서 참조하여 컨테이너에 민감한 데이터를 주입할 AWS Batch수 있습니다.

**Topics**
+ [Systems Manager Parameter Store를 사용하여 민감한 데이터 지정 시 고려할 사항](#secrets--parameterstore-considerations)
+ [AWS Batch 보안 암호에 필요한 IAM 권한](#secrets-iam-parameters)
+ [민감한 데이터를 환경 변수로 삽입](#secrets-envvar-parameters)
+ [로그 구성에 민감한 데이터 삽입](#secrets-logconfig-parameters)
+ [AWS Systems Manager 파라미터 스토어 파라미터 생성](#secrets-create-parameter)

## Systems Manager Parameter Store를 사용하여 민감한 데이터 지정 시 고려할 사항
<a name="secrets--parameterstore-considerations"></a>

Systems Manager 파라미터 스토어 파라미터를 사용하여 컨테이너에 민감한 데이터를 지정할 때 다음 사항을 고려해야 합니다.
+ 이 기능을 사용하려면 컨테이너 인스턴스에 컨테이너 에이전트의 버전 1.23.0 이상이 필요합니다. 그러나 최신 컨테이너 에이전트 버전을 사용하는 것이 좋습니다. 에이전트 버전을 확인하고 최신 버전으로 업데이트하는 방법에 대한 자세한 내용은 [Amazon Elastic Container Service 개발자 안내서](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html)의 *Amazon ECS 컨테이너 에이전트 업데이트*를 참조하세요.
+ 컨테이너가 처음 시작될 때 작업의 해당 컨테이너에 민감한 데이터가 주입됩니다. 암호 또는 파라미터 스토어 파라미터가 이후에 업데이트되거나 교체되면 컨테이너가 업데이트된 값을 자동으로 받지 않습니다. 업데이트된 암호로 새 작업을 강제로 시작하려면 새 작업을 시작해야 합니다.

## AWS Batch 보안 암호에 필요한 IAM 권한
<a name="secrets-iam-parameters"></a>

이 기능을 사용하려면 실행 역할이 있어야 하며 작업 정의에서 해당 역할을 참조해야 합니다. 이렇게 하면 Amazon ECS 컨테이너 에이전트가 필요한 AWS Systems Manager 리소스를 가져올 수 있습니다. 자세한 내용은 [AWS Batch IAM 실행 역할](execution-IAM-role.md) 단원을 참조하십시오.

생성한 AWS Systems Manager 파라미터 스토어 파라미터에 대한 액세스를 제공하려면 다음 권한을 실행 역할에 인라인 정책으로 수동으로 추가합니다. 자세한 내용은 *IAM 사용 설명서*의 [IAM 정책 추가 및 제거](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html)를 참조하세요.
+ `ssm:GetParameters` ― 태스크 정의에서 Systems Manager 파라미터 스토어 파라미터를 참조하는 경우에 필요합니다.
+ `secretsmanager:GetSecretValue` ― Secrets Manager 암호를 직접 참조하는 경우 또는 Systems Manager 파라미터 스토어 파라미터가 태스크 정의에서 Secrets Manager 암호를 참조하는 경우에 필요합니다.
+ `kms:Decrypt` ― 암호가 사용자 지정 KMS 키를 사용하고 기본 키를 사용하지 않는 경우에 필요합니다. 사용자 지정 키의 ARN을 리소스로 추가해야 합니다.

다음 예제에서는 인라인 정책이 필수 권한을 추가합니다.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ssm:GetParameters",
                "secretsmanager:GetSecretValue",
                "kms:Decrypt"
            ],
            "Resource": [
                "arn:aws:ssm:us-east-2:999999999999:parameter/<parameter_name>",
                "arn:aws:secretsmanager:us-east-2:999999999999:secret:<secret_name>",
                "arn:aws:kms:us-east-2:999999999999:key/<key_id>"
            ]
        }
    ]
}
```

------

## 민감한 데이터를 환경 변수로 삽입
<a name="secrets-envvar-parameters"></a>

컨테이너 정의 내에서 컨테이너에 설정할 환경 변수의 이름으로 `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"
    }]
  }]
}
```

## 로그 구성에 민감한 데이터 삽입
<a name="secrets-logconfig-parameters"></a>

컨테이너 정의 내에서, `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 파라미터 스토어 파라미터 생성
<a name="secrets-create-parameter"></a>

 AWS Systems Manager 콘솔을 사용하여 민감한 데이터에 대한 Systems Manager 파라미터 스토어 파라미터를 생성할 수 있습니다. 자세한 정보는 *AWS Systems Manager 사용 설명서*의 [연습: 명령에 파라미터 생성 및 사용(콘솔)](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-paramstore-console.html)을 참조하세요.

**파라미터 스토어 파라미터를 생성하려면**

1. [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/) AWS Systems Manager 콘솔을 엽니다.

1. 탐색 창에서 **파라미터 스토어(Parameter Store)**, **파라미터 생성(Create parameter)**을 차례대로 선택합니다.

1. **이름(Name)**에서 계층 구조와 파라미터 이름을 입력합니다. 예를 들어 `test/database_password`를 입력합니다.

1. **설명(Description)**에 선택적 설명을 입력합니다.

1. **유형**에서 **String**, **StringList** 또는 **SecureString**을 선택합니다.
**참고**  
**SecureString**을 선택한 경우, **KMS 키 ID** 필드가 표시됩니다. KMS 키 ID, KMS 키 ARN, 별칭 이름 또는 별칭 ARN을 제공하지 않으면 시스템에서 `alias/aws/ssm`을 사용합니다. Systems Manager의 기본 KMS 키입니다. 이 키의 사용을 방지하려면 사용자 지정 키를 선택합니다. 자세한 정보는 *AWS Systems Manager 사용 설명서*의 [보안 문자열 파라미터 사용](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-paramstore-about.html)을 참조하세요.
사용자 지정 KMS 키 별칭 이름 또는 별칭 ARN과 함께 `key-id` 파라미터를 사용하여 콘솔에 보안 문자열 파라미터를 생성할 때에는 별칭 앞에 접두사 `alias/`를 지정해야 합니다. ARN 예제는 다음과 같습니다.  

     ```
     arn:aws:kms:us-east-2:123456789012:alias/MyAliasName
     ```
별칭 이름 예제는 다음과 같습니다.  

     ```
     alias/MyAliasName
     ```

1. **값(Value)**에 값을 입력합니다. 예를 들어 `MyFirstParameter`입니다. **SecureString**을 선택한 경우, 입력하는 값이 정확하게 마스킹됩니다.

1. **파라미터 생성(Create parameter)**을 선택합니다.