

• AWS Systems Manager CloudWatch 대시보드는 2026년 4월 30일 이후에는 더 이상 사용할 수 없습니다. 고객은 Amazon CloudWatch 콘솔을 계속 사용하여 현재와 마찬가지로 Amazon CloudWatch 대시보드를 보고, 생성하고, 관리할 수 있습니다. 자세한 내용은 [Amazon CloudWatch 대시보드 설명서](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Dashboards.html)를 참조하세요.

# Parameter Store 작업
<a name="parameter-store-working-with"></a>

이 단원에서는 태그 파라미터를 구성 및 생성하는 방법과 다양한 버전의 파라미터를 생성하는 방법을 설명합니다.

AWS Systems Manager 콘솔, AWS Command Line Interface(AWS CLI), AWS Tools for PowerShell 및 AWS SDK를 사용하여 파라미터를 생성하고 관련 작업을 수행할 수 있습니다. 파라미터에 대한 자세한 내용은 [파라미터란 무엇인가요?](systems-manager-parameter-store.md#what-is-a-parameter) 단원을 참조하십시오.

**Topics**
+ [

# Systems Manager에서 Parameter Store 파라미터 생성
](sysman-paramstore-su-create.md)
+ [

# Systems Manager에서 Parameter Store 파라미터 검색
](parameter-search.md)
+ [

# Parameter Store에서 파라미터 정책 할당
](parameter-store-policies.md)
+ [

# Parameter Store에서의 파라미터 계층 구조 작업
](sysman-paramstore-hierarchies.md)
+ [

# Parameter Store API 작업에 대한 액세스 차단
](parameter-store-policy-conditions.md)
+ [

# Parameter Store에서의 파라미터 레이블 작업
](sysman-paramstore-labels.md)
+ [

# Parameter Store에서 파라미터 버전으로 작업
](sysman-paramstore-versions.md)
+ [

# Parameter Store에서 공유 파라미터로 작업
](parameter-store-shared-parameters.md)
+ [

# Run Command 명령을 사용하여 Parameter Store에서 파라미터 작업
](sysman-param-runcommand.md)
+ [

# Parameter Store의 네이티브 파라미터 지원을 Amazon Machine Image ID에 사용
](parameter-store-ec2-aliases.md)
+ [

# Parameter Store에서 파라미터 삭제
](deleting-parameters.md)

# Systems Manager에서 Parameter Store 파라미터 생성
<a name="sysman-paramstore-su-create"></a>

다음 주제의 정보를 사용하여 AWS Systems Manager 콘솔, AWS Command Line Interface(AWS CLI) 또는 AWS Tools for Windows PowerShell(Tools for Windows PowerShell)로 Systems Manager 파라미터를 생성할 수 있습니다.

이 섹션에서는 테스트 환경에서 Parameter Store로 파라미터를 생성, 저장 및 실행하는 방법을 보여줍니다. 또한 Parameter Store를 AWS 서비스의 다른 Systems Manager 도구와 함께 사용하는 방법을 설명합니다. 자세한 내용은 [파라미터란 무엇인가요?](systems-manager-parameter-store.md#what-is-a-parameter) 섹션을 참조하세요.

## 파라미터 이름의 요구 사항 및 제약 조건 이해
<a name="sysman-parameter-name-constraints"></a>

이 주제의 정보를 사용하면 파라미터를 생성할 때 파라미터 이름에 유효한 값을 지정하는 데 도움이 됩니다.

이 정보는 **AllowedPattern**, **Description**, **KeyId**, **Overwrite**, **Type** 및 **Value** 값에 대한 정보도 제공하는 *AWS Systems Manager API Reference*의 [PutParameter](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_PutParameter.html) 주제의 세부 정보를 보완합니다.

파라미터 이름에 대한 요구 사항 및 제약 조건은 다음과 같습니다.
+ **대/소문자 구분**: 파라미터 이름은 대/소문자를 구분합니다.
+ **공백**: 파라미터 이름에는 공백이 포함될 수 없습니다.
+ **유효한 값**: 파라미터 이름은 `a-zA-Z0-9_.-`과 같은 기호와 문자로 구성될 수 있습니다.

  또한 슬래시 문자(/)는 파라미터 이름의 계층 구조를 나타내는 데 사용됩니다. 예: `/Dev/Production/East/Project-ABC/MyParameter`
+ [**유효한 AMI 형식(Valid AMI format)**]: `String` 파라미터의 데이터 형식으로 `aws:ec2:image`를 선택하는 경우 입력한 ID가 AMI ID 형식 `ami-12345abcdeEXAMPLE`에 유효한지 검증해야 합니다.
+ [**정규화(Fully qualified)**]: 계층에서 파라미터를 생성하거나 참조하는 경우 선행 슬래시 문자(/)를 포함합니다. 계층의 일부인 파라미터를 참조하는 경우 초기 슬래시(/)를 포함한 전체 계층 경로를 지정합니다.
  + 정규화된 파라미터 이름: `MyParameter1`, `/MyParameter2`, `/Dev/Production/East/Project-ABC/MyParameter` 
  + 정규화되지 않은 파라미터 이름: `MyParameter3/L1`
+ **길이**: 지정할 수 있는 파라미터 이름의 최대 길이는 1,011자입니다. 1,011자에는 `arn:aws:ssm:us-east-2:111122223333:parameter/`의 45자와 같이 지정한 이름 앞에 오는 ARN의 문자가 포함됩니다.
+ [**접두사(Prefixes)**]: 파라미터 이름은 "`aws`" 또는 "`ssm`"(대/소문자 구별 안 함)으로 시작할 수 없습니다. 예를 들어 다음 이름의 파라미터를 생성하려고 하면 예외와 함께 실패합니다.
  + `awsTestParameter`
  + `SSM-testparameter`
  + `/aws/testparam1`
**참고**  
SSM 문서, 명령 또는 스크립트에서 파라미터를 지정하면 다음 예제와 같이 `ssm`이 구문의 일부로 포함됩니다. 예: \$1\$1ssm:*parameter-name*\$1\$1 and \$1\$1 ssm:*parameter-name* \$1\$1(예: `{{ssm:MyParameter}}` 및 `{{ ssm:MyParameter }}.`)
+ [**고유성(Uniqueness)**]: 파라미터 이름은 AWS 리전 내에서 고유해야 합니다. 예를 들어 Systems Manager는 다음 항목이 동일한 리전에 존재하는 경우 별도의 파라미터로 취급합니다.
  + `/Test/TestParam1`
  + `/TestParam1`

  다음 예도 고유한 항목입니다.
  + `/Test/TestParam1/Logpath1`
  + `/Test/TestParam1`

  하지만 다음 예제는 동일한 리전에 있는 경우 고유하지 않습니다.
  + `/TestParam1`
  + `TestParam1`
+ **계층 구조 깊이**: 파라미터 계층 구조를 지정하는 경우 계층 구조에는 최대 15개의 레벨이 있을 수 있습니다. 원하는 계층 구조 레벨에 파라미터를 정의할 수 있습니다. 다음의 두 예제 모두 구조적으로 유효합니다.
  + `/Level-1/L2/L3/L4/L5/L6/L7/L8/L9/L10/L11/L12/L13/L14/parameter-name`
  + `parameter-name`

  다음 파라미터를 생성하려고 하면 `HierarchyLevelLimitExceededException` 예외로 인해 실패할 것입니다.
  + `/Level-1/L2/L3/L4/L5/L6/L7/L8/L9/L10/L11/L12/L13/L14/L15/L16/parameter-name`

**중요**  
경로에 대해 액세스 권한이 있는 사용자는 해당 경로의 모든 수준에 액세스할 수 있습니다. 예를 들어 `/a` 경로에 대한 액세스 권한이 있는 사용자는 `/a/b`에도 액세스할 수 있습니다. 사용자가 AWS Identity and Access Management(IAM)에서 파라미터`/a/b` 에 대한 액세스를 명시적으로 거부한 경우에도 `/a` 및 뷰 `/a/b`에 대해 [GetParametersByPath](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_GetParametersByPath.html) API 작업을 재귀적으로 호출할 수 있습니다.

**Topics**
+ [

## 파라미터 이름의 요구 사항 및 제약 조건 이해
](#sysman-parameter-name-constraints)
+ [

# 콘솔을 사용하여 Parameter Store 파라미터 생성
](parameter-create-console.md)
+ [

# AWS CLI를 사용하여 Parameter Store 파라미터 생성
](param-create-cli.md)
+ [

# Tools for Windows PowerShell을 사용하여 Parameter Store 파라미터 생성
](param-create-ps.md)

# 콘솔을 사용하여 Parameter Store 파라미터 생성
<a name="parameter-create-console"></a>

AWS Systems Manager 콘솔을 사용하여 `String`, `StringList` 및 `SecureString` 파라미터 유형을 생성하고 실행할 수 있습니다. 파라미터를 삭제한 후 최소 30초 동안 기다리고 같은 이름의 파라미터를 생성합니다.

**참고**  
파라미터는 생성된 해당 파라미터가 생성된 AWS 리전에서만 사용할 수 있습니다.

다음 절차에서는 Parameter Store 콘솔에서 파라미터를 생성하는 과정을 안내합니다. 콘솔에서 `String`, `StringList` 및 `SecureString` 파라미터 유형을 생성할 수 있습니다.

**파라미터를 생성하려면**

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

1. 탐색 창에서 **Parameter Store**를 선택합니다.

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

1. **이름** 상자에 계층 구조 및 이름을 입력합니다. 예를 들면 **/Test/helloWorld**를 입력합니다.

   파라미터 계층 구조에 대한 자세한 내용은 [Parameter Store에서의 파라미터 계층 구조 작업](sysman-paramstore-hierarchies.md) 섹션을 참조하세요.

1. **설명** 상자에 이 파라미터가 테스트 파라미터라는 설명을 입력합니다.

1. **Parameter tier(파라미터 티어)**에서 **표준** 또는 **고급**을 선택합니다. 고급 파라미터에 대한 자세한 내용은 [파라미터 티어 관리](parameter-store-advanced-parameters.md) 섹션을 참조하세요.

1. **유형**에서 **String**, **StringList** 또는 **SecureString**을 선택합니다.
   + [**문자열(String)**]을 선택하면 [**데이터 형식(Data type)**] 필드가 표시됩니다. Amazon Machine Image(AMI)의 리소스 ID를 보관할 파라미터를 생성하는 경우 `aws:ec2:image`를 선택합니다. 그렇지 않으면 기본값인 `text`를 선택한 상태로 유지합니다.
   + [**SecureString**]을 선택한 경우 [**KMS 키 ID(KMS Key ID)**] 필드가 표시됩니다. AWS Key Management Service AWS KMS key ID, AWS KMS key Amazon 리소스 이름(ARN), 별칭 이름 또는 별칭 ARN을 제공하지 않으면 시스템은 Systems Manager의 AWS 관리형 키인 `alias/aws/ssm`을 사용합니다. 이 키를 사용하지 않으려면 고객 관리형 키를 사용할 수 있습니다. AWS 관리형 키 및 고객 관리형 키에 대한 자세한 내용은 *AWS Key Management Service 개발자 가이드*의 [AWS Key Management Service 개념](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html)을 참조하세요. Parameter Store 및 AWS KMS 암호화에 대한 자세한 내용은 [AWS Systems ManagerParameter Store의 AWS KMS사용 방법](https://docs.aws.amazon.com/kms/latest/developerguide/services-parameter-store.html)을 참조하십시오.
**중요**  
Parameter Store는 [대칭 암호화 KMS 키](https://docs.aws.amazon.com/kms/latest/developerguide/symm-asymm-choose-key-spec.html#symmetric-cmks)만 지원합니다. [비대칭 암호화 KMS 키](https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html)를 사용하여 파라미터를 암호화할 수 없습니다. KMS 키가 대칭인지 비대칭인지 확인하는 것과 관련된 도움말은 *AWS Key Management Service Developer Guide*의 [Identifying symmetric and asymmetric KMS keys](https://docs.aws.amazon.com/kms/latest/developerguide/find-symm-asymm.html)를 참조하세요.
   + 고객 관리형 키 별칭 이름 또는 별칭 ARN과 함께 `key-id` 파라미터를 사용하여 콘솔에 `SecureString` 파라미터를 생성할 때 별칭 앞에 접두사 `alias/`를 지정합니다. ARN 예제는 다음과 같습니다.

     ```
     arn:aws:kms:us-east-2:123456789012:alias/abcd1234-ab12-cd34-ef56-abcdeEXAMPLE
     ```

     별칭 이름 예제는 다음과 같습니다.

     ```
     alias/MyAliasName
     ```

1. **값** 상자에 값을 입력합니다. 예를 들어 **This is my first parameter** 또는 **ami-0dbf5ea29aEXAMPLE**을 입력합니다.
**참고**  
파라미터는 다른 파라미터의 값에 참조되거나 중첩될 수 없습니다. 파라미터 값에 `{{}}` 또는 `{{ssm:parameter-name}}`을 포함할 수 없습니다.  
**SecureString**을 선택한 경우 다음 그림과 같이 나중에 파라미터 **개요** 탭에서 볼 때 파라미터의 값은 기본적으로 마스킹됩니다("\$1\$1\$1\$1\$1\$1"). [**표시(Show)**]를 선택하여 파라미터 값을 표시합니다.  

![\[SecureString 파라미터의 값은 값을 표시하는 옵션으로 마스킹됩니다.\]](http://docs.aws.amazon.com/ko_kr/systems-manager/latest/userguide/images/ps-overview-show-secstring.png)


1. (선택 사항) **태그** 영역에서 하나 이상의 태그 키-값 페어를 파라미터에 적용합니다.

   태그는 리소스에 할당하는 선택적 메타데이터입니다. 태그를 사용하면 용도, 소유자 또는 환경을 기준으로 하는 등 리소스를 다양한 방식으로 분류할 수 있습니다. 예를 들어 Systems Manager 파라미터에 태그를 지정하여 적용할 리소스 유형, 환경 또는 파라미터가 참조하는 구성 데이터의 유형을 식별할 수 있습니다. 이 경우 다음 키-값 페어를 지정할 수 있습니다.
   + `Key=Resource,Value=S3bucket`
   + `Key=OS,Value=Windows`
   + `Key=ParameterType,Value=LicenseKey`

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

1. 파라미터 목록에서 방금 생성한 파라미터 이름을 선택합니다. **개요** 탭에서 세부 정보를 확인합니다. `SecureString` 파라미터를 생성한 경우 [**표시(Show)**]를 선택하여 암호화되지 않은 값을 확인합니다.

**참고**  
고급 파라미터는 표준 파라미터로 변경할 수 없습니다. 고급 파라미터가 더 이상 필요하지 않거나 더 이상 고급 파라미터에 요금을 부과하지 않으려면 파라미터를 삭제하고 새 표준 파라미터로 다시 생성합니다.

**참고**  
콘솔을 사용하여 기존 파라미터의 유형을 변경(예: `String`에서 `SecureString`으로)할 수 없습니다. 파라미터 유형을 변경하려면 AWS CLI 또는 SDK에서 `--overwrite` 옵션을 사용해야 합니다. 자세한 내용은 [AWS CLI를 사용하여 Parameter Store 파라미터 생성](param-create-cli.md) 섹션을 참조하세요.

# AWS CLI를 사용하여 Parameter Store 파라미터 생성
<a name="param-create-cli"></a>

AWS Command Line Interface(AWS CLI)를 사용하여 `String`, `StringList` 및 `SecureString` 파라미터 유형을 생성할 수 있습니다. 파라미터를 삭제한 후 최소 30초 동안 기다리고 같은 이름의 파라미터를 생성합니다.

파라미터는 다른 파라미터의 값에 참조되거나 중첩될 수 없습니다. 파라미터 값에 `{{}}` 또는 `{{ssm:parameter-name}}`을 포함할 수 없습니다.

**참고**  
파라미터는 생성된 해당 파라미터가 생성된 AWS 리전에서만 사용할 수 있습니다.

**Topics**
+ [

## AWS CLI를 사용하여 `String` 파라미터 생성
](#param-create-cli-string)
+ [

## AWS CLI를 사용하여 StringList 파라미터 생성
](#param-create-cli-stringlist)
+ [

## AWS CLI를 사용하여 SecureString 파라미터 생성
](#param-create-cli-securestring)
+ [

## AWS CLI를 사용하여 여러 줄의 파라미터 생성
](#param-create-cli-multiline)

## AWS CLI를 사용하여 `String` 파라미터 생성
<a name="param-create-cli-string"></a>

1. 아직 하지 않은 경우 AWS Command Line Interface(AWS CLI)을 설치하고 구성합니다.

   자세한 내용은 [최신 버전의 AWS CLI 설치 또는 업데이트](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html)를 참조하세요.

1. 다음 명령을 실행하여 `String` 형식 파라미터를 생성합니다. 각 *example resource placeholder*를 사용자의 정보로 바꿉니다.

------
#### [ Linux & macOS ]

   ```
   aws ssm put-parameter \
       --name "parameter-name" \
       --value "parameter-value" \
       --type String \
       --tags "Key=tag-key,Value=tag-value"
   ```

------
#### [ Windows ]

   ```
   aws ssm put-parameter ^
       --name "parameter-name" ^
       --value "parameter-value" ^
       --type String ^
       --tags "Key=tag-key,Value=tag-value"
   ```

------

   -또는-

   다음 명령을 실행하여 파라미터 값으로 Amazon Machine Image(AMI) ID를 포함하는 파라미터를 생성합니다.

------
#### [ Linux & macOS ]

   ```
   aws ssm put-parameter \
       --name "parameter-name" \
       --value "an-AMI-id" \
       --type String \
       --data-type "aws:ec2:image" \
       --tags "Key=tag-key,Value=tag-value"
   ```

------
#### [ Windows ]

   ```
   aws ssm put-parameter ^
       --name "parameter-name" ^
       --value "an-AMI-id" ^
       --type String ^
       --data-type "aws:ec2:image" ^
       --tags "Key=tag-key,Value=tag-value"
   ```

------

   `--name` 옵션은 계층 구조를 지원합니다. 계층 구조에 대한 자세한 내용은 [Parameter Store에서의 파라미터 계층 구조 작업](sysman-paramstore-hierarchies.md) 섹션을 참조하세요.

   AMI ID를 포함하는 파라미터를 생성하는 경우에만 `--data-type` 옵션을 지정해야 합니다. 입력한 파라미터 값이 올바른 형식의 Amazon Elastic Compute Cloud(Amazon EC2) AMI ID인지 검증합니다. 다른 모든 파라미터의 경우 기본 데이터 형식은 `text`이며 값을 지정하는 것은 옵션입니다. 자세한 내용은 [Parameter Store의 네이티브 파라미터 지원을 Amazon Machine Image ID에 사용](parameter-store-ec2-aliases.md) 섹션을 참조하세요.
**중요**  
성공할 경우 명령은 파라미터의 버전 번호를 반환합니다. **예외**: `aws:ec2:image`를 데이터 형식으로 지정한 경우 응답에서 새 버전 번호는 파라미터 값이 이미 검증되었음을 의미하지는 않습니다. 자세한 내용은 [Parameter Store의 네이티브 파라미터 지원을 Amazon Machine Image ID에 사용](parameter-store-ec2-aliases.md) 섹션을 참조하세요.

   다음 예제에서는 두 개의 키-값 페어 태그를 파라미터에 추가합니다.

------
#### [ Linux & macOS ]

   ```
   aws ssm put-parameter \
       --name parameter-name \
       --value "parameter-value" \
       --type "String" \
       --tags '[{"Key":"Region","Value":"East"},{"Key":"Environment", "Value":"Production"}]'
   ```

------
#### [ Windows ]

   ```
   aws ssm put-parameter ^
       --name parameter-name ^
       --value "parameter-value" ^
       --type "String" ^
       --tags [{\"Key\":\"Region1\",\"Value\":\"East1\"},{\"Key\":\"Environment1\",\"Value\":\"Production1\"}]
   ```

------

   다음 예에서는 이름에 파라미터 계층 구조를 사용하여 일반 텍스트 `String` 파라미터를 생성합니다. 이 명령은 파라미터의 버전 번호를 반환합니다. 파라미터 계층 구조에 대한 자세한 내용은 [Parameter Store에서의 파라미터 계층 구조 작업](sysman-paramstore-hierarchies.md) 섹션을 참조하세요.

------
#### [ Linux & macOS ]

   **계층 구조에 없는 파라미터**

   ```
   aws ssm put-parameter \
       --name "golden-ami" \
       --type "String" \
       --value "ami-12345abcdeEXAMPLE"
   ```

   **계층 구조에 있는 파라미터**

   ```
   aws ssm put-parameter \
       --name "/amis/linux/golden-ami" \
       --type "String" \
       --value "ami-12345abcdeEXAMPLE"
   ```

------
#### [ Windows ]

   **계층 구조에 없는 파라미터**

   ```
   aws ssm put-parameter ^
       --name "golden-ami" ^
       --type "String" ^
       --value "ami-12345abcdeEXAMPLE"
   ```

   **계층 구조에 있는 파라미터**

   ```
   aws ssm put-parameter ^
       --name "/amis/windows/golden-ami" ^
       --type "String" ^
       --value "ami-12345abcdeEXAMPLE"
   ```

------

1. 다음 명령을 실행하여 최신 파라미터 값을 보고 새 파라미터의 세부 정보를 확인합니다.

   ```
   aws ssm get-parameters --names "/Test/IAD/helloWorld"
   ```

   시스템은 다음과 같은 정보를 반환합니다.

   ```
   {
       "InvalidParameters": [],
       "Parameters": [
           {            
               "Name": "/Test/IAD/helloWorld",
               "Type": "String",
               "Value": "My updated parameter value",
               "Version": 2,
               "LastModifiedDate": "2020-02-25T15:55:33.677000-08:00",
               "ARN": "arn:aws:ssm:us-east-2:123456789012:parameter/Test/IAD/helloWorld"            
           }
       ]
   }
   ```

다음 명령을 실행하여 파라미터 값을 변경합니다. 이 명령은 파라미터의 버전 번호를 반환합니다.

```
aws ssm put-parameter --name "/Test/IAD/helloWorld" --value "My updated 1st parameter" --type String --overwrite
```

다음 명령을 실행하여 파라미터 값 기록을 확인합니다.

```
aws ssm get-parameter-history --name "/Test/IAD/helloWorld"
```

다음 명령을 실행하여 명령에 이 파라미터를 사용합니다.

```
aws ssm send-command --document-name "AWS-RunShellScript" --parameters '{"commands":["echo {{ssm:/Test/IAD/helloWorld}}"]}' --targets "Key=instanceids,Values=instance-ids"
```

파라미터 값만 검색하려면 다음 명령을 실행합니다.

```
aws ssm get-parameter --name testDataTypeParameter --query "Parameter.Value"
```

`get-parameters`를 사용하여 파라미터 값만 검색하려면 다음 명령을 실행합니다.

```
aws ssm get-parameters --names "testDataTypeParameter" --query "Parameters[*].Value"
```

다음 명령을 실행하여 파라미터 메타데이터를 확인합니다.

```
aws ssm describe-parameters --filters "Key=Name,Values=/Test/IAD/helloWorld"
```

**참고**  
*이름*은 대문자여야 합니다.

시스템은 다음과 같은 정보를 반환합니다.

```
{
    "Parameters": [
        {
            "Name": "helloworld",
            "Type": "String",
            "LastModifiedUser": "arn:aws:iam::123456789012:user/JohnDoe",
            "LastModifiedDate": 1494529763.156,
            "Version": 1,
            "Tier": "Standard",
            "Policies": []           
        }
    ]
}
```

## AWS CLI를 사용하여 StringList 파라미터 생성
<a name="param-create-cli-stringlist"></a>

1. 아직 하지 않은 경우 AWS Command Line Interface(AWS CLI)을 설치하고 구성합니다.

   자세한 내용은 [최신 버전의 AWS CLI 설치 또는 업데이트](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html)를 참조하세요.

1. 다음 명령을 실행하여 파라미터를 생성합니다. 각 *example resource placeholder*를 사용자의 정보로 바꿉니다.

------
#### [ Linux & macOS ]

   ```
   aws ssm put-parameter \
       --name "parameter-name" \
       --value "a-comma-separated-list-of-values" \
       --type StringList \
       --tags "Key=tag-key,Value=tag-value"
   ```

------
#### [ Windows ]

   ```
   aws ssm put-parameter ^
       --name "parameter-name" ^
       --value "a-comma-separated-list-of-values" ^
       --type StringList ^
       --tags "Key=tag-key,Value=tag-value"
   ```

------
**참고**  
성공할 경우 명령은 파라미터의 버전 번호를 반환합니다.

   이 예제는 두 개의 키-값 페어 태그를 파라미터에 추가합니다. 로컬 시스템의 운영 체제 유형에 따라 다음 명령 중 하나를 실행합니다. 로컬 Windows 시스템에서 실행할 버전에는 명령줄 도구에서 명령을 실행하는 데 필요한 이스케이프 문자("\$1")가 포함되어 있습니다.

   다음은 파라미터 계층 구조를 사용하는 `StringList` 예입니다.

------
#### [ Linux & macOS ]

   ```
   aws ssm put-parameter \
       --name /IAD/ERP/Oracle/addUsers \
       --value "Milana,Mariana,Mark,Miguel" \
       --type StringList
   ```

------
#### [ Windows ]

   ```
   aws ssm put-parameter ^
       --name /IAD/ERP/Oracle/addUsers ^
       --value "Milana,Mariana,Mark,Miguel" ^
       --type StringList
   ```

------
**참고**  
`StringList`의 항목들은 쉼표(,)로 구분해야 합니다. 목록에서 항목을 이스케이프하기 위해 다른 문장 부호나 특수 기호를 사용할 수 없습니다. 쉼표가 필요한 파라미터 값이 있는 경우 `String` 유형을 사용합니다.

1. `get-parameters` 명령을 실행하여 파라미터의 세부 정보를 확인합니다. 예제:

   ```
   aws ssm get-parameters --name "/IAD/ERP/Oracle/addUsers"
   ```

## AWS CLI를 사용하여 SecureString 파라미터 생성
<a name="param-create-cli-securestring"></a>

`SecureString` 파라미터를 생성하려면 다음 절차에 따르십시오. 각 *example resource placeholder*를 사용자의 정보로 바꿉니다.

**중요**  
`SecureString` 파라미터의 *값*만 암호화됩니다. 파라미터 이름, 설명 및 기타 속성은 암호화되지 않습니다.

**중요**  
Parameter Store는 [대칭 암호화 KMS 키](https://docs.aws.amazon.com/kms/latest/developerguide/symm-asymm-choose-key-spec.html#symmetric-cmks)만 지원합니다. [비대칭 암호화 KMS 키](https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html)를 사용하여 파라미터를 암호화할 수 없습니다. KMS 키가 대칭인지 비대칭인지 확인하는 것과 관련된 도움말은 *AWS Key Management Service Developer Guide*의 [Identifying symmetric and asymmetric KMS keys](https://docs.aws.amazon.com/kms/latest/developerguide/find-symm-asymm.html)를 참조하세요.

1. 아직 하지 않은 경우 AWS Command Line Interface(AWS CLI)을 설치하고 구성합니다.

   자세한 내용은 [최신 버전의 AWS CLI 설치 또는 업데이트](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html)를 참조하세요.

1. 다음 명령 중 **하나**를 실행하여 `SecureString` 데이터 형식을 사용하는 파라미터를 생성합니다.

------
#### [ Linux & macOS ]

   **기본 AWS 관리형 키을(를) 사용하여 `SecureString` 파라미터 생성**

   ```
   aws ssm put-parameter \
       --name "parameter-name" \
       --value "parameter-value" \
       --type "SecureString"
   ```

   **고객 관리형 키를 사용하는 `SecureString` 파라미터 생성**

   ```
   aws ssm put-parameter \
       --name "parameter-name" \
       --value "a-parameter-value, for example P@ssW%rd#1" \
       --type "SecureString"
       --tags "Key=tag-key,Value=tag-value"
   ```

   **사용자 정의 AWS KMS 키를 사용하는 `SecureString` 파라미터 생성**

   ```
   aws ssm put-parameter \
       --name "parameter-name" \
       --value "a-parameter-value, for example P@ssW%rd#1" \
       --type "SecureString" \
       --key-id "your-account-ID/the-custom-AWS KMS-key" \
       --tags "Key=tag-key,Value=tag-value"
   ```

------
#### [ Windows ]

   **기본 AWS 관리형 키을(를) 사용하여 `SecureString` 파라미터 생성**

   ```
   aws ssm put-parameter ^
       --name "parameter-name" ^
       --value "parameter-value" ^
       --type "SecureString"
   ```

   **고객 관리형 키를 사용하는 `SecureString` 파라미터 생성**

   ```
   aws ssm put-parameter ^
       --name "parameter-name" ^
       --value "a-parameter-value, for example P@ssW%rd#1" ^
       --type "SecureString" ^
       --tags "Key=tag-key,Value=tag-value"
   ```

   **사용자 정의 AWS KMS 키를 사용하는 `SecureString` 파라미터 생성**

   ```
   aws ssm put-parameter ^
       --name "parameter-name" ^
       --value "a-parameter-value, for example P@ssW%rd#1" ^
       --type "SecureString" ^
       --key-id " ^
       --tags "Key=tag-key,Value=tag-value"account-ID/the-custom-AWS KMS-key"
   ```

------

   계정 및 리전에서 AWS 관리형 키 키를 사용하여 `SecureString` 파라미터를 생성하는 경우 `--key-id` 파라미터에 값을 제공할 필요가 *없습니다*.
**참고**  
AWS 계정 및 AWS 리전에 할당된 AWS KMS key를 사용하려면 명령에서 `key-id` 파라미터를 제거합니다. AWS KMS keys에 대한 자세한 내용은 *AWS Key Management Service Developer Guide*의 [AWS Key Management Service Concepts](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk) 섹션을 참조하세요.

   계정에 할당된 AWS 관리형 키 대신 고객 관리형 키를 사용하려면 `--key-id` 파라미터를 사용하여 키를 지정합니다. 파라미터는 다음 KMS 파라미터 형식을 지원합니다.
   + 키 Amazon 리소스 이름(ARN) 예:

      `arn:aws:kms:us-east-2:123456789012:key/key-id`
   + 별칭 ARN 예:

     `arn:aws:kms:us-east-2:123456789012:alias/alias-name`
   + 키 ID 예:

     `12345678-1234-1234-1234-123456789012`
   + 별칭 이름 예:

     `alias/MyAliasName`

   AWS Management Console 또는 AWS KMS API를 사용하여 고객 관리형 키를 생성할 수 있습니다. 다음 AWS CLI 명령은 AWS 계정의 현재 AWS 리전에 고객 관리형 키를 생성합니다.

   ```
   aws kms [create-key](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html)
   ```

   다음 형식의 명령을 통해 방금 생성한 키를 사용하여 `SecureString` 파라미터를 생성합니다.

   다음은 암호 파라미터 및 AWS KMS key에 난독화된 이름(`3l3vat3131`)을 사용하는 예입니다.

------
#### [ Linux & macOS ]

   ```
   aws ssm put-parameter \
       --name /Finance/Payroll/3l3vat3131 \
       --value "P@sSwW)rd" \
       --type SecureString \
       --key-id arn:aws:kms:us-east-2:123456789012:key/1a2b3c4d-1a2b-1a2b-1a2b-1a2b3c4d5e
   ```

------
#### [ Windows ]

   ```
   aws ssm put-parameter ^
       --name /Finance/Payroll/3l3vat3131 ^
       --value "P@sSwW)rd" ^
       --type SecureString ^
       --key-id arn:aws:kms:us-east-2:123456789012:key/1a2b3c4d-1a2b-1a2b-1a2b-1a2b3c4d5e
   ```

------

1. 다음 명령을 실행하여 파라미터의 세부 정보를 확인합니다.

   `with-decryption` 파라미터를 지정하지 않거나 `no-with-decryption` 파라미터를 지정하면 명령이 암호화된 GUID를 반환합니다.

------
#### [ Linux & macOS ]

   ```
   aws ssm get-parameters \
       --name "the-parameter-name-you-specified" \
       --with-decryption
   ```

------
#### [ Windows ]

   ```
   aws ssm get-parameters ^
       --name "the-parameter-name-you-specified" ^
       --with-decryption
   ```

------

1. 다음 명령을 실행하여 파라미터 메타데이터를 확인합니다.

------
#### [ Linux & macOS ]

   ```
   aws ssm describe-parameters \
       --filters "Key=Name,Values=the-name-that-you-specified"
   ```

------
#### [ Windows ]

   ```
   aws ssm describe-parameters ^
       --filters "Key=Name,Values=the-name-that-you-specified"
   ```

------

1. 고객 관리형 AWS KMS key를 사용하지 **않는** 경우 파라미터 값을 변경하려면 다음 명령을 실행합니다.

------
#### [ Linux & macOS ]

   ```
   aws ssm put-parameter \
       --name "the-name-that-you-specified" \
       --value "a-new-parameter-value" \
       --type "SecureString" \
       --overwrite
   ```

------
#### [ Windows ]

   ```
   aws ssm put-parameter ^
       --name "the-name-that-you-specified" ^
       --value "a-new-parameter-value" ^
       --type "SecureString" ^
       --overwrite
   ```

------

   -또는-

   고객 관리형 AWS KMS key를 사용**하는** 경우 파라미터 값을 변경하려면 다음 명령 중 하나를 실행합니다.

------
#### [ Linux & macOS ]

   ```
   aws ssm put-parameter \
       --name "the-name-that-you-specified" \
       --value "a-new-parameter-value" \
       --type "SecureString" \
       --key-id "the-KMSkey-ID" \
       --overwrite
   ```

   ```
   aws ssm put-parameter \
       --name "the-name-that-you-specified" \
       --value "a-new-parameter-value" \
       --type "SecureString" \
       --key-id "account-alias/the-KMSkey-ID" \
       --overwrite
   ```

------
#### [ Windows ]

   ```
   aws ssm put-parameter ^
       --name "the-name-that-you-specified" ^
       --value "a-new-parameter-value" ^
       --type "SecureString" ^
       --key-id "the-KMSkey-ID" ^
       --overwrite
   ```

   ```
   aws ssm put-parameter ^
       --name "the-name-that-you-specified" ^
       --value "a-new-parameter-value" ^
       --type "SecureString" ^
       --key-id "account-alias/the-KMSkey-ID" ^
       --overwrite
   ```

------

1. 다음 명령을 실행하여 최신 파라미터 값을 확인합니다.

------
#### [ Linux & macOS ]

   ```
   aws ssm get-parameters \
       --name "the-name-that-you-specified" \
       --with-decryption
   ```

------
#### [ Windows ]

   ```
   aws ssm get-parameters ^
       --name "the-name-that-you-specified" ^
       --with-decryption
   ```

------

1. 다음 명령을 실행하여 파라미터 값 기록을 확인합니다.

------
#### [ Linux & macOS ]

   ```
   aws ssm get-parameter-history \
       --name "the-name-that-you-specified"
   ```

------
#### [ Windows ]

   ```
   aws ssm get-parameter-history ^
       --name "the-name-that-you-specified"
   ```

------

**참고**  
암호화된 값을 사용하여 파라미터를 수동으로 만들 수 있습니다. 이 경우 값이 이미 암호화되어 있기 때문에 `SecureString` 파라미터 유형을 선택할 필요가 없습니다. `SecureString`을 선택하면 파라미터가 이중으로 암호화됩니다.

기본적으로 모든 `SecureString` 값은 암호 텍스트로 표시됩니다. `SecureString` 값을 복호화하려면 사용자에게 AWS KMS [Decrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html) API 작업을 호출할 수 있는 권한이 있어야 합니다. AWS KMS 액세스 제어 구성에 대한 자세한 내용은 *AWS Key Management Service Developer Guide*의 [Authentication and Access Control for AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/control-access.html)를 참조하세요.

**중요**  
파라미터를 암호화하는 데 사용되는 KMS 키에 대해 KMS 키 별칭을 변경하는 경우, 파라미터가 AWS KMS를 참조하는 데 사용하는 키 별칭도 업데이트해야 합니다. 이는 KMS 키 별칭에만 적용되며, 전체 키를 삭제하지 않는 한 별칭이 첨부되는 키 ID는 동일하게 유지됩니다.

## AWS CLI를 사용하여 여러 줄의 파라미터 생성
<a name="param-create-cli-multiline"></a>

AWS CLI를 사용하여 줄 바꿈이 있는 파라미터를 생성할 수 있습니다. 줄 바꿈을 사용하여 더 나은 가독성을 위해 긴 파라미터 값으로 텍스트를 나누거나 웹 페이지에 대한 여러 단락 파라미터 내용을 업데이트합니다. 다음 예와 같이 JSON 파일에 내용을 포함하고 `\n`과 같은 줄 바꿈 문자를 사용하여 `--cli-input-json` 옵션을 사용할 수 있습니다.

1. 아직 하지 않은 경우 AWS Command Line Interface(AWS CLI)을 설치하고 구성합니다.

   자세한 내용은 [최신 버전의 AWS CLI 설치 또는 업데이트](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html)를 참조하세요.

1. 다음 명령을 실행하여 여러 줄 파라미터를 생성합니다.

------
#### [ Linux & macOS ]

   ```
   aws ssm put-parameter \
       --name "MultiLineParameter" \
       --type String \
       --cli-input-json file://MultiLineParameter.json
   ```

------
#### [ Windows ]

   ```
   aws ssm put-parameter ^
       --name "MultiLineParameter" ^
       --type String ^
       --cli-input-json file://MultiLineParameter.json
   ```

------

   다음 예제에서는 `MultiLineParameter.json` 파일의 콘텐츠를 표시합니다.

   ```
   {
       "Value": "<para>Paragraph One</para>\n<para>Paragraph Two</para>\n<para>Paragraph Three</para>"
   }
   ```

저장된 파라미터 값은 다음과 같이 저장됩니다.

```
<para>Paragraph One</para>
<para>Paragraph Two</para>
<para>Paragraph Three</para>
```

# Tools for Windows PowerShell을 사용하여 Parameter Store 파라미터 생성
<a name="param-create-ps"></a>

AWS Tools for Windows PowerShell를 사용하여 `String`, `StringList` 및 `SecureString` 파라미터 유형을 생성할 수 있습니다. 파라미터를 삭제한 후 최소 30초 동안 기다리고 같은 이름의 파라미터를 생성합니다.

파라미터는 다른 파라미터의 값에 참조되거나 중첩될 수 없습니다. 파라미터 값에 `{{}}` 또는 `{{ssm:parameter-name}}`을 포함할 수 없습니다.

**참고**  
파라미터는 생성된 해당 파라미터가 생성된 AWS 리전에서만 사용할 수 있습니다.

**Topics**
+ [

## String 파라미터 생성(Tools for Windows PowerShell)
](#param-create-ps-string)
+ [

## StringList 파라미터 생성(Tools for Windows PowerShell)
](#param-create-ps-stringlist)
+ [

## SecureString 파라미터 생성(Tools for Windows PowerShell)
](#param-create-ps-securestring)

## String 파라미터 생성(Tools for Windows PowerShell)
<a name="param-create-ps-string"></a>

1. 아직 설치하지 않은 경우 AWS Tools for PowerShell(Tools for Windows PowerShell)을 설치하고 구성합니다.

   자세한 내용은 [AWS Tools for PowerShell 설치](https://docs.aws.amazon.com/powershell/latest/userguide/pstools-getting-set-up.html)를 참조하세요.

1. 다음 명령을 실행하여 일반 텍스트 값을 포함하는 파라미터를 생성합니다. 각 *example resource placeholder*를 사용자의 정보로 바꿉니다.

   ```
   Write-SSMParameter `
       -Name "parameter-name" `
       -Value "parameter-value" `
       -Type "String"
   ```

   -또는-

   다음 명령을 실행하여 파라미터 값으로 Amazon Machine Image(AMI) ID를 포함하는 파라미터를 생성합니다.
**참고**  
태그가 있는 파라미터를 생성하려면 변수로 service.model.tag를 생성합니다. 다음 예를 참고하세요  

   ```
   $tag = New-Object Amazon.SimpleSystemsManagement.Model.Tag
   $tag.Key = "tag-key"
   $tag.Value = "tag-value"
   ```

   ```
   Write-SSMParameter `
       -Name "parameter-name" `
       -Value "an-AMI-id" `
       -Type "String" `
       -DataType "aws:ec2:image" `
       -Tags $tag
   ```

   AMI ID를 포함하는 파라미터를 생성하는 경우에만 `-DataType` 옵션을 지정해야 합니다. 다른 모든 파라미터의 경우 기본 데이터 유형은 `text`입니다. 자세한 내용은 [Parameter Store의 네이티브 파라미터 지원을 Amazon Machine Image ID에 사용](parameter-store-ec2-aliases.md) 섹션을 참조하세요.

   다음은 파라미터 계층 구조를 사용하는 예입니다.

   ```
   Write-SSMParameter `
       -Name "/IAD/Web/SQL/IPaddress" `
       -Value "99.99.99.999" `
       -Type "String" `
       -Tags $tag
   ```

1. 다음 명령을 실행하여 파라미터의 세부 정보를 확인합니다.

   ```
   (Get-SSMParameterValue -Name "the-parameter-name-you-specified").Parameters
   ```

## StringList 파라미터 생성(Tools for Windows PowerShell)
<a name="param-create-ps-stringlist"></a>

1. 아직 설치하지 않은 경우 AWS Tools for PowerShell(Tools for Windows PowerShell)을 설치하고 구성합니다.

   자세한 내용은 [AWS Tools for PowerShell 설치](https://docs.aws.amazon.com/powershell/latest/userguide/pstools-getting-set-up.html)를 참조하세요.

1. 다음 명령을 실행하여 StringList 파라미터를 생성합니다. 각 *example resource placeholder*를 사용자의 정보로 바꿉니다.
**참고**  
태그가 있는 파라미터를 생성하려면 변수로 service.model.tag를 생성합니다. 다음 예를 참고하세요   

   ```
   $tag = New-Object Amazon.SimpleSystemsManagement.Model.Tag
   $tag.Key = "tag-key"
   $tag.Value = "tag-value"
   ```

   ```
   Write-SSMParameter `
       -Name "parameter-name" `
       -Value "a-comma-separated-list-of-values" `
       -Type "StringList" `
       -Tags $tag
   ```

   성공할 경우 명령은 파라미터의 버전 번호를 반환합니다.

   다음 예를 참고하세요

   ```
   Write-SSMParameter `
       -Name "stringlist-parameter" `
       -Value "Milana,Mariana,Mark,Miguel" `
       -Type "StringList" `
       -Tags $tag
   ```
**참고**  
`StringList`의 항목들은 쉼표(,)로 구분해야 합니다. 목록에서 항목을 이스케이프하기 위해 다른 문장 부호나 특수 기호를 사용할 수 없습니다. 쉼표가 필요한 파라미터 값이 있는 경우 `String` 유형을 사용합니다.

1. 다음 명령을 실행하여 파라미터의 세부 정보를 확인합니다.

   ```
   (Get-SSMParameterValue -Name "the-parameter-name-you-specified").Parameters
   ```

## SecureString 파라미터 생성(Tools for Windows PowerShell)
<a name="param-create-ps-securestring"></a>

`SecureString` 파라미터를 생성하기 전에, 이 파라미터 유형에 대한 요건을 읽어 보십시오. 자세한 내용은 [AWS CLI를 사용하여 SecureString 파라미터 생성](param-create-cli.md#param-create-cli-securestring) 섹션을 참조하세요.

**중요**  
`SecureString` 파라미터의 *값*만 암호화됩니다. 파라미터 이름, 설명 및 기타 속성은 암호화되지 않습니다.

**중요**  
Parameter Store는 [대칭 암호화 KMS 키](https://docs.aws.amazon.com/kms/latest/developerguide/symm-asymm-choose-key-spec.html#symmetric-cmks)만 지원합니다. [비대칭 암호화 KMS 키](https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html)를 사용하여 파라미터를 암호화할 수 없습니다. KMS 키가 대칭인지 비대칭인지 확인하는 것과 관련된 도움말은 *AWS Key Management Service Developer Guide*의 [Identifying symmetric and asymmetric KMS keys](https://docs.aws.amazon.com/kms/latest/developerguide/find-symm-asymm.html)를 참조하세요.

1. 아직 설치하지 않은 경우 AWS Tools for PowerShell(Tools for Windows PowerShell)을 설치하고 구성합니다.

   자세한 내용은 [AWS Tools for PowerShell 설치](https://docs.aws.amazon.com/powershell/latest/userguide/pstools-getting-set-up.html)를 참조하세요.

1. 다음 명령을 실행하여 파라미터를 생성합니다. 각 *example resource placeholder*를 사용자의 정보로 바꿉니다.
**참고**  
태그가 있는 파라미터를 생성하려면 우선 변수로 service.model.tag를 생성합니다. 다음 예를 참고하세요   

   ```
   $tag = New-Object Amazon.SimpleSystemsManagement.Model.Tag
   $tag.Key = "tag-key"
   $tag.Value = "tag-value"
   ```

   ```
   Write-SSMParameter `
       -Name "parameter-name" `
       -Value "parameter-value" `
       -Type "SecureString"  `
       -KeyId "an AWS KMS key ID, an AWS KMS key ARN, an alias name, or an alias ARN" `
       -Tags $tag
   ```

   성공할 경우 명령은 파라미터의 버전 번호를 반환합니다.
**참고**  
계정에 할당된 AWS 관리형 키을(를) 사용하려면 명령에서 `-KeyId` 파라미터를 제거합니다.

   다음은 암호 파라미터 및 AWS 관리형 키에 난독화된 이름(3l3vat3131)을 사용하는 예입니다.

   ```
   Write-SSMParameter `
       -Name "/Finance/Payroll/3l3vat3131" `
       -Value "P@sSwW)rd" `
       -Type "SecureString"`
       -Tags $tag
   ```

1. 다음 명령을 실행하여 파라미터의 세부 정보를 확인합니다.

   ```
   (Get-SSMParameterValue -Name "the-parameter-name-you-specified" –WithDecryption $true).Parameters
   ```

기본적으로 모든 `SecureString` 값은 암호 텍스트로 표시됩니다. `SecureString` 값을 복호화하려면 사용자에게 AWS KMS [Decrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html) API 작업을 호출할 수 있는 권한이 있어야 합니다. AWS KMS 액세스 제어 구성에 대한 자세한 내용은 *AWS Key Management Service Developer Guide*의 [Authentication and Access Control for AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/control-access.html)를 참조하세요.

**중요**  
파라미터를 암호화하는 데 사용되는 KMS 키에 대해 KMS 키 별칭을 변경하는 경우, 파라미터가 AWS KMS를 참조하는 데 사용하는 키 별칭도 업데이트해야 합니다. 이는 KMS 키 별칭에만 적용되며, 전체 키를 삭제하지 않는 한 별칭이 첨부되는 키 ID는 동일하게 유지됩니다.

# Systems Manager에서 Parameter Store 파라미터 검색
<a name="parameter-search"></a>

계정에 많은 수의 파라미터가 있는 경우 한 번에 단일 또는 여러 파라미터에 대한 정보를 찾기 어려울 수 있습니다. 이 경우 필터 도구를 사용하여 지정한 검색 조건에 따라 정보가 필요한 필터를 검색할 수 있습니다. AWS Systems Manager 콘솔, AWS Command Line Interface(AWS CLI), AWS Tools for PowerShell 또는 [DescribeParameters](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_DescribeParameters.html) API를 사용하여 파라미터를 검색할 수 있습니다.

**Topics**
+ [

## 콘솔을 사용하여 파라미터 검색
](#parameter-search-console)
+ [

## AWS CLI를 사용하여 파라미터 검색
](#parameter-search-cli)

## 콘솔을 사용하여 파라미터 검색
<a name="parameter-search-console"></a>

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

1. 탐색 창에서 **Parameter Store**를 선택합니다.

1. 검색 상자를 선택하고 검색 방법을 선택합니다. 예: `Type` 또는 `Name`.

1. 선택한 검색 유형에 대한 정보를 제공합니다. 예:
   + `Type`을 기준으로 검색하는 경우 `String`, `StringList` 또는 `SecureString` 중에서 선택합니다.
   + `Name`을 기준으로 검색하는 경우 `contains`, `equals` 또는 `begins-with`를 선택한 다음, 파라미터 이름의 전체 또는 일부를 입력합니다.
**참고**  
콘솔에서 `Name`에 대한 기본 검색 유형은 `contains`입니다.

1. **Enter**를 누릅니다.

파라미터의 목록이 검색 결과로 업데이트됩니다.

**참고**  
검색에는 결과의 첫 페이지에 표시되는 것보다 많은 결과가 포함될 수 있습니다. 파라미터 목록의 주제에서 오른쪽 화살표(**>**)(사용 가능한 경우)를 사용하면 다음 결과 세트를 볼 수 있습니다.

## AWS CLI를 사용하여 파라미터 검색
<a name="parameter-search-cli"></a>

`describe-parameters` 명령을 사용하여 AWS CLI에서 하나 이상의 파라미터에 대한 정보를 봅니다.

다음 예에서는 AWS 계정의 파라미터에 대한 정보를 보는 데 사용할 수 있는 다양한 옵션을 보여줍니다. 이러한 옵션에 대한 자세한 내용은 **AWS Command Line Interface 사용 설명서의 [https://docs.aws.amazon.com/cli/latest/reference/ssm/describe-parameters.html](https://docs.aws.amazon.com/cli/latest/reference/ssm/describe-parameters.html)를 참조하세요.

1. 아직 하지 않은 경우 AWS Command Line Interface(AWS CLI)을 설치하고 구성합니다.

   자세한 내용은 [최신 버전의 AWS CLI 설치 또는 업데이트](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html)를 참조하세요.

1. 다음 명령의 샘플 값을 계정에 생성된 파라미터를 반영하는 값으로 바꿉니다.

------
#### [ Linux & macOS ]

   ```
   aws ssm describe-parameters \
       --parameter-filters "Key=Name,Values=MyParameterName"
   ```

------
#### [ Windows ]

   ```
   aws ssm describe-parameters ^
       --parameter-filters "Key=Name,Values=MyParameterName"
   ```

------
**참고**  
`describe-parameters`에서 `Name`의 기본 검색 유형은 `Equals`입니다. 파라미터 필터에서 `"Key=Name,Values=MyParameterName"`를 지정하는 것은 `"Key=Name,Option=Equals,Values=MyParameterName"`를 지정하는 것과 동일합니다.

   ```
   aws ssm describe-parameters \
       --parameter-filters "Key=Name,Option=Contains,Values=Product"
   ```

   ```
   aws ssm describe-parameters \
       --parameter-filters "Key=Type,Values=String"
   ```

   ```
   aws ssm describe-parameters \
       --parameter-filters "Key=Path,Values=/Production/West"
   ```

   ```
   aws ssm describe-parameters \
       --parameter-filters "Key=Tier,Values=Standard"
   ```

   ```
   aws ssm describe-parameters \
       --parameter-filters "Key=tag:tag-key,Values=tag-value"
   ```

   ```
   aws ssm describe-parameters \
       --parameter-filters "Key=KeyId,Values=key-id"
   ```
**참고**  
마지막 예에서 *key-id*는 계정에서 생성된 `SecureString` 파라미터를 암호화하는 데 사용되는 AWS Key Management Service(AWS KMS) 키의 ID를 나타냅니다. 또는 **alias/aws/ssm**를 입력하여 계정의 기본 AWS KMS 키를 사용할 수 있습니다. 자세한 내용은 [AWS CLI를 사용하여 SecureString 파라미터 생성](param-create-cli.md#param-create-cli-securestring) 섹션을 참조하세요.

   이 작업이 성공하면 다음과 비슷한 출력이 반환됩니다.

   ```
   {
       "Parameters": [
           {
               "Name": "/Production/West/Manager",
               "Type": "String",
               "LastModifiedDate": 1573438580.703,
               "LastModifiedUser": "arn:aws:iam::111122223333:user/Mateo.Jackson",
               "Version": 1,
               "Tier": "Standard",
               "Policies": []
           },
           {
               "Name": "/Production/West/TeamLead",
               "Type": "String",
               "LastModifiedDate": 1572363610.175,
               "LastModifiedUser": "arn:aws:iam::111122223333:user/Mateo.Jackson",
               "Version": 1,
               "Tier": "Standard",
               "Policies": []
           },
           {
               "Name": "/Production/West/HR",
               "Type": "String",
               "LastModifiedDate": 1572363680.503,
               "LastModifiedUser": "arn:aws:iam::111122223333:user/Mateo.Jackson",
               "Version": 1,
               "Tier": "Standard",
               "Policies": []
           }
       ]
   }
   ```

# Parameter Store에서 파라미터 정책 할당
<a name="parameter-store-policies"></a>

파라미터 정책은 만료 날짜 또는 *유지 시간(TTL)*과 같이 파라미터에 대한 특정 기준을 지정할 수 있도록 허용으로써 증가하는 파라미터 집합을 관리하는 데 도움이 됩니다. 파라미터 정책은 특히 AWS Systems Manager의 도구인 Parameter Store에 저장된 암호 및 구성 데이터를 강제로 업데이트 또는 삭제하도록 하는 데 유용합니다. Parameter Store는 `Expiration`, `ExpirationNotification`, `NoChangeNotification` 유형의 정책을 제공합니다.

**참고**  
암호 교체 수명 주기를 구현하려면 AWS Secrets Manager를 사용합니다. Secrets Manager를 사용하면 수명 주기 동안 데이터베이스 자격 증명, API 키 및 기타 보안 암호를 손쉽게 교체, 관리 및 검색할 수 있습니다. 자세한 내용은 *AWS Secrets Manager 사용 설명서*의 [AWS Secrets Manager(이)란 무엇입니까?](https://docs.aws.amazon.com//secretsmanager/latest/userguide/intro.html) 섹션을 참조하세요.

Parameter Store은 비동기 정기 검사를 사용하여 파라미터 정책을 적용합니다. 정책을 생성한 후에는 정책을 실행하기 위해 추가 작업을 수행할 필요가 없습니다. Parameter Store는 지정한 기준에 따라 정책에 의해 정의된 작업을 독립적으로 수행합니다.

**참고**  
파라미터 정책은 고급 파라미터 티어를 사용하는 파라미터에 대해 사용할 수 있습니다. 자세한 내용은 [파라미터 티어 관리](parameter-store-advanced-parameters.md) 섹션을 참조하세요.

파라미터 정책은 다음 표에 표시된 대로 JSON 배열입니다. 새 고급 파라미터를 생성할 때 정책을 할당하거나 파라미터를 업데이트하여 정책을 적용할 수 있습니다. Parameter Store은 다음 유형의 파라미터 정책을 지원합니다.


| 정책 | 세부 정보 | 예제 | 
| --- | --- | --- | 
|  **만료**  |  이 정책은 파라미터를 삭제합니다. `ISO_INSTANT` 형식 또는 `ISO_OFFSET_DATE_TIME` 형식을 사용하여 특정 날짜와 시간을 지정할 수 있습니다. 파라미터를 삭제할 시점을 변경하려면 정책을 업데이트합니다. *파라미터*를 업데이트해도 연결된 정책의 만료 날짜 또는 시간에는 영향을 주지 않습니다. 만료 날짜와 시간에 도달하면 Parameter Store에서 파라미터를 삭제합니다.  이 예에서는 `ISO_INSTANT` 형식을 사용합니다. `ISO_OFFSET_DATE_TIME` 형식을 사용하여 날짜와 시간을 지정할 수도 있습니다. 예: `2019-11-01T22:13:48.87+10:30:00`   |  <pre>{<br />    "Type": "Expiration",<br />    "Version": "1.0",<br />    "Attributes": {<br />        "Timestamp": "2018-12-02T21:34:33.000Z"<br />    }<br />}</pre>  | 
|  **ExpirationNotification**  |  이 정책은 만료를 알리는 Amazon EventBridge(EventBridge) 이벤트를 시작합니다. 이 정책을 사용하면 만료 시간에 도달하기 전에 일 또는 시간 단위로 알림을 수신할 수 있습니다.  |  <pre>{<br />    "Type": "ExpirationNotification",<br />    "Version": "1.0",<br />    "Attributes": {<br />        "Before": "15",<br />        "Unit": "Days"<br />    }<br />}</pre>  | 
|  **NoChangeNotification**  |  이 정책은 지정된 기간 동안 파라미터가 수정되지 *않은* 경우 EventBridge에서 이벤트를 시작합니다. 이 정책 유형은 일정 기간 내에 암호를 변경해야 하는 경우 등에 유용합니다. 이 정책은 파라미터의 `LastModifiedTime`속성을 읽음으로써 알림을 보낼 시기를 결정합니다. 파라미터를 변경하거나 편집하면 시스템이 `LastModifiedTime`의 새 값에 따라 알림 기간을 재설정합니다.  |  <pre>{<br />    "Type": "NoChangeNotification",<br />    "Version": "1.0",<br />    "Attributes": {<br />        "After": "20",<br />        "Unit": "Days"<br />    }<br />}</pre>  | 

파라미터에 여러 정책을 할당할 수 있습니다. 예를 들어 시스템에서 파라미터가 곧 삭제됨을 알리는 EventBridge 이벤트를 시작하도록 `Expiration` 및 `ExpirationNotification` 정책을 할당할 수 있습니다. 파라미터에 최대 10개의 정책을 할당할 수 있습니다.

다음 예에서는 `ProdDB3`이라는 새 `SecureString` 파라미터에 4개의 정책을 할당하는 [PutParameter](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_PutParameter.html) API 요청을 위한 요청 신택스를 보여줍니다.

```
{
    "Name": "ProdDB3",
    "Description": "Parameter with policies",
    "Value": "P@ssW*rd21",
    "Type": "SecureString",
    "Overwrite": "True",
    "Policies": [
        {
            "Type": "Expiration",
            "Version": "1.0",
            "Attributes": {
                "Timestamp": "2018-12-02T21:34:33.000Z"
            }
        },
        {
            "Type": "ExpirationNotification",
            "Version": "1.0",
            "Attributes": {
                "Before": "30",
                "Unit": "Days"
            }
        },
        {
            "Type": "ExpirationNotification",
            "Version": "1.0",
            "Attributes": {
                "Before": "15",
                "Unit": "Days"
            }
        },
        {
            "Type": "NoChangeNotification",
            "Version": "1.0",
            "Attributes": {
                "After": "20",
                "Unit": "Days"
            }
        }
    ]
}
```

## 기존 파라미터에 정책 추가
<a name="sysman-paramstore-su-policy-create"></a>

이 절에는 AWS Systems Manager 콘솔, AWS Command Line Interface(AWS CLI) 및 AWS Tools for Windows PowerShell을 사용하여 기존 파라미터에 정책을 추가하는 방법에 대한 정보가 포함되어 있습니다. 정책이 포함된 새 파라미터를 만드는 방법에 대한 자세한 내용은 [Systems Manager에서 Parameter Store 파라미터 생성](sysman-paramstore-su-create.md) 섹션을 참조하세요.

**Topics**
+ [

### 콘솔을 사용하여 기존 파라미터에 정책 추가
](#sysman-paramstore-policy-create-console)
+ [

### AWS CLI를 사용하여 기존 파라미터에 정책 추가
](#sysman-paramstore-policy-create-cli)
+ [

### 기존 파라미터에 정책 추가(Tools for Windows PowerShell)
](#sysman-paramstore-policy-create-ps)

### 콘솔을 사용하여 기존 파라미터에 정책 추가
<a name="sysman-paramstore-policy-create-console"></a>

Systems Manager 콘솔을 사용하여 기존 파라미터에 정책을 추가하려면 다음 절차를 사용합니다.

**기존 파라미터에 정책을 추가하려면**

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

1. 탐색 창에서 **Parameter Store**를 선택합니다.

1. 정책을 포함하도록 업데이트할 파라미터 옆의 옵션을 선택한 다음 **편집**을 선택합니다.

1. **고급**을 선택합니다.

1. (선택 사항) **파라미터 정책** 섹션에서 **활성**을 선택합니다. 이 파라미터에 대한 만료 날짜와 하나 이상의 알림 정책을 지정할 수 있습니다.

1. **변경 사항 저장**을 선택합니다.

**중요**  
Parameter Store은 정책을 새 정책으로 덮어쓰거나 정책을 제거할 때까지 파라미터에 대한 정책을 보존합니다.
기존 파라미터에서 모든 정책을 제거하려면 다음과 같이 파라미터를 편집하고 대괄호 및 중괄호를 사용하여 빈 정책을 적용하십시오. `[{}]` 
이미 정책이 있는 파라미터에 새 정책을 추가하면 Systems Manager가 파라미터에 연결된 정책을 덮어씁니다. 기존 정책은 삭제됩니다. 이미 하나 이상의 정책이 있는 파라미터에 새 정책을 추가하려면 원래 정책을 복사하여 붙여넣고 새 정책을 입력한 다음 변경 사항을 저장합니다.

### AWS CLI를 사용하여 기존 파라미터에 정책 추가
<a name="sysman-paramstore-policy-create-cli"></a>

AWS CLI를 사용하여 기존 파라미터에 정책을 추가하려면 다음 절차를 사용하십시오.

**기존 파라미터에 정책을 추가하려면**

1. 아직 하지 않은 경우 AWS Command Line Interface(AWS CLI)을 설치하고 구성합니다.

   자세한 내용은 [최신 버전의 AWS CLI 설치 또는 업데이트](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html)를 참조하세요.

1. 다음 명령을 실행하여 기존 파라미터에 정책을 추가합니다. 각 *example resource placeholder*를 사용자의 정보로 바꿉니다.

------
#### [ Linux & macOS ]

   ```
   aws ssm put-parameter   
       --name "parameter name" \
       --value 'parameter value' \
       --type parameter type \
       --overwrite \
       --policies "[{policies-enclosed-in-brackets-and-curly-braces}]"
   ```

------
#### [ Windows ]

   ```
   aws ssm put-parameter   
       --name "parameter name" ^
       --value 'parameter value' ^
       --type parameter type ^
       --overwrite ^
       --policies "[{policies-enclosed-in-brackets-and-curly-braces}]"
   ```

------

   다음은 15일 후에 파라미터를 삭제하는 만료 정책을 포함하는 예제입니다. 이 예제에는 파라미터가 삭제되기 5일 전에 EventBridge 이벤트를 생성하는 알림 정책도 포함되어 있습니다. 마지막으로 60일 후에 이 파라미터를 변경하지 않으면 `NoChangeNotification` 정책이 포함됩니다. 다음은 암호 및 AWS Key Management Service AWS KMS key에 난독화된 이름(`3l3vat3131`)을 사용하는 예입니다. AWS KMS keys에 대한 자세한 내용은 *AWS Key Management Service Developer Guide*의 [AWS Key Management Service Concepts](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk) 섹션을 참조하세요.

------
#### [ Linux & macOS ]

   ```
   aws ssm put-parameter \
       --name "/Finance/Payroll/3l3vat3131" \
       --value "P@sSwW)rd" \
       --type "SecureString" \
       --overwrite \
       --policies "[{\"Type\":\"Expiration\",\"Version\":\"1.0\",\"Attributes\":{\"Timestamp\":\"2020-05-13T00:00:00.000Z\"}},{\"Type\":\"ExpirationNotification\",\"Version\":\"1.0\",\"Attributes\":{\"Before\":\"5\",\"Unit\":\"Days\"}},{\"Type\":\"NoChangeNotification\",\"Version\":\"1.0\",\"Attributes\":{\"After\":\"60\",\"Unit\":\"Days\"}}]"
   ```

------
#### [ Windows ]

   ```
   aws ssm put-parameter ^
       --name "/Finance/Payroll/3l3vat3131" ^
       --value "P@sSwW)rd" ^
       --type "SecureString" ^
       --overwrite ^
       --policies "[{\"Type\":\"Expiration\",\"Version\":\"1.0\",\"Attributes\":{\"Timestamp\":\"2020-05-13T00:00:00.000Z\"}},{\"Type\":\"ExpirationNotification\",\"Version\":\"1.0\",\"Attributes\":{\"Before\":\"5\",\"Unit\":\"Days\"}},{\"Type\":\"NoChangeNotification\",\"Version\":\"1.0\",\"Attributes\":{\"After\":\"60\",\"Unit\":\"Days\"}}]"
   ```

------

1. 다음 명령을 실행하여 파라미터의 세부 정보를 확인합니다. *parameter name*을 사용자의 정보로 바꿉니다.

------
#### [ Linux & macOS ]

   ```
   aws ssm describe-parameters  \
       --parameter-filters "Key=Name,Values=parameter name"
   ```

------
#### [ Windows ]

   ```
   aws ssm describe-parameters  ^
       --parameter-filters "Key=Name,Values=parameter name"
   ```

------

**중요**  
Parameter Store은 정책을 새 정책으로 덮어쓰거나 정책을 제거할 때까지 파라미터에 대한 정책을 보유합니다.
기존 파라미터에서 모든 정책을 제거하려면 파라미터를 편집하고 대괄호 및 중괄호로 빈 정책을 적용하십시오. 각 *example resource placeholder*를 사용자의 정보로 바꿉니다. 예:  

  ```
  aws ssm put-parameter \
      --name parameter name \
      --type parameter type  \
      --value 'parameter value' \
      --policies "[{}]"
  ```

  ```
  aws ssm put-parameter ^
      --name parameter name ^
      --type parameter type  ^
      --value 'parameter value' ^
      --policies "[{}]"
  ```
이미 정책이 있는 파라미터에 새 정책을 추가하면 Systems Manager가 파라미터에 연결된 정책을 덮어씁니다. 기존 정책은 삭제됩니다. 이미 하나 이상의 정책이 있는 파라미터에 새 정책을 추가하려면 원래 정책을 복사하여 붙여넣고 새 정책을 입력한 다음 변경 사항을 저장합니다.

### 기존 파라미터에 정책 추가(Tools for Windows PowerShell)
<a name="sysman-paramstore-policy-create-ps"></a>

Tools for Windows PowerShell을 사용하여 기존 파라미터에 정책을 추가하려면 다음 절차를 사용합니다. 각 *example resource placeholder*를 사용자의 정보로 바꿉니다.

**기존 파라미터에 정책을 추가하려면**

1. Tools for Windows PowerShell을 열고 다음 명령을 실행하여 자격 증명을 지정합니다. Amazon Elastic Compute Cloud(Amazon EC2)에 관리자 권한이 있거나 AWS Identity and Access Management(IAM)에서 적절한 권한을 부여 받아야 합니다.

   ```
   Set-AWSCredentials `
       –AccessKey access-key-name `
       –SecretKey secret-key-name
   ```

1. 다음 명령을 실행하여 PowerShell 세션의 리전을 설정합니다. 이 예에서는 미국 동부(오하이오) 리전(us-east-2)을 사용합니다.

   ```
   Set-DefaultAWSRegion `
       -Region us-east-2
   ```

1. 다음 명령을 실행하여 기존 파라미터에 정책을 추가합니다. 각 *example resource placeholder*를 사용자의 정보로 바꿉니다.

   ```
   Write-SSMParameter `
       -Name "parameter name" `
       -Value "parameter value" `
       -Type "parameter type" `
       -Policies "[{policies-enclosed-in-brackets-and-curly-braces}]" `
       -Overwrite
   ```

   다음은 2020년 5월 13일 자정(GMT)에 파라미터를 삭제하는 만료 정책을 포함하는 예제입니다. 이 예제에는 파라미터가 삭제되기 5일 전에 EventBridge 이벤트를 생성하는 알림 정책도 포함되어 있습니다. 마지막으로 60일 후에 이 파라미터를 변경하지 않으면 `NoChangeNotification` 정책이 포함됩니다. 다음은 암호 및 AWS 관리형 키에 난독화된 이름(`3l3vat3131`)을 사용하는 예입니다.

   ```
   Write-SSMParameter `
       -Name "/Finance/Payroll/3l3vat3131" `
       -Value "P@sSwW)rd" `
       -Type "SecureString" `
       -Policies "[{\"Type\":\"Expiration\",\"Version\":\"1.0\",\"Attributes\":{\"Timestamp\":\"2018-05-13T00:00:00.000Z\"}},{\"Type\":\"ExpirationNotification\",\"Version\":\"1.0\",\"Attributes\":{\"Before\":\"5\",\"Unit\":\"Days\"}},{\"Type\":\"NoChangeNotification\",\"Version\":\"1.0\",\"Attributes\":{\"After\":\"60\",\"Unit\":\"Days\"}}]" `
       -Overwrite
   ```

1. 다음 명령을 실행하여 파라미터의 세부 정보를 확인합니다. *parameter name*을 사용자의 정보로 바꿉니다.

   ```
   (Get-SSMParameterValue -Name "parameter name").Parameters
   ```

**중요**  
Parameter Store은 정책을 새 정책으로 덮어쓰거나 정책을 제거할 때까지 파라미터에 대한 정책을 보존합니다.
기존 파라미터에서 모든 정책을 제거하려면 파라미터를 편집하고 대괄호 및 중괄호로 빈 정책을 적용하십시오. 예:  

  ```
  Write-SSMParameter `
      -Name "parameter name" `
      -Value "parameter value" `
      -Type "parameter type" `
      -Policies "[{}]"
  ```
이미 정책이 있는 파라미터에 새 정책을 추가하면 Systems Manager가 파라미터에 연결된 정책을 덮어씁니다. 기존 정책은 삭제됩니다. 이미 하나 이상의 정책이 있는 파라미터에 새 정책을 추가하려면 원래 정책을 복사하여 붙여넣고 새 정책을 입력한 다음 변경 사항을 저장합니다.

# Parameter Store에서의 파라미터 계층 구조 작업
<a name="sysman-paramstore-hierarchies"></a>

수십 또는 수백 개 파라미터를 하나의 집합 목록으로 관리하면 많은 시간이 들고 오류에 취약합니다. 작업에 적합한 파라미터를 식별하기가 어려울 수도 있습니다. 즉, 실수로 잘못된 파라미터를 사용하거나 동일한 구성 데이터를 사용하는 여러 파라미터를 생성할 수 있다는 뜻입니다.

파라미터 계층 구조를 사용하면 파라미터를 조직하고 관리하는 데 도움이 됩니다. 계층 구조는 슬래시(/)를 사용하여 정의하는 경로를 포함한 파라미터 이름입니다.

**Topics**
+ [

## 예제를 통한 파라미터 계층 구조 이해
](#ps-hierarchy-examples)
+ [

## 계층 구조에서 파라미터 쿼리
](#ps-hierarchy-queries)
+ [

## AWS CLI를 사용하여 계층 구조를 사용한 파라미터 관리
](#sysman-paramstore-walk-hierarchy)

## 예제를 통한 파라미터 계층 구조 이해
<a name="ps-hierarchy-examples"></a>

다음 예제에서는 이름에서 세 가지 계층 구조 수준을 사용하여 다음을 식별합니다.

`/Environment/Type of computer/Application/Data`

`/Dev/DBServer/MySQL/db-string13`

최대 15레벨의 계층 구조를 생성할 수 있습니다. 다음 예와 같이 현재 환경의 기존 계층 구조를 반영하는 계층 구조를 생성할 것을 권장합니다.
+ [지속적인 통합](https://aws.amazon.com/devops/continuous-integration/) 및 [지속적인 전송](https://aws.amazon.com/devops/continuous-delivery/) 환경(CI/CD 워크플로)

  `/Dev/DBServer/MySQL/db-string`

  `/Staging/DBServer/MySQL/db-string`

  `/Prod/DBServer/MySQL/db-string`
+ 컨테이너를 사용하는 애플리케이션

  ```
  /MyApp/.NET/Libraries/my-password
  ```
+ 비즈니스 조직

  `/Finance/Accountants/UserList`

  `/Finance/Analysts/UserList`

  `/HR/Employees/EU/UserList`

파라미터 계층 구조는 파라미터를 생성하는 방식을 표준화하고, 시간에 따른 파라미터 관리를 용이하게 해줍니다. 파라미터 계층 구조는 구성 작업에 적합한 파라미터를 식별하는 데에도 도움이 될 수 있습니다. 이렇게 하면 같은 구성 데이터로 여러 파라미터가 생성되지 않도록 할 수 있습니다.

개발 및 스테이징 환경에 암호를 사용하는 다음 예에서 보듯이, 여러 환경에 걸쳐 파라미터를 공유할 수 있는 계층 구조를 생성할 수 있습니다.

`/DevTest/MyApp/database/my-password`

그러면 다음 예와 같이 프로덕션 환경에 고유한 암호를 생성할 수 있습니다.

`/prod/MyApp/database/my-password`

파라미터 계층 구조를 지정할 필요가 없습니다. 1레벨에 파라미터를 생성할 수 있습니다. 이를 *루트* 파라미터라고 합니다. 이전 버전과의 호환성을 위해 계층 구조가 배포되기 전 Parameter Store에서 생성된 모든 파라미터가 루트 파라미터입니다. 시스템은 다음 두 파라미터를 모두 루트 파라미터로 취급합니다.

`/parameter-name`

`parameter-name`

## 계층 구조에서 파라미터 쿼리
<a name="ps-hierarchy-queries"></a>

계층 구조 사용의 또 한 가지 장점은 [GetParametersByPath](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_GetParametersByPath.html) API 작업을 이용해 계층 구조의 *특정 레벨에서* 모든 파라미터에 대한 쿼리가 가능하다는 점입니다. 예를 들어 AWS Command Line Interface(AWS CLI)에서 다음 명령을 실행하면 시스템이 `Oncall` 레벨의 모든 파라미터를 반환합니다.

```
aws ssm get-parameters-by-path --path /Dev/Web/Oncall
```

샘플 출력:

```
{
    "Parameters": [
        {
            "Name": "/Dev/Web/Oncall/Week1",
            "Type": "String",
            "Value": "John Doe",
            "Version": 1,
            "LastModifiedDate": "2024-11-22T07:18:53.510000-08:00",
            "ARN": "arn:aws:ssm:us-east-2:123456789012:parameter/Dev/Web/Oncall/Week1",
            "DataType": "text"
        },
        {
            "Name": "/Dev/Web/Oncall/Week2",
            "Type": "String",
            "Value": "Mary Major",
            "Version": 1,
            "LastModifiedDate": "2024-11-22T07:21:25.325000-08:00",
            "ARN": "arn:aws:ssm:us-east-2:123456789012:parameter/Dev/Web/Oncall/Week2",
            "DataType": "text"
        }
    ]
}
```

계층 구조에서 복호화된 `SecureString` 파라미터를 보려면 다음 예제에서 보듯이 경로와 `--with-decryption` 파라미터를 지정합니다.

```
aws ssm get-parameters-by-path --path /Prod/ERP/SAP --with-decryption
```

## AWS CLI를 사용하여 계층 구조를 사용한 파라미터 관리
<a name="sysman-paramstore-walk-hierarchy"></a>

이 절차는 AWS CLI를 이용하여 파라미터와 파라미터 계층 구조를 다루는 방법을 보여줍니다.

**계층 구조를 사용하여 파라미터를 관리하려면**

1. 아직 하지 않은 경우 AWS Command Line Interface(AWS CLI)을 설치하고 구성합니다.

   자세한 내용은 [최신 버전의 AWS CLI 설치 또는 업데이트](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html)를 참조하세요.

1. 다음 명령을 실행하여 `allowedPattern` 파라미터 및 `String` 데이터 형식을 사용하는 파라미터를 생성합니다. 이 예에서 허용된 패턴은 파라미터 값이 1 - 4자 길이여야 한다는 뜻입니다.

------
#### [ Linux & macOS ]

   ```
   aws ssm put-parameter \
       --name "/MyService/Test/MaxConnections" \
       --value 100 --allowed-pattern "\d{1,4}" \
       --type String
   ```

------
#### [ Windows ]

   ```
   aws ssm put-parameter ^
       --name "/MyService/Test/MaxConnections" ^
       --value 100 --allowed-pattern "\d{1,4}" ^
       --type String
   ```

------

   이 명령은 파라미터의 버전 번호를 반환합니다.

1. 다음 명령을 실행하여 방금 새로운 값으로 생성한 파라미터의 덮어쓰기를 *시도*합니다.

------
#### [ Linux & macOS ]

   ```
   aws ssm put-parameter \
       --name "/MyService/Test/MaxConnections" \
       --value 10,000 \
       --type String \
       --overwrite
   ```

------
#### [ Windows ]

   ```
   aws ssm put-parameter ^
       --name "/MyService/Test/MaxConnections" ^
       --value 10,000 ^
       --type String ^
       --overwrite
   ```

------

   새 값이 이전 단계에 지정한 허용 패턴의 요구 사항에 부합하지 않기 때문에 시스템이 다음 오류를 반환합니다.

   ```
   An error occurred (ParameterPatternMismatchException) when calling the PutParameter operation: Parameter value, cannot be validated against allowedPattern: \d{1,4}
   ```

1. 다음 명령을 실행하여 AWS 관리형 키을 사용하는 `SecureString` 파라미터를 생성합니다. 이 예에서 허용된 패턴은 사용자가 어떤 문자든 지정할 수 있으나 값이 8 - 20자여야 한다는 뜻입니다.

------
#### [ Linux & macOS ]

   ```
   aws ssm put-parameter \
       --name "/MyService/Test/my-password" \
       --value "p#sW*rd33" \
       --allowed-pattern ".{8,20}" \
       --type SecureString
   ```

------
#### [ Windows ]

   ```
   aws ssm put-parameter ^
       --name "/MyService/Test/my-password" ^
       --value "p#sW*rd33" ^
       --allowed-pattern ".{8,20}" ^
       --type SecureString
   ```

------

1. 다음 명령을 실행하여 이전 단계의 계층 구조를 사용하는 더 많은 파라미터를 생성합니다.

------
#### [ Linux & macOS ]

   ```
   aws ssm put-parameter \
       --name "/MyService/Test/DBname" \
       --value "SQLDevDb" \
       --type String
   ```

   ```
   aws ssm put-parameter \
       --name "/MyService/Test/user" \
       --value "SA" \
       --type String
   ```

   ```
   aws ssm put-parameter \
       --name "/MyService/Test/userType" \
       --value "SQLuser" \
       --type String
   ```

------
#### [ Windows ]

   ```
   aws ssm put-parameter ^
       --name "/MyService/Test/DBname" ^
       --value "SQLDevDb" ^
       --type String
   ```

   ```
   aws ssm put-parameter ^
       --name "/MyService/Test/user" ^
       --value "SA" ^
       --type String
   ```

   ```
   aws ssm put-parameter ^
       --name "/MyService/Test/userType" ^
       --value "SQLuser" ^
       --type String
   ```

------

1. 다음 명령을 실행하여 두 가지 파라미터의 값을 가져옵니다.

------
#### [ Linux & macOS ]

   ```
   aws ssm get-parameters \
       --names "/MyService/Test/user" "/MyService/Test/userType"
   ```

------
#### [ Windows ]

   ```
   aws ssm get-parameters ^
       --names "/MyService/Test/user" "/MyService/Test/userType"
   ```

------

1. 다음 명령을 실행하여 단일 레벨의 모든 파라미터에 대해 쿼리합니다.

------
#### [ Linux & macOS ]

   ```
   aws ssm get-parameters-by-path \
       --path "/MyService/Test"
   ```

------
#### [ Windows ]

   ```
   aws ssm get-parameters-by-path ^
       --path "/MyService/Test"
   ```

------

1. 다음 명령을 실행하여 2개의 파라미터를 삭제합니다.

------
#### [ Linux & macOS ]

   ```
   aws ssm delete-parameters \
       --names "/IADRegion/Dev/user" "/IADRegion/Dev/userType"
   ```

------
#### [ Windows ]

   ```
   aws ssm delete-parameters ^
       --names "/IADRegion/Dev/user" "/IADRegion/Dev/userType"
   ```

------

# Parameter Store API 작업에 대한 액세스 차단
<a name="parameter-store-policy-conditions"></a>

Systems Manager for AWS Identity and Access Management(IAM) 정책에서 지원하는 서비스별 **[조건](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html)을 사용하여 Parameter Store API 작업 및 콘텐츠에 대한 액세스를 명시적으로 허용하거나 거부할 수 있습니다. 이러한 조건을 사용하면 조직의 특정 IAM 엔티티(사용자 및 역할) 만 특정 API 작업을 직접 호출하도록 허용하거나 특정 IAM 엔티티가 해당 작업을 실행하지 못하게 할 수 있습니다. 여기에는 Parameter Store 콘솔, AWS Command Line Interface(AWS CLI) 및 SDK를 통해 실행되는 작업이 포함됩니다.

Systems Manager는 현재 Parameter Store와 관련된 세 가지 조건을 지원합니다.

**Topics**
+ [

## `ssm:Overwrite`를 사용하여 기존 파라미터 변경 방지
](#overwrite-condition)
+ [

## `ssm:Policies`를 통해 파라미터 정책을 사용하는 파라미터 생성 또는 업데이트 방지
](#parameter-policies-condition)
+ [

## `ssm:Recursive`를 통해 계층 구조 파라미터의 수준에 대한 액세스 차단
](#recursive-condition)

## `ssm:Overwrite`를 사용하여 기존 파라미터 변경 방지
<a name="overwrite-condition"></a>

`ssm:Overwrite` 조건을 사용하여 IAM 엔티티가 기존 파라미터를 업데이트할 수 있는지 여부를 제어할 수 있습니다.

다음 샘플 정책에서 `"Allow"` 문은 미국 동부(오하이오) 리전의 AWS 계정 123456789012(us-east-2)에서 `PutParameter` API 작업을 실행하여 파라미터를 생성할 수 있는 권한을 부여합니다.

그러나 `PutParameter` 작업에 대해 `Overwrite` 옵션이 명시적으로 거부되기 때문에 `"Deny"` 문은 엔터티가 **기존 파라미터의 값을 변경하지 못하게 합니다. 즉, 이 정책이 할당된 사용자는 파라미터를 만들 수 있지만 기존 파라미터를 변경할 수는 없습니다.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ssm:PutParameter"
            ],
            "Resource": "arn:aws:ssm:us-east-1:111122223333:parameter/*"
        },
        {
            "Effect": "Deny",
            "Action": [
                "ssm:PutParameter"
            ],
            "Condition": {
                "StringEquals": {
                    "ssm:Overwrite": [
                        "true"
                    ]
                }
            },
            "Resource": "arn:aws:ssm:us-east-1:111122223333:parameter/*"
        }
    ]
}
```

------

## `ssm:Policies`를 통해 파라미터 정책을 사용하는 파라미터 생성 또는 업데이트 방지
<a name="parameter-policies-condition"></a>

`ssm:Policies` 조건을 사용하여 엔터티가 파라미터 정책을 포함하는 파라미터를 생성하고 파라미터 정책을 포함하는 기존 파라미터를 업데이트할 수 있는지 여부를 제어합니다.

다음 정책 예제에서 `"Allow"` 문은 생성 파라미터에 대한 일반 권한을 부여하지만 `"Deny"` 문은 엔터티가 미국 동부(오하이오) 리전(us-east-2)의 AWS 계정 123456789012 파라미터 정책을 포함하는 파라미터를 만들거나 업데이트하지 못하도록 합니다. 엔터티는 여전히 파라미터 정책이 할당되지 않은 파라미터를 생성하거나 업데이트할 수 있습니다.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ssm:PutParameter"
            ],
            "Resource": "arn:aws:ssm:us-east-1:111122223333:parameter/*"
        },
        {
            "Effect": "Deny",
            "Action": [
                "ssm:PutParameter"
            ],
            "Condition": {
                "StringEquals": {
                    "ssm:Policies": [
                        "true"
                    ]
                }
            },
            "Resource": "arn:aws:ssm:us-east-1:111122223333:parameter/*"
        }
    ]
}
```

------

## `ssm:Recursive`를 통해 계층 구조 파라미터의 수준에 대한 액세스 차단
<a name="recursive-condition"></a>

`ssm:Recursive` 조건을 사용하여 IAM 개체가 계층적 파라미터의 수준을 보거나 참조할 수 있는지 여부를 제어할 수 있습니다. 계층 구조의 특정 수준을 벗어나는 모든 파라미터에 대한 액세스를 제공하거나 제한할 수 있습니다.

다음 예제 정책에서 `"Allow"` 문은 미국 동부(오하이오) 리전(us-east-2)의 AWS 계정 123456789012에서 경로 `/Code/Departments/Finance/*`에 있는 모든 파라미터에 대한 Parameter Store 작업에 대한 액세스를 제공합니다.

이후에는 `"Deny"` 문이 IAM 엔터티가 `/Code/Departments/*` 수준 이하의 파라미터 데이터를 보거나 검색하지 못하도록 합니다. 하지만 엔티티는 여전히 해당 경로에서 파라미터를 생성하거나 업데이트할 수 있습니다. 이 예제는 파라미터 계층 구조에서 특정 수준 이하로 액세스를 재귀적으로 거부하는 것이 동일한 정책에서 보다 허용적인 액세스보다 우선한다는 것을 설명하기 위해 구성되었습니다.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ssm:*"
            ],
            "Resource": "arn:aws:ssm:us-east-1:111122223333:parameter/*"
        },
        {
            "Effect": "Deny",
            "Action": [
                "ssm:GetParametersByPath"
            ],
            "Condition": {
                "StringEquals": {
                    "ssm:Recursive": [
                        "true"
                    ]
                }
            },
            "Resource": "arn:aws:ssm:us-east-1:111122223333:parameter/Code/Departments/*"
        }
    ]
}
```

------

**중요**  
경로에 대해 액세스 권한이 있는 사용자는 해당 경로의 모든 수준에 액세스할 수 있습니다. 예를 들어 `/a` 경로에 대한 액세스 권한이 있는 사용자는 `/a/b`에도 액세스할 수 있습니다. 이는 위에 설명된 것처럼 사용자가 IAM에서 `/b` 파라미터에 대한 액세스를 명시적으로 거부당한 경우를 제외하고는 해당됩니다.

# Parameter Store에서의 파라미터 레이블 작업
<a name="sysman-paramstore-labels"></a>

파라미터 레이블이란 다양한 버전의 파라미터를 관리하는 데 도움이 되는 사용자 정의 별칭입니다. 파라미터를 수정하면 AWS Systems Manager에서 버전 번호를 하나씩 늘려서 새 버전을 저장합니다. 레이블이 있으면 파라미터 버전이 여러 개일 때 버전의 용도를 기억하기 쉽습니다.

예를 들어, `/MyApp/DB/ConnectionString`이라는 파라미터가 있다고 가정해 보겠습니다. 이 파라미터의 값은 테스트 환경의 로컬 데이터베이스에 있는 MySQL 서버에 대한 연결 문자열입니다. 애플리케이션 업데이트가 끝나면 이 파라미터가 프로덕션 데이터베이스에 대한 연결 문자열을 사용하도록 해야 합니다. `/MyApp/DB/ConnectionString`의 값을 변경합니다. Systems Manager에서 새 연결 문자열로 버전 2를 자동으로 생성합니다. 각 버전의 용도를 기억하기 쉽게 각각의 파라미터에 레이블을 부착합니다. 버전 1에는 *테스트* 레이블을, 버전 2에는 *프로덕션* 레이블을 부착합니다.

파라미터 버전 간에 레이블을 이동할 수 있습니다. 예를 들어 새 프로덕션 데이터베이스의 연결 문자열로 `/MyApp/DB/ConnectionString` 파라미터 버전 3을 생성한 다음, 파라미터 버전 2의 [*프로덕션(Production)*] 레이블을 파라미터 버전 3으로 옮길 수 있습니다.

파라미터 레이블은 파라미터 태그에 비해 간단한 대안입니다. 태그의 경우, 다양한 AWS 리소스에 반드시 적용해야 하는 해당 조직의 엄격한 태그 기준이 있을 수도 있습니다. 그러나 레이블은 특정 파라미터 버전에 대한 텍스트 연결에 불과합니다.

태그와 마찬가지로, 레이블로도 파라미터를 쿼리할 수 있습니다. 이 섹션 후반부의 설명에 따라 [GetParametersByPath](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_GetParametersByPath.html) API 작업을 사용하여 파라미터 집합을 쿼리하면 모두 동일한 레이블을 사용하는 특정한 파라미터 버전 목록이 표시됩니다.

**참고**  
존재하지 않는 파라미터의 버전을 지정하는 명령을 실행하면 명령이 실패합니다. 파라미터의 최신 값이나 기본값으로 폴백되지 않습니다.

**레이블 요구 사항 및 제한**

파라미터 레이블의 요구 및 제한 사항은 다음과 같습니다.
+ 파라미터 버전 하나에 레이블을 최대 10개 지정할 수 있습니다.
+ 동일 파라미터의 서로 다른 버전에 동일한 레이블을 부착할 수 없습니다. 예를 들어 파라미터의 버전 1에 *프로덕션* 레이블이 있으면 버전 2에는 *프로덕션*을 부착할 수 없습니다.
+ 파라미터 버전 간에 레이블을 이동할 수 있습니다.
+ 파라미터를 생성할 때 레이블을 함께 생성할 수 없습니다. 레이블은 특정 파라미터 버전에 부착해야 합니다.
+ 사용하지 않을 파라미터 레이블은 다른 파라미터 버전으로 옮기거나 삭제할 수 있습니다.
+ 레이블은 최대 100자까지 가능합니다.
+ 레이블은 문자(대소문자 구분), 숫자, 마침표(.), 하이픈(-) 또는 밑줄(\$1)을 포함할 수 있습니다.
+ 레이블은 숫자, "aws", "ssm"으로 시작할 수 없습니다(대/소문자 구별하지 않음). 이러한 요구 사항에 맞지 않는 레이블은 파라미터 버전에 부착되지 않으며 `InvalidLabels` 목록에 표시됩니다.

**Topics**
+ [

## 콘솔을 사용한 파라미터 레이블 작업
](#sysman-paramstore-labels-console)
+ [

## AWS CLI를 사용한 파라미터 레이블 작업
](#sysman-paramstore-labels-cli)

## 콘솔을 사용한 파라미터 레이블 작업
<a name="sysman-paramstore-labels-console"></a>

이 섹션에서는 Systems Manager 콘솔을 사용하여 다음 태스크를 수행하는 방법을 설명합니다.
+ [콘솔을 사용하여 파라미터 레이블 생성](#sysman-paramstore-labels-console-create)
+ [콘솔을 사용하여 파라미터에 연결된 레이블 보기](#sysman-paramstore-labels-console-view)
+ [콘솔을 사용하여 파라미터 레이블 이동](#sysman-paramstore-labels-console-move)
+ [콘솔을 사용하여 파라미터 레이블 삭제](#systems-manager-parameter-store-labels-console-delete)

### 콘솔을 사용하여 파라미터 레이블 생성
<a name="sysman-paramstore-labels-console-create"></a>

다음 절차에서는 Systems Manager 콘솔을 사용하여 *기존* 파라미터의 특정 버전에 레이블을 부착하는 방법을 설명합니다. 파라미터를 생성할 때 레이블을 부착할 수는 없습니다.

**파라미터 버전에 레이블을 부착하려면**

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

1. 탐색 창에서 **Parameter Store**를 선택합니다.

1. 파라미터 이름을 선택하여 해당 파라미터의 세부 정보 페이지를 엽니다.

1. **기록** 탭을 선택합니다.

1. 레이블을 부착할 파라미터 버전을 선택합니다.

1. [**레이블 관리(Manage labels)**]를 선택합니다.

1. [**새 레이블 추가(Add new label)**를 선택합니다.

1. 텍스트 상자에 레이블 이름을 입력합니다. 레이블을 더 추가하려면 [**새 레이블 추가(Add new label)**]를 선택합니다. 레이블을 최대 열 개까지 부착할 수 있습니다.

1. 작업을 마쳤으면 **변경 내용 저장**을 선택합니다.

### 콘솔을 사용하여 파라미터에 연결된 레이블 보기
<a name="sysman-paramstore-labels-console-view"></a>

파라미터 버전 하나에 레이블을 최대 열 개까지 지정할 수 있습니다. 다음 절차에서는 Systems Manager 콘솔을 사용하여 파라미터 버전에 부착된 모든 레이블을 보는 방법을 설명합니다.

**파라미터 버전에 부착된 레이블을 보려면**

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

1. 탐색 창에서 **Parameter Store**를 선택합니다.

1. 파라미터 이름을 선택하여 해당 파라미터의 세부 정보 페이지를 엽니다.

1. **기록** 탭을 선택합니다.

1. 부착된 모든 레이블을 볼 파라미터 버전을 찾습니다. **레이블** 열에 해당 파라미터 버전에 부착된 레이블이 모두 표시됩니다.

### 콘솔을 사용하여 파라미터 레이블 이동
<a name="sysman-paramstore-labels-console-move"></a>

다음 절차에서는 Systems Manager 콘솔을 사용하여 같은 파라미터의 다른 버전으로 파라미터 레이블을 옮기는 방법을 설명합니다.

**레이블을 다른 파라미터 버전으로 옮기려면**

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

1. 탐색 창에서 **Parameter Store**를 선택합니다.

1. 파라미터 이름을 선택하여 해당 파라미터의 세부 정보 페이지를 엽니다.

1. **기록** 탭을 선택합니다.

1. 레이블을 이동할 파라미터 버전을 선택합니다.

1. [**레이블 관리(Manage labels)**]를 선택합니다.

1. [**새 레이블 추가(Add new label)**를 선택합니다.

1. 텍스트 상자에 레이블 이름을 입력합니다.

1. 작업을 마쳤으면 **변경 내용 저장**을 선택합니다.

### 콘솔을 사용하여 파라미터 레이블 삭제
<a name="systems-manager-parameter-store-labels-console-delete"></a>

다음 절차에서는 Systems Manager 콘솔을 사용하여 하나 이상의 파라미터 레이블을 삭제하는 방법을 설명합니다.

**파라미터에서 레이블을 삭제하려면**

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

1. 탐색 창에서 **Parameter Store**를 선택합니다.

1. 파라미터 이름을 선택하여 해당 파라미터의 세부 정보 페이지를 엽니다.

1. **기록** 탭을 선택합니다.

1. 레이블을 삭제할 파라미터 버전을 선택합니다.

1. [**레이블 관리(Manage labels)**]를 선택합니다.

1. 삭제하려는 각 레이블 옆에 있는 [**제거(Remove)**]를 선택합니다.

1. 작업을 마쳤으면 **변경 내용 저장**을 선택합니다.

1. 변경 사항이 올바른지 확인하고 텍스트 상자에 `Confirm`를 입력하고 [**확인(Confirm)**]을 선택합니다.

## AWS CLI를 사용한 파라미터 레이블 작업
<a name="sysman-paramstore-labels-cli"></a>

이 섹션에서는 AWS Command Line Interface(AWS CLI)를 사용하여 다음 태스크를 수행하는 방법을 설명합니다.
+ [AWS CLI를 사용하여 새 파라미터 레이블 생성](#sysman-paramstore-labels-cli-create)
+ [AWS CLI를 사용하여 파라미터에 대한 레이블 보기](#sysman-paramstore-labels-cli-view)
+ [AWS CLI를 사용하여 레이블이 할당된 파라미터 목록 보기](#sysman-paramstore-labels-cli-view-param)
+ [AWS CLI를 사용하여 파라미터 레이블 이동](#sysman-paramstore-labels-cli-move)
+ [AWS CLI를 사용하여 파라미터 레이블 삭제](#systems-manager-parameter-store-labels-cli-delete)

### AWS CLI를 사용하여 새 파라미터 레이블 생성
<a name="sysman-paramstore-labels-cli-create"></a>

다음 절차에서는 AWS CLI를 사용하여 *기존* 파라미터의 특정 버전에 레이블을 부착하는 방법을 설명합니다. 파라미터를 생성할 때 레이블을 부착할 수는 없습니다.

**파라미터 레이블을 생성하려면**

1. 아직 하지 않은 경우 AWS Command Line Interface(AWS CLI)을 설치하고 구성합니다.

   자세한 내용은 [최신 버전의 AWS CLI 설치 또는 업데이트](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html)를 참조하세요.

1. 다음 명령을 실행하여 본인에게 레이블 부착 권한이 있는 파라미터 목록을 봅니다.
**참고**  
파라미터는 생성된 해당 파라미터가 생성된 AWS 리전에서만 사용할 수 있습니다. 레이블을 부착할 파라미터가 보이지 않으면 리전을 확인하십시오.

   ```
   aws ssm describe-parameters
   ```

   레이블을 부착할 파라미터의 이름을 적어 둡니다.

1. 다음 명령을 실행하여 파라미터의 모든 버전을 봅니다.

   ```
   aws ssm get-parameter-history --name "parameter-name"
   ```

   레이블을 부착할 파라미터 버전을 적어 둡니다.

1. 다음 명령을 사용하여 버전 번호별로 파라미터의 정보를 검색합니다.

   ```
   aws ssm get-parameters --names "parameter-name:version-number" 
   ```

   다음 예를 참고하세요

   ```
   aws ssm get-parameters --names "/Production/SQLConnectionString:3" 
   ```

1. 다음 명령 중 하나를 실행하여 파라미터 버전에 레이블을 부착합니다. 레이블을 여러 개 부착하는 경우 레이블 이름을 공백으로 구분합니다.

   **최신 파라미터 버전에 레이블 부착**

   ```
   aws ssm label-parameter-version --name parameter-name  --labels label-name
   ```

   **특정 파라미터 버전에 레이블 부착**

   ```
   aws ssm label-parameter-version --name parameter-name --parameter-version version-number --labels label-name
   ```

   여기 몇 가지 예가 있습니다.

   ```
   aws ssm label-parameter-version --name /config/endpoint --labels production east-region finance
   ```

   ```
   aws ssm label-parameter-version --name /config/endpoint --parameter-version 3 --labels MySQL-test
   ```
**참고**  
출력 결과, 생성한 레이블이 `InvalidLabels` 목록에 표시되면 그 레이블은 이 주제 전반부에서 설명한 요구 사항에 맞지 않는 것입니다. 요구 사항을 검토한 후 다시 시도하십시오. `InvalidLabels` 목록이 비어 있으면 레이블이 해당 파라미터 버전에 적용된 것입니다.

1. 버전 번호나 레이블 이름을 사용하여 파라미터의 세부 정보를 볼 수 있습니다. 다음 명령을 실행하고, 이전 단계에서 만든 레이블을 지정하십시오.

   ```
   aws ssm get-parameter --name parameter-name:label-name --with-decryption
   ```

   명령은 다음과 같은 정보를 반환합니다.

   ```
   {
       "Parameter": {
           "Version": version-number, 
           "Type": "parameter-type", 
           "Name": "parameter-name", 
           "Value": "parameter-value", 
           "Selector": ":label-name"
       }
   }
   ```
**참고**  
이 출력에서 *선택자*는 `Name` 입력 필드에서 지정한 레이블 또는 버전 번호입니다.

### AWS CLI를 사용하여 파라미터에 대한 레이블 보기
<a name="sysman-paramstore-labels-cli-view"></a>

[GetParameterHistory](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_GetParameterHistory.html) API 작업을 사용하여 지정된 파라미터에 부착되어 있는 모든 레이블과 전체 기록을 볼 수 있습니다. 또는 [GetParametersByPath](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_GetParametersByPath.html) API 작업으로 특정 레이블에 할당된 전체 파라미터 목록을 볼 수도 있습니다.

**GetParameterHistory API 작업을 사용하여 파라미터의 레이블을 보려면**

1. 다음 명령을 실행하여 본인에게 레이블 보기 권한이 있는 파라미터 목록을 봅니다.
**참고**  
파라미터는 생성된 리전에서만 사용할 수 있습니다. 레이블을 옮길 파라미터가 보이지 않으면 리전을 확인하십시오.

   ```
   aws ssm describe-parameters
   ```

   레이블을 보려는 파라미터의 이름을 기록해 둡니다.

1. 다음 명령을 실행하여 파라미터의 모든 버전을 봅니다.

   ```
   aws ssm get-parameter-history --name parameter-name --with-decryption
   ```

   시스템은 다음과 같은 정보를 반환합니다.

   ```
   {
       "Parameters": [
           {
               "Name": "/Config/endpoint", 
               "LastModifiedDate": 1528932105.382, 
               "Labels": [
                   "Deprecated"
               ], 
               "Value": "MyTestService-June-Release.example.com", 
               "Version": 1, 
               "LastModifiedUser": "arn:aws:iam::123456789012:user/test", 
               "Type": "String"
           }, 
           {
               "Name": "/Config/endpoint", 
               "LastModifiedDate": 1528932111.222, 
               "Labels": [
                   "Current"
               ], 
               "Value": "MyTestService-July-Release.example.com", 
               "Version": 2, 
               "LastModifiedUser": "arn:aws:iam::123456789012:user/test", 
               "Type": "String"
           }
       ]
   }
   ```

### AWS CLI를 사용하여 레이블이 할당된 파라미터 목록 보기
<a name="sysman-paramstore-labels-cli-view-param"></a>

[GetParametersByPath](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_GetParametersByPath.html) API 작업으로 특정 레이블에 할당된 경로의 전체 파라미터 목록을 볼 수 있습니다.

다음 명령을 실행하여 특정 레이블에 할당된 경로의 파라미터 목록을 봅니다. *example resource placeholder*를 사용자의 정보로 바꿉니다.

```
aws ssm get-parameters-by-path \
    --path parameter-path \
    --parameter-filters Key=Label,Values=label-name,Option=Equals \
    --max-results a-number \
    --with-decryption --recursive
```

시스템은 다음과 같은 정보를 반환합니다. 이 예제의 사용자는 `/Config` 경로에서 검색했습니다.

```
{
    "Parameters": [
        {
            "Version": 3, 
            "Type": "SecureString", 
            "Name": "/Config/DBpwd", 
            "Value": "MyS@perGr&pass33"
        }, 
        {
            "Version": 2, 
            "Type": "String", 
            "Name": "/Config/DBusername", 
            "Value": "TestUserDB"
        }, 
        {
            "Version": 2, 
            "Type": "String", 
            "Name": "/Config/endpoint", 
            "Value": "MyTestService-July-Release.example.com"
        }
    ]
}
```

### AWS CLI를 사용하여 파라미터 레이블 이동
<a name="sysman-paramstore-labels-cli-move"></a>

다음 절차에서는 같은 파라미터의 다른 버전으로 파라미터 레이블을 옮기는 방법을 설명합니다.

**파라미터 레이블을 옮기려면**

1. 다음 명령을 실행하여 파라미터의 모든 버전을 봅니다. *parameter name*을 사용자의 정보로 바꿉니다.

   ```
   aws ssm get-parameter-history \
       --name "parameter name"
   ```

   레이블을 이동할 파라미터 버전을 기록해 둡니다.

1. 다음 명령을 실행하여 기존 레이블을 파라미터의 다른 버전에 할당합니다. *example resource placeholder*를 사용자의 정보로 바꿉니다.

   ```
   aws ssm label-parameter-version \
       --name parameter name \
       --parameter-version version number \
       --labels name-of-existing-label
   ```
**참고**  
기존 레이블을 최신 버전의 파라미터로 옮기려면 명령에서 `--parameter-version`을 빼십시오.

### AWS CLI를 사용하여 파라미터 레이블 삭제
<a name="systems-manager-parameter-store-labels-cli-delete"></a>

다음 절차에서는 AWS CLI를 사용하여 파라미터 레이블을 삭제하는 방법을 설명합니다.

**파라미터 레이블을 삭제하려면**

1. 다음 명령을 실행하여 파라미터의 모든 버전을 봅니다. *parameter name*을 사용자의 정보로 바꿉니다.

   ```
   aws ssm get-parameter-history \
       --name "parameter name"
   ```

   시스템은 다음과 같은 정보를 반환합니다.

   ```
   {
       "Parameters": [
           {
               "Name": "foo",
               "DataType": "text",
               "LastModifiedDate": 1607380761.11,
               "Labels": [
                   "l3",
                   "l2"
               ],
               "Value": "test",
               "Version": 1,
               "LastModifiedUser": "arn:aws:iam::123456789012:user/test",
               "Policies": [],
               "Tier": "Standard",
               "Type": "String"
           },
           {
               "Name": "foo",
               "DataType": "text",
               "LastModifiedDate": 1607380763.11,
               "Labels": [
                   "l1"
               ],
               "Value": "test",
               "Version": 2,
               "LastModifiedUser": "arn:aws:iam::123456789012:user/test",
               "Policies": [],
               "Tier": "Standard",
               "Type": "String"
           }
       ]
   }
   ```

   하나 이상의 레이블을 삭제할 파라미터 버전을 적어 둡니다.

1. 다음 명령을 실행하여 해당 파라미터에서 선택한 레이블을 삭제합니다. *example resource placeholder*를 사용자의 정보로 바꿉니다.

   ```
   aws ssm unlabel-parameter-version \
       --name parameter name \
       --parameter-version version \
       --labels label 1,label 2,label 3
   ```

   시스템은 다음과 같은 정보를 반환합니다.

   ```
   {
       "InvalidLabels": ["invalid"], 
       "DeletedLabels" : ["Prod"]
    }
   ```

# Parameter Store에서 파라미터 버전으로 작업
<a name="sysman-paramstore-versions"></a>

파라미터 값을 편집할 때마다 AWS Systems Manager의 도구인 Parameter Store는 파라미터의 새 *버전*을 생성하고 이전 버전을 유지합니다. 파라미터를 처음 생성하면 Parameter Store가 이 파라미터에 버전 `1`을 지정합니다. 파라미터 값을 변경할 때 Parameter Store는 자동으로 버전 번호를 1씩 늘립니다. 파라미터 기록에서 값을 포함하여 모든 버전의 세부 정보를 볼 수 있습니다.

API 명령 및 SSM 문서에 사용할 파라미터의 버전을 지정할 수도 있습니다(예: `ssm:MyParameter:3`). API 호출 및 SSM 문서에서 파라미터 이름과 특정 버전 번호를 지정할 수 있습니다. 버전 번호를 지정하지 않을 경우 시스템이 자동으로 최신 버전을 사용합니다. 존재하지 않는 버전의 번호를 지정하면 파라미터의 최신 버전 또는 기본 버전으로 폴백되지 않고 오류가 반환됩니다.

또한 파라미터 버전을 사용하여 일정 기간 동안 파라미터가 몇 번 변경되었는지 확인할 수 있습니다. 파라미터 버전은 파라미터 값이 실수로 변경된 경우에도 보호 계층을 제공합니다.

최대 100개의 파라미터 버전을 생성하고 유지할 수 있습니다. 100개의 파라미터 버전을 생성한 후 새 버전을 생성할 때마다 새 버전을 위한 공간을 만들기 위해 가장 오래된 버전의 파라미터가 기록에서 제거됩니다.

기록에 이미 100개의 파라미터 버전이 있고 파라미터 레이블이 가장 오래된 버전의 파라미터에 할당된 경우는 예외입니다. 이 경우 해당 버전은 기록에서 제거되지 않고 새 파라미터 버전 생성 요청이 실패합니다. 이 안전 조치는 미션 크리티컬 라벨이 할당된 파라미터 버전이 삭제되는 것을 방지하기 위한 것입니다. 새 파라미터를 계속 생성하려면 먼저 파라미터의 가장 오래된 버전에서 작업에 사용할 새 파라미터로 레이블을 이동합니다. 파라미터 레이블 이동에 대한 자세한 내용은 [콘솔을 사용하여 파라미터 레이블 이동](sysman-paramstore-labels.md#sysman-paramstore-labels-console-move) 및 [AWS CLI를 사용하여 파라미터 레이블 이동](sysman-paramstore-labels.md#sysman-paramstore-labels-cli-move) 섹션을 참조하세요.

다음 절차에서는 파라미터를 편집하고 새 버전이 생성되었는지 확인하는 방법을 보여줍니다. `get-parameter` 및 `get-parameters` 명령을 사용하여 파라미터 버전을 볼 수 있습니다. 이러한 명령 사용 예는 *AWS Systems Manager API Reference*의 [GetParameter](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_GetParameter.html#API_GetParameter_Examples) 및 [GetParameters](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_GetParameters.html#API_GetParameters_Examples)를 참조하세요.

**Topics**
+ [

## 콘솔을 사용하여 새 버전의 파라미터 생성
](#sysman-paramstore-version-console)
+ [

## 파라미터 버전 참조
](#reference-parameter-version)

## 콘솔을 사용하여 새 버전의 파라미터 생성
<a name="sysman-paramstore-version-console"></a>

Systems Manager 콘솔을 사용하여 새 버전의 파라미터를 생성하고 파라미터의 버전 기록을 볼 수 있습니다.

**파라미터의 새 버전을 생성하려면**

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

1. 탐색 창에서 **Parameter Store**를 선택합니다.

1. 앞서 생성한 파라미터 이름을 선택합니다. 새 파라미터 생성에 대한 자세한 내용은 [Systems Manager에서 Parameter Store 파라미터 생성](sysman-paramstore-su-create.md) 섹션을 참조하세요.

1. **편집**을 선택합니다.

1. [**값(Value)**] 상자에 새 값을 입력한 다음 [**변경 사항 저장(Save changes)**]을 선택합니다.

1. 방금 업데이트한 파라미터의 이름을 선택합니다. **개요** 탭에서 버전 번호가 1만큼 증가했는지 확인하고 새 값을 확인합니다.

1. 파라미터의 모든 버전 기록을 보려면 **기록** 탭을 선택합니다.

## 파라미터 버전 참조
<a name="reference-parameter-version"></a>

ssm:`parameter-name:version-number` 형식을 사용하여 명령, API 호출 및 SSM 문서에서 특정 파라미터 버전을 참조할 수 있습니다.

다음 예에서 Amazon Elastic Compute Cloud(Amazon EC2) `run-instances command`는 파라미터 `golden-ami`의 버전 3을 사용합니다.

------
#### [ Linux & macOS ]

```
aws ec2 run-instances \
    --image-id resolve:ssm:/golden-ami:3 \
    --count 1 \
    --instance-type t2.micro \
    --key-name my-key-pair \
    --security-groups my-security-group
```

------
#### [ Windows ]

```
aws ec2 run-instances ^
    --image-id resolve:ssm:/golden-ami:3 ^
    --count 1 ^
    --instance-type t2.micro ^
    --key-name my-key-pair ^
    --security-groups my-security-group
```

------

**참고**  
`resolve` 및 파라미터 값은 Amazon Machine Image(AMI)를 값으로 포함하는 파라미터 및 `--image-id` 옵션에서만 사용할 수 있습니다. 자세한 내용은 [Parameter Store의 네이티브 파라미터 지원을 Amazon Machine Image ID에 사용](parameter-store-ec2-aliases.md) 섹션을 참조하세요.

다음은 SSM 문서에서 `MyRunCommandParameter`이라는 파라미터의 버전 2를 지정하는 예제입니다.

------
#### [ YAML ]

```
---
schemaVersion: '2.2'
description: Run a shell script or specify the commands to run.
parameters:
  commands:
    type: String
    description: "(Required) Specify a shell script or a command to run."
    displayType: textarea
    default: "{{ssm:MyRunCommandParameter:2}}"
mainSteps:
- action: aws:runShellScript
  name: RunScript
  inputs:
    runCommand:
    - "{{commands}}"
```

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

```
{
    "schemaVersion": "2.2",
    "description": "Run a shell script or specify the commands to run.",
    "parameters": {
        "commands": {
            "type": "String",
            "description": "(Required) Specify a shell script or a command to run.",
            "displayType": "textarea",
            "default": "{{ssm:MyRunCommandParameter:2}}"
        }
    },
    "mainSteps": [
        {
            "action": "aws:runShellScript",
            "name": "RunScript",
            "inputs": {
                "runCommand": [
                    "{{commands}}"
                ]
            }
        }
    ]
}
```

------

# Parameter Store에서 공유 파라미터로 작업
<a name="parameter-store-shared-parameters"></a>

고급 파라미터를 공유하면 다중 계정 환경에서 구성 데이터 관리가 간소화됩니다. 파라미터를 중앙에서 저장 및 관리하고 이를 참조해야 하는 다른 AWS 계정와 공유할 수 있습니다.

Parameter Store가 AWS Resource Access Manager(AWS RAM)와 통합되어 고급 파라미터 공유가 가능합니다. AWS RAM은 리소스를 다른 AWS 계정과 공유하거나 AWS Organizations을 통해 공유할 수 있는 서비스입니다.

AWS RAM(을)를 사용하면 리소스 공유를 생성하여 내 소유의 리소스를 공유할 수 있습니다. 리소스 공유는 공유할 리소스, 부여할 권한, 공유 대상 소비자를 지정합니다. 소비자에는 다음이 포함될 수 있습니다.
+ AWS Organizations의 조직 내부 또는 외부의 특정 AWS 계정.
+ AWS Organizations에서 조직 내부의 조직 단위
+ AWS Organizations의 전체 조직

AWS RAM에 대한 자세한 내용은 *[AWS RAM 사용 설명서](https://docs.aws.amazon.com/ram/latest/userguide/)*를 참조하세요.

이 항목에서는 소유한 파라미터를 공유하는 방법과 사용자와 공유 파라미터를 사용하는 방법을 설명합니다.

**Topics**
+ [

## 파라미터 공유를 위한 사전 조건
](#prereqs)
+ [

## 파라미터 공유
](#share)
+ [

## 공유 파라미터 공유 중지
](#unshare)
+ [

## 공유 파라미터 식별
](#identify)
+ [

## 공유 파라미터 액세스
](#accessing)
+ [

## 파라미터 공유를 위한 권한 세트
](#sharing-permissions)
+ [

## 공유 파라미터의 최대 처리량
](#throughput)
+ [

## 공유 파라미터 요금
](#pricing)
+ [

## 해지된 AWS 계정에 대한 크로스 계정 액세스
](#closed-accounts)

## 파라미터 공유를 위한 사전 조건
<a name="prereqs"></a>

계정에서 파라미터를 공유하려면 다음 사전 조건을 충족해야 합니다.
+ 파라미터를 공유하려면 AWS 계정에 소유하고 있어야 합니다. 공유 받은 파라미터는 공유할 수 없습니다.
+ 파라미터를 공유하려면 해당 파라미터가 고급 파라미터 티어에 속해야 합니다. 파라미터 티어에 대한 자세한 내용은 [파라미터 티어 관리](parameter-store-advanced-parameters.md) 섹션을 참조하세요. 기존 표준 파라미터를 고급 파라미터로 변경하는 방법에 대한 자세한 내용은 [표준 파라미터를 고급 파라미터로 변경](parameter-store-advanced-parameters.md#parameter-store-advanced-parameters-enabling) 섹션을 참조하세요.
+ `SecureString` 파라미터를 공유하려면 고객 관리 키로 암호화해야 하며, AWS Key Management Service를 통해 키를 별도로 공유해야 합니다. AWS 관리형 키는 공유할 수 없습니다. 기본 AWS 관리형 키로 암호화된 파라미터를 업데이트하여 고객 관리형 키를 대신 사용할 수 있습니다. AWS KMS 키 정의는 AWS Key Management Service 개발자 안내서의 [AWS KMS 개념](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-mgmt)을 참조하세요.
+ 파라미터를 AWS Organizations의 조직 또는 조직 단위와 공유하려면, AWS Organizations와의 공유를 활성화해야 합니다. 자세한 내용은 *AWS RAM 사용 설명서*의 [AWS Organizations과(와) 공유 활성화](https://docs.aws.amazon.com/ram/latest/userguide/getting-started-sharing.html#getting-started-sharing-orgs)를 참조하세요.

## 파라미터 공유
<a name="share"></a>

파라미터를 공유하려면 리소스 공유에 추가해야 합니다. 리소스 공유는 AWS 계정 전반에서 리소스를 공유할 수 있게 해주는 AWS RAM 리소스입니다. 리소스 공유는 공유할 리소스와 공유 대상 소비자를 지정합니다.

소유한 파라미터를 다른 AWS 계정과 공유하는 경우 두 가지 AWS 관리형 권한 중에서 선택하고 소비자에게 부여할 수 있습니다. 자세한 내용은 [파라미터 공유를 위한 권한 세트](#sharing-permissions) 섹션을 참조하세요.

AWS Organizations의 조직에 속해 있고 조직 내의 공유가 활성화되어 있으면, 조직의 소비자에게 AWS RAM 콘솔에서 공유 파라미터에 대한 액세스 권한을 부여할 수 있습니다. 그렇지 않으면 소비자는 리소스 공유에 가입하라는 초대장을 받고 초대를 수락한 후 공유 파라미터에 대한 액세스 권한을 받습니다.

AWS RAM 콘솔이나 AWS CLI를 사용하여 자신이 소유한 파라미터를 공유할 수 있습니다.

**참고**  
Systems Manager [PutResourcePolicy](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_PutResourcePolicy.html) API 작업을 사용하여 파라미터를 공유할 수 있지만, 대신 AWS Resource Access Manager(AWS RAM)를 사용하는 것이 좋습니다. `PutResourcePolicy`를 사용하려면 AWS RAM [PromoteResourceShareCreatedFromPolicy](https://docs.aws.amazon.com/ram/latest/APIReference/API_PromoteResourceShareCreatedFromPolicy.html) API 작업을 사용하여 파라미터를 표준 리소스 공유로 승격하는 추가 단계가 필요하기 때문입니다. 그러지 않으면 `--shared` 옵션을 사용하는 Systems Manager [DescribeParameters](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_DescribeParameters.html) API 작업에서 파라미터를 반환하지 않습니다.

**AWS RAM 콘솔을 사용하여 소유한 파라미터를 공유하려면**  
**AWS RAM 사용 설명서의 [Creating a resource share in AWS RAM](https://docs.aws.amazon.com/ram/latest/userguide/working-with-sharing.html#working-with-sharing-create)을 참조하세요.

절차를 완료할 때 다음을 선택합니다.
+ 1단계 페이지의 **리소스**에서 `Parameter Store Advanced Parameter`를 선택하고 고급 파라미터 계층에서 공유하려는 각 파라미터 상자를 선택합니다.
+ 2단계 페이지의 **관리 권한**에서 소비자에게 부여할 권한을 선택합니다(이 주제의 뒷부분에 나오는 [파라미터 공유를 위한 권한 세트](#sharing-permissions) 참조).

파라미터 공유 목표에 따라 다른 옵션을 선택합니다.

**AWS CLI를 사용하여 소유한 파라미터를 공유하려면**  
[https://docs.aws.amazon.com/cli/latest/reference/ram/create-resource-share.html](https://docs.aws.amazon.com/cli/latest/reference/ram/create-resource-share.html) 명령을 사용하여 새 리소스 공유에 파라미터를 추가합니다.

[https://docs.aws.amazon.com/cli/latest/reference/ram/associate-resource-share.html](https://docs.aws.amazon.com/cli/latest/reference/ram/associate-resource-share.html) 명령을 사용하여 기존 리소스 공유에 파라미터를 추가합니다.

다음 예제에서는 새 리소스 공유를 만들어 조직 및 개별 계정의 소비자와 파라미터를 공유합니다.

```
aws ram create-resource-share \
    --name "MyParameter" \
    --resource-arns "arn:aws:ssm:us-east-2:123456789012:parameter/MyParameter" \
    --principals "arn:aws:organizations::123456789012:ou/o-63bEXAMPLE/ou-46xi-rEXAMPLE" "987654321098"
```

## 공유 파라미터 공유 중지
<a name="unshare"></a>

공유 파라미터의 공유를 중지하면 소비자 계정이 더 이상 파라미터에 액세스할 수 없습니다.

소유한 파라미터의 공유를 중지하려면 리소스 공유에서 제거해야 합니다. 이를 위해 Systems Manager 콘솔, AWS RAM 콘솔 또는 AWS CLI를 사용할 수 있습니다.

**AWS RAM 콘솔을 사용하여 소유한 파라미터 공유를 중지하려면**  
AWS RAM 사용 설명서의 [AWS RAM에서 리소스 공유 업데이트](https://docs.aws.amazon.com/ram/latest/userguide/working-with-sharing-update.html)를 참조하세요.

**AWS CLI를 사용하여 소유한 파라미터 공유를 중지하려면**  
[disassociate-resource-share](https://docs.aws.amazon.com/cli/latest/reference/ram/disassociate-resource-share.html) 명령을 사용합니다.

## 공유 파라미터 식별
<a name="identify"></a>

소유자와 소비자는 AWS CLI를 사용하여 공유된 파라미터를 식별할 수 있습니다.

**AWS CLI를 사용하여 공유 파라미터를 식별하려면**  
AWS CLI를 사용하여 공유 파라미터를 식별하려면 Systems Manager `[https://docs.aws.amazon.com/cli/latest/reference/ssm/describe-parameters.html](https://docs.aws.amazon.com/cli/latest/reference/ssm/describe-parameters.html)` 명령과 AWS RAM `[list-resources](https://docs.aws.amazon.com/cli/latest/reference/ram/list-resources.html)`명령 중에서 선택할 수 있습니다.

`describe-parameters`와 함께 `--shared` 옵션을 사용하면 명령이 사용자와 공유된 파라미터를 반환합니다.

다음은 예제입니다.

```
aws ssm describe-parameters --shared
```

## 공유 파라미터 액세스
<a name="accessing"></a>

소비자는 AWS 명령줄 도구 및 AWS SDK를 사용하여 공유 파라미터에 액세스할 수 있습니다. 소비자 계정의 경우 해당 계정과 공유된 파라미터는 **내 파라미터** 페이지에 포함되지 않습니다.

**CLI 예제: AWS CLI를 사용하여 공유 파라미터 세부 정보에 액세스**  
AWS CLI를 사용하여 공유 파라미터 세부 정보에 액세스하려면 [https://docs.aws.amazon.com/cli/latest/reference/ssm/get-parameter.html](https://docs.aws.amazon.com/cli/latest/reference/ssm/get-parameter.html) 또는 [https://docs.aws.amazon.com/cli/latest/reference/ssm/get-parameters.html](https://docs.aws.amazon.com/cli/latest/reference/ssm/get-parameters.html) 명령을 사용할 수 있습니다. 다른 계정에서 파라미터를 검색하려면 전체 파라미터 ARN을 `--name`으로 지정해야 합니다.

다음은 예입니다.

```
aws ssm get-parameter \
    --name arn:aws:ssm:us-east-2:123456789012:parameter/MySharedParameter
```

**공유 파라미터에 지원되는 통합 및 지원되지 않는 통합**  
현재 다음과 같은 통합 시나리오에서 공유 파라미터를 사용할 수 있습니다.
+ AWS CloudFormation [템플릿 파라미터](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/parameters-section-structure.html#aws-ssm-parameter-types)
+ [AWS 파라미터 및 보안 암호 Lambda 확장](ps-integration-lambda-extensions.md)
+ [Amazon Elastic Compute Cloud(EC2) 시작 템플릿](https://docs.aws.amazon.com/autoscaling/ec2/userguide/using-systems-manager-parameters.html)
+ Amazon Machine Image(AMI)에서 인스턴스를 생성하기 위한 [EC2 RunInstances 명령](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RunInstances.html)의 `ImageID` 값
+ Systems Manager의 도구인 Automation용 [런북에서 파라미터 값 검색](https://repost.aws/knowledge-center/systems-manager-parameter-store)

다음 시나리오 및 통합 서비스는 현재 공유 파라미터 사용을 지원하지 않습니다.
+ Systems Manager의 도구인 Run Command에서 [명령의 파라미터](sysman-param-runcommand.md)
+ AWS CloudFormation [동적 참조](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html)
+ AWS CodeBuild에서 [환경 변수의 값](https://docs.aws.amazon.com/codebuild/latest/userguide/build-spec-ref.html#build-spec.env.parameter-store)
+ AWS App Runner에서 [환경 변수의 값](https://docs.aws.amazon.com/apprunner/latest/dg/env-variable.html)
+ Amazon Elastic Container Service에서 [보안 암호의 값](https://docs.aws.amazon.com/AmazonECS/latest/userguide/secrets-envvar-ssm-paramstore.html)

## 파라미터 공유를 위한 권한 세트
<a name="sharing-permissions"></a>

소비자 계정은 공유하는 파라미터에 대한 읽기 전용 액세스 권한을 받습니다. 소비자는 파라미터를 업데이트하거나 삭제할 수 없습니다. 소비자는 파라미터를 제3의 계정과 공유할 수 없습니다.

파라미터 공유를 위해 AWS Resource Access Manager에서 리소스 공유를 생성할 때 두 개의 AWS 관리형 권한 집합 중에서 선택하여 이 읽기 전용 액세스 권한을 부여할 수 있습니다.

**AWSRAMDefaultPermissionSSMParameterReadOnly**  
허용된 작업: `DescribeParameters`, `GetParameter`, `GetParameters` 

**AWSRAMPermissionSSMParameterReadOnlyWithHistory**  
허용된 작업: `DescribeParameters`, `GetParameter`, `GetParameters`, `GetParameterHistory` 

**AWS RAM 사용 설명서의 [Creating a resource share in AWS RAM](https://docs.aws.amazon.com/ram/latest/userguide/working-with-sharing.html#working-with-sharing-create)에 나온 단계를 따를 때 리소스 유형으로 `Parameter Store Advanced Parameters`를 선택하고, 사용자가 파라미터 기록을 볼 수 있는지에 따라 해당 관리형 권한 중 하나를 선택합니다.

**참고**  
프로그래밍 방식으로 공유 파라미터를 검색하는 경우(예: AWS Lambda 사용) AWS Resource Access Manager API 작업을 직접 호출하는 모든 IAM 역할에 `ssm:GetResourcePolicies` 및 `ssm:PutResourcePolicy` 권한을 추가해야 할 수 있습니다.

## 공유 파라미터의 최대 처리량
<a name="throughput"></a>

Systems Manager는 [https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_GetParameter.html](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_GetParameter.html) 및 [https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_GetParameters.html](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_GetParameters.html) 작업에 대한 최대 처리량(초당 트랜잭션 수)을 제한합니다. 처리량은 개별 계정 수준에서 적용됩니다. 따라서 공유 파라미터를 사용하는 각 계정은 다른 계정의 영향을 받지 않으면서 최대 허용 처리량을 사용할 수 있습니다. 파라미터 최대 처리량에 대한 자세한 내용은 다음 항목을 참조하세요.
+ [Parameter Store 처리량 증가](https://docs.aws.amazon.com/systems-manager/latest/userguide/parameter-store-throughput.html)
+ [Amazon Web Services 일반 참조의 Systems Manager 서비스 할당량](https://docs.aws.amazon.com/general/latest/gr/ssm.html#limits_ssm)

## 공유 파라미터 요금
<a name="pricing"></a>

계정 간 공유는 고급 파라미터 티어에서만 사용할 수 있습니다. 고급 파라미터의 경우 각 고급 파라미터의 스토리지 및 API 사용량에 대해 현재 가격으로 요금이 부과됩니다. 고급 파라미터 저장은 소유 계정에 요금이 부과됩니다. 공유된 고급 파라미터에 대해 API를 호출하는 모든 소비 계정에 파라미터 사용 요금이 청구됩니다.

예를 들어 계정 A가 고급 파라미터 `MyAdvancedParameter`를 생성한 경우 해당 계정에 파라미터 저장 요금이 매월 0.05 USD 청구됩니다.

그다음 계정 A가 계정 B 및 계정 C와 `MyAdvancedParameter`를 공유합니다. 한 달 동안 세 계정이 `MyAdvancedParameter`를 호출합니다. 다음 표는 각 호출 횟수에 따라 발생하는 요금을 보여줍니다.

**참고**  
다음 표의 요금은 설명을 돕기 위한 것입니다. 현재 가격을 확인하려면 [Parameter Store의 AWS Systems Manager 가격 책정](https://aws.amazon.com/systems-manager/pricing/#Parameter_Store)을 참조하세요.


| Account | 호출 횟수 | 요금 | 
| --- | --- | --- | 
| 계정 A(소유 계정) | 호출 10,000회 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/systems-manager/latest/userguide/parameter-store-shared-parameters.html)  | 
| 계정 B(소비 계정) | 호출 20,000회 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/systems-manager/latest/userguide/parameter-store-shared-parameters.html)  | 
| 계정 C(소비 계정) | 호출 30,000회 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/systems-manager/latest/userguide/parameter-store-shared-parameters.html)  | 

## 해지된 AWS 계정에 대한 크로스 계정 액세스
<a name="closed-accounts"></a>

공유 파라미터를 소유한 AWS 계정이 해지되면 모든 소비 계정은 공유 파라미터에 대한 액세스 권한을 잃게 됩니다. 계정이 해지된 후 90일 이내에 소유 계정을 다시 열면 소비 계정은 이전에 공유한 파라미터에 다시 액세스할 수 있습니다. 해지 후 기간 동안 계정 다시 열기에 대한 자세한 내용은 AWS Account Management 참조 안내서의 [AWS 계정 해지 후 액세스](https://docs.aws.amazon.com/accounts/latest/reference/manage-acct-closing.html#accessing-after-closure)를 참조하세요.

# Run Command 명령을 사용하여 Parameter Store에서 파라미터 작업
<a name="sysman-param-runcommand"></a>

AWS Systems Manager의 도구인 Run Command에서 파라미터를 사용할 수 있습니다. 자세한 내용은 [AWS Systems Manager Run Command](run-command.md) 섹션을 참조하세요.

## 콘솔을 사용하여 문자열 파라미터 실행
<a name="param-test-console"></a>

다음 절차는 `String` 파라미터를 사용하는 명령을 실행하는 과정을 안내합니다.

**Parameter Store를 사용하여 문자열 파라미터를 실행하려면**

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

1. 탐색 창에서 **Run Command**를 선택합니다.

1. **Run command**(실행 명령)를 선택합니다.

1. **명령 문서** 목록에서 `AWS-RunPowerShellScript`(Windows) 또는 `AWS-RunShellScript`(Linux)를 선택합니다.

1. **Command parameters(명령 파라미터)**에 **echo \$1\$1ssm:*parameter-name*\$1\$1**를 입력합니다. 예를 들면 **echo \$1\$1ssm:/Test/helloWorld\$1\$1**입니다.

1. **대상** 섹션에서, 태그를 지정하거나, 수동으로 인스턴스나 엣지 디바이스를 선택하거나, 리소스 그룹을 지정하여 이 작업을 실행할 관리형 노드를 식별합니다.
**작은 정보**  
예상한 관리형 노드가 목록에 없으면 [관리형 노드 가용성 문제 해결](fleet-manager-troubleshooting-managed-nodes.md)에서 문제 해결 팁을 참조하세요.

1. **Other parameters**(다른 파라미터):
   + **Comment**(설명)에 명령에 대한 정보를 입력합니다.
   + **제한 시간(초)**에서 전체 명령 실행이 실패할 때까지 시스템이 기다리는 시간을 초 단위로 지정합니다.

1. **Rate control**(속도 제어)에서
   + **Concurrency**(동시성)에서 명령을 동시에 실행할 관리형 노드의 백분율 또는 개수를 지정합니다.
**참고**  
관리형 노드에 적용할 태그를 지정하거나, AWS 리소스 그룹을 지정하여 대상을 선택하였지만 대상으로 지정할 관리형 노드 수를 잘 모를 경우에는 백분율을 지정하여 동시에 문서를 실행할 수 있는 대상 수를 제한합니다.
   + **Error threshold**(오류 임계값)에서, 명령이 노드의 개수 또는 백분율에서 실패한 후 다른 관리형 노드에서 해당 명령의 실행을 중지할 시간을 지정합니다. 예를 들어 세 오류를 지정하면 네 번째 오류를 받았을 때 Systems Manager가 명령 전송을 중지합니다. 여전히 명령을 처리 중인 관리형 노드도 오류를 전송할 수 있습니다.

1. (선택 사항) **Output options**(출력 옵션)에서 명령 출력을 파일에 저장하려면 **Write command output to an S3 bucket**(S3 버킷에 명령 출력 쓰기) 상자를 선택합니다. 상자에 버킷 및 접두사(폴더) 이름을 입력합니다.
**참고**  
데이터를 S3 버킷에 쓰는 기능을 부여하는 S3 권한은 이 작업을 수행하는 IAM 사용자의 권한이 아니라 인스턴스에 할당된 인스턴스 프로파일(EC2 인스턴스용) 또는 IAM 서비스 역할(하이브리드 정품 인증 시스템)의 권한입니다. 자세한 내용은 [Systems Manager에 필요한 인스턴스 권한 구성](setup-instance-permissions.md)이나 [하이브리드 환경을 위한 IAM 서비스 역할 생성](hybrid-multicloud-service-role.md)을 참조하세요. 또한 지정된 S3 버킷이 다른 AWS 계정에 있는 경우 관리형 노드와 연결된 인스턴스 프로파일 또는 IAM 서비스 역할은 해당 버킷에 쓸 수 있는 권한이 있어야 합니다.

1. **SNS notifications**(SNS 알림) 섹션에서, 명령 실행 상태에 대한 알림이 전송되도록 하려면 **Enable SNS notifications**(SNS 알림 활성화) 확인란을 선택합니다.

   Run Command에 대한 Amazon SNS 알림 구성에 대한 자세한 내용은 [Amazon SNS 알림을 사용하여 Systems Manager 상태 변경 모니터링](monitoring-sns-notifications.md) 섹션을 참조하세요.

1. **Run**(실행)을 선택합니다.

1. **명령 ID** 페이지의 **대상 및 출력(Targets and outputs)** 영역에서 명령을 실행한 노드의 ID 옆에 있는 버튼을 선택한 다음, **출력 보기(View output)**를 선택합니다. 명령의 출력이 파라미터에 제공한 값(예: **This is my first parameter**)인지 확인합니다.

## AWS CLI를 사용하여 파라미터 실행
<a name="param-test-cli"></a>

**예 1: 단순 명령**  
다음 예제의 명령에는 `DNS-IP`라는 Systems Manager 파라미터가 포함되어 있습니다. 이 파라미터의 값은 단순히 노드의 IP 주소입니다. 이 예에서는 AWS Command Line Interface(AWS CLI) 명령을 사용하여 파라미터 값을 반향합니다.

------
#### [ Linux & macOS ]

```
aws ssm send-command \
    --document-name "AWS-RunShellScript" \
    --document-version "1" \
    --targets "Key=instanceids,Values=i-02573cafcfEXAMPLE" \
    --parameters "commands='echo {{ssm:DNS-IP}}'" \
    --timeout-seconds 600 \
    --max-concurrency "50" \
    --max-errors "0" \
    --region us-east-2
```

------
#### [ Windows ]

```
aws ssm send-command ^
    --document-name "AWS-RunPowerShellScript" ^
    --document-version "1" ^
    --targets "Key=instanceids,Values=i-02573cafcfEXAMPLE" ^
    --parameters "commands='echo {{ssm:DNS-IP}}'" ^
    --timeout-seconds 600 ^
    --max-concurrency "50" ^
    --max-errors "0" ^
    --region us-east-2
```

------

명령은 다음과 같은 정보를 반환합니다.

```
{
    "Command": {
        "CommandId": "c70a4671-8098-42da-b885-89716EXAMPLE",
        "DocumentName": "AWS-RunShellScript",
        "DocumentVersion": "1",
        "Comment": "",
        "ExpiresAfter": "2023-12-26T15:19:17.771000-05:00",
        "Parameters": {
            "commands": [
                "echo {{ssm:DNS-IP}}"
            ]
        },
        "InstanceIds": [],
        "Targets": [
            {
                "Key": "instanceids",
                "Values": [
                    "i-02573cafcfEXAMPLE"
                ]
            }
        ],
        "RequestedDateTime": "2023-12-26T14:09:17.771000-05:00",
        "Status": "Pending",
        "StatusDetails": "Pending",
        "OutputS3Region": "us-east-2",
        "OutputS3BucketName": "",
        "OutputS3KeyPrefix": "",
        "MaxConcurrency": "50",
        "MaxErrors": "0",
        "TargetCount": 0,
        "CompletedCount": 0,
        "ErrorCount": 0,
        "DeliveryTimedOutCount": 0,
        "ServiceRole": "",
        "NotificationConfig": {
            "NotificationArn": "",
            "NotificationEvents": [],
            "NotificationType": ""
        },
        "CloudWatchOutputConfig": {
            "CloudWatchLogGroupName": "",
            "CloudWatchOutputEnabled": false
        },
        "TimeoutSeconds": 600,
        "AlarmConfiguration": {
            "IgnorePollAlarmFailure": false,
            "Alarms": []
        },
        "TriggeredAlarms": []
    }
}
```

명령 실행을 마친 후 다음 명령을 사용하여 해당 명령에 대한 자세한 정보를 볼 수 있습니다.
+ [https://docs.aws.amazon.com/cli/latest/reference/ssm/get-command-invocation.html](https://docs.aws.amazon.com/cli/latest/reference/ssm/get-command-invocation.html) - 명령 실행에 대한 세부 정보를 확인합니다.
+ [https://docs.aws.amazon.com/cli/latest/reference/ssm/link-cli-ref-list-command-invocations.html](https://docs.aws.amazon.com/cli/latest/reference/ssm/link-cli-ref-list-command-invocations.html) - 특정 관리형 노드의 명령 실행 상태를 확인합니다.
+ [https://docs.aws.amazon.com/cli/latest/reference/ssm/link-cli-ref-list-commands.html](https://docs.aws.amazon.com/cli/latest/reference/ssm/link-cli-ref-list-commands.html) - 여러 관리형 노드의 명령 실행 상태를 확인합니다.

**예 2: `SecureString` 파라미터 값 암호화 해제**  
다음 예제 명령은 **SecurePassword**라는 `SecureString` 파라미터를 사용합니다. `parameters` 필드에서 사용되는 명령은 `SecureString` 파라미터 값을 검색하고 암호를 복호화한 다음 로컬 관리자 암호를 일반 텍스트로 전달하지 않고도 재설정합니다.

------
#### [ Linux ]

```
aws ssm send-command \
        --document-name "AWS-RunShellScript" \
        --document-version "1" \
        --targets "Key=instanceids,Values=i-02573cafcfEXAMPLE" \
        --parameters '{"commands":["secure=$(aws ssm get-parameters --names SecurePassword --with-decryption --query Parameters[0].Value --output text --region us-east-2)","echo $secure | passwd myuser --stdin"]}' \
        --timeout-seconds 600 \
        --max-concurrency "50" \
        --max-errors "0" \
        --region us-east-2
```

------
#### [ Windows ]

```
aws ssm send-command ^
        --document-name "AWS-RunPowerShellScript" ^
        --document-version "1" ^
        --targets "Key=instanceids,Values=i-02573cafcfEXAMPLE" ^
        --parameters "commands=['$secure = (Get-SSMParameterValue -Names SecurePassword -WithDecryption $True).Parameters[0].Value','net user administrator $secure']" ^
        --timeout-seconds 600 ^
        --max-concurrency "50" ^
        --max-errors "0" ^
        --region us-east-2
```

------

**예 3: SSM 문서에서 파라미터 참조**  
다음 예에서 보듯이 SSM 문서의 [*파라미터(Parameters)*] 섹션에서 Systems Manager 파라미터를 참조할 수도 있습니다.

```
{
   "schemaVersion":"2.0",
   "description":"Sample version 2.0 document v2",
   "parameters":{
      "commands" : {
        "type": "StringList",
        "default": ["{{ssm:parameter-name}}"]
      }
    },
    "mainSteps":[
       {
          "action":"aws:runShellScript",
          "name":"runShellScript",
          "inputs":{
             "runCommand": "{{commands}}"
          }
       }
    ]
}
```

SSM 문서의 `runtimeConfig` 섹션에 사용된 *로컬 파라미터*에 대한 유사한 구문을 Parameter Store 파라미터와 혼동하지 마세요. 로컬 파라미터는 Systems Manager 파라미터와 동일하지 않습니다. 로컬 파라미터는 `ssm:` 접두사가 없다는 점에서 Systems Manager 파라미터와 구별됩니다.

```
"runtimeConfig":{
        "aws:runShellScript":{
            "properties":[
                {
                    "id":"0.aws:runShellScript",
                    "runCommand":"{{ commands }}",
                    "workingDirectory":"{{ workingDirectory }}",
                    "timeoutSeconds":"{{ executionTimeout }}"
```

**참고**  
SSM 문서는 `SecureString` 파라미터에 대한 참조를 지원하지 않습니다. 다시 말해 `SecureString` 등과 함께 Run Command 파라미터를 사용하기 위해서는 다음 예제에서와 같이 Run Command로 전달하기 전에 파라미터 값을 검색해야 합니다.  

```
value=$(aws ssm get-parameters --names parameter-name --with-decryption)
```

```
aws ssm send-command \
    --name AWS-JoinDomain \
    --parameters password=$value \
    --instance-id instance-id
```

```
aws ssm send-command ^
    --name AWS-JoinDomain ^
    --parameters password=$value ^
    --instance-id instance-id
```

```
$secure = (Get-SSMParameterValue -Names parameter-name -WithDecryption $True).Parameters[0].Value | ConvertTo-SecureString -AsPlainText -Force
```

```
$cred = New-Object System.Management.Automation.PSCredential -argumentlist user-name,$secure
```

# Parameter Store의 네이티브 파라미터 지원을 Amazon Machine Image ID에 사용
<a name="parameter-store-ec2-aliases"></a>

`String` 파라미터를 생성할 때 이제 *데이터 형식*을 `aws:ec2:image`로 지정하여 입력한 파라미터 값이 유효한 Amazon Machine Image(AMI) ID 형식인지 확인할 수 있습니다.

AMI ID 형식을 지원하므로 프로세스에서 사용하려는 AMI가 변경될 때마다 모든 스크립트 및 템플릿을 새 ID로 업데이트하지 않아도 됩니다. `aws:ec2:image` 데이터 형식을 사용하여 파라미터를 생성하고 해당 값에 AMI의 ID를 입력할 수 있습니다. 이것은 지금 새 인스턴스를 생성하려는 AMI입니다. 그런 다음 템플릿, 명령 및 스크립트에서 이 파라미터를 참조합니다.

예를 들어 Amazon Elastic Compute Cloud(Amazon EC2) `run-instances` 명령을 실행할 때 선호하는 AMI ID가 포함된 파라미터를 지정할 수 있습니다.

**참고**  
이 명령을 실행하는 사용자에게 `ssm:GetParameters` API 작업이 포함된 AWS Identity and Access Management(IAM) 권한이 있어야 파라미터 값을 검증할 수 있습니다. 그렇지 않으면 파라미터 생성 프로세스가 실패합니다.

------
#### [ Linux & macOS ]

```
aws ec2 run-instances \
    --image-id resolve:ssm:/golden-ami \
    --count 1 \
    --instance-type t2.micro \
    --key-name my-key-pair \
    --security-groups my-security-group
```

------
#### [ Windows ]

```
aws ec2 run-instances ^
    --image-id resolve:ssm:/golden-ami ^
    --count 1 ^
    --instance-type t2.micro ^
    --key-name my-key-pair ^
    --security-groups my-security-group
```

------

또한 Amazon EC2 콘솔을 사용하여 인스턴스를 생성할 때 원하는 AMI를 선택할 수 있습니다. 자세한 내용은 *Amazon EC2 사용 설명서*의 [AMI를 찾기 위해 Systems Manager 파라미터 사용](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/finding-an-ami.html#using-systems-manager-parameter-to-find-AMI)을 참조하세요.

인스턴스 생성 워크플로에서 다른 AMI를 사용해야 하는 경우 파라미터를 새 AMI 값으로 업데이트만 하면 되며 Parameter Store는 올바른 형식의 ID를 입력했는지 다시 검증합니다.

## `aws:ec2:image` 데이터 유형의 파라미터를 생성할 수 있는 권한 부여
<a name="parameter-store-ec2-iam"></a>

AWS Identity and Access Management(IAM) 정책을 사용하여 Parameter Store API 작업 및 콘텐츠에 대한 사용자 액세스를 제공하거나 제한할 수 있습니다.

`aws:ec2:image` 데이터 유형 파라미터를 만들려면 사용자에게 `ssm:PutParameter` 및 `ec2:DescribeImages` 권한이 모두 있어야 합니다.

다음 예제 정책은 사용자에게 `aws:ec2:image`에 대한 `PutParameter` API 작업을 호출할 수 있는 권한을 부여합니다. 이는 사용자가 `aws:ec2:image` 데이터 형식의 파라미터를 시스템에 추가할 수 있음을 의미합니다.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "ssm:PutParameter",
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": "ec2:DescribeImages",
            "Resource": "*"
        }
    ]
}
```

------

## AMI 형식 검증이 수행되는 방법
<a name="parameter-ami-validation"></a>

파라미터에 대한 데이터 형식으로 `aws:ec2:image`를 지정하면 Systems Manager는 파라미터를 즉시 생성하지 않습니다. 대신, 비동기 검증 작업을 수행하여 파라미터 값이 AMI ID의 형식 지정 요구 사항을 충족하는지와 지정된 AMI를 AWS 계정에서 사용할 수 있는지 확인합니다.

검증 작업이 완료되기 전에 파라미터 버전 번호가 생성될 수 있습니다. 파라미터 버전 번호가 생성되더라도 작업이 완료되지 않을 수 있습니다.

파라미터가 생성되었는지 모니터링하려면 Amazon EventBridge를 사용하여 파라미터 작업의 `create` 및 `update`에 대한 알림을 받는 것이 좋습니다. 이러한 알림은 파라미터 작업의 성공 여부를 보고합니다. 작업이 실패하는 경우 실패의 원인을 나타내는 오류 메시지가 알림에 포함되어 있습니다. 

```
{
    "version": "0",
    "id": "eed4a719-0fa4-6a49-80d8-8ac65EXAMPLE",
    "detail-type": "Parameter Store Change",
    "source": "aws.ssm",
    "account": "111122223333",
    "time": "2020-05-26T22:04:42Z",
    "region": "us-east-2",
    "resources": [
        "arn:aws:ssm:us-east-2:111122223333:parameter/golden-ami"
    ],
    "detail": {
        "exception": "Unable to Describe Resource",
        "dataType": "aws:ec2:image",
        "name": "golden-ami",
        "type": "String",
        "operation": "Create"
    }
}
```

EventBridge에서 Parameter Store 이벤트 구독에 대한 자세한 내용은 [Parameter Store 이벤트 기반 알림 설정 또는 작업 트리거](sysman-paramstore-cwe.md) 섹션을 참조하세요.

# Parameter Store에서 파라미터 삭제
<a name="deleting-parameters"></a>

이 주제에서는 AWS Systems Manager의 도구인 Parameter Store에서 생성한 파라미터를 삭제하는 방법을 설명합니다.

**주의**  
파라미터를 삭제하면 해당 파라미터의 모든 버전이 제거됩니다. 삭제한 파라미터와 해당 버전은 복원할 수 없습니다.

**콘솔을 사용하여 파라미터를 삭제하려면**

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

1. 탐색 창에서 **Parameter Store**를 선택합니다.

1. **내 파라미터(My parameters)** 탭에서 삭제할 각 파라미터 옆의 확인란을 선택합니다.

1. **Delete**(삭제)를 선택합니다.

1. 확인 대화 상자에서 **파라미터 삭제(Delete parameters)**를 선택합니다.

**AWS CLI를 사용하여 파라미터를 삭제하려면**
+ 다음 명령 실행:

  ```
  aws ssm delete-parameter --name "my-parameter"
  ```

  *my-parameter*를 삭제할 파라미터의 이름으로 바꿉니다.

  `delete-parameter` 명령과 함께 사용할 수 있는 모든 옵션에 대한 자세한 내용은 AWS CLI 명령 참조의 AWS Systems Manager 섹션에 있는 [https://docs.aws.amazon.com/cli/latest/reference/ssm/delete-parameter.html](https://docs.aws.amazon.com/cli/latest/reference/ssm/delete-parameter.html)를 참조하세요.