

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

# AWS Systems Manager Parameter Store
<a name="systems-manager-parameter-store"></a>

AWS Systems Manager의 도구인 Parameter Store는 구성 데이터 관리 및 비밀 관리를 위한 안전한 계층적 스토리지를 제공합니다. 암호, 데이터베이스 문자열, Amazon Machine Image(AMI) ID, 라이선스 코드와 같은 데이터를 파라미터 값으로 저장할 수 있습니다. 값을 일반 텍스트 또는 암호화된 데이터로 저장할 수 있습니다. 파라미터를 생성할 때 지정한 고유 이름을 사용하여 스크립트, 명령, SSM 문서, 구성 및 자동화 워크플로에서 Systems Manager 파라미터를 참조할 수 있습니다. Parameter Store를 시작하려면 [Systems Manager 콘솔](https://console.aws.amazon.com//systems-manager/parameters)을 엽니다. 탐색 창에서 **Parameter Store**를 선택합니다.

Parameter Store는 Secrets Manager와도 통합되어 있습니다. 이미 Parameter Store 파라미터 참조를 지원하는 다른 AWS 서비스을(를) 사용할 때 Secrets Manager 암호를 검색할 수 있습니다. 자세한 내용은 [Parameter Store 파라미터에서 AWS Secrets Manager 암호 참조](integration-ps-secretsmanager.md) 섹션을 참조하세요.

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

## Parameter Store가 조직에 주는 이점은 무엇인가요?
<a name="parameter-store-benefits"></a>

Parameter Store에서 제공하는 이점은 다음과 같습니다.
+ 안전하고 확장 가능한 호스팅 방식 암호 관리 서비스를 사용합니다(관리할 서버가 없음).
+ 데이터를 코드와 격리하여 보안 태세를 개선합니다.
+ 구성 데이터 및 암호화된 문자열을 계층으로 저장하고 버전을 추적합니다.
+ 세분화된 수준에서 액세스를 제어하고 감사합니다.
+ Parameter Store는 AWS 리전의 여러 가용 영역에서 호스팅되기 때문에 파라미터를 안정적으로 저장합니다.

## Parameter Store는 누가 사용해야 하나요?
<a name="parameter-store-who"></a>
+ 구성 데이터를 중앙 집중식으로 관리하려는 모든 AWS 고객.
+ 다양한 로그인 및 참조 스트림을 저장하려는 소프트웨어 개발자.
+ 자신의 보안 암호와 암호가 변경되거나 변경되지 않을 때 알림을 받으려는 관리자.

## Parameter Store에는 어떤 기능이 있나요?
<a name="parameter-store-features"></a>
+ **변경 알림**

  파라미터 및 파라미터 정책 모두에 대해 변경 알림을 구성하고 자동화된 작업을 호출할 수 있습니다. 자세한 내용은 [Parameter Store 이벤트 기반 알림 설정 또는 작업 트리거](sysman-paramstore-cwe.md) 섹션을 참조하세요.
+ **파라미터 구성**

  파라미터에 태그를 지정하면 파라미터에 지정한 태그를 토대로 하나 이상의 파라미터를 개별적으로 식별할 수 있습니다. 예를 들어, 특정 환경이나 부서에 대한 파라미터에 태그를 지정할 수 있습니다.
+ **레이블 버전**

  레이블을 생성하여 파라미터 버전에 대한 별칭을 연결할 수 있습니다. 레이블이 있으면 파라미터 버전이 여러 개일 때 버전의 용도를 기억하기 쉽습니다.
+ **데이터 유효성 검사**

  Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스를 가리키는 파라미터를 생성할 수 있으며 Parameter Store는 이러한 파라미터를 검증하여 예상 리소스 유형을 참조하는지, 리소스가 존재하는지, 고객에게 리소스 사용 권한이 있는지 확인합니다. 예를 들어 `aws:ec2:image` 데이터 형식의 값으로 Amazon Machine Image(AMI) ID가 있는 파라미터를 생성할 수 있습니다. Parameter Store은 파라미터 값이 AMI ID에 대한 형식 지정 요구 사항을 충족하고 지정된 AMI가 AWS 계정에서 사용 가능한지 확인하기 위해 비동기 검증 작업을 수행합니다.
+ **참조 암호**

  이미 Parameter Store 파라미터 참조를 지원하는 다른 AWS 서비스을(를) 사용할 때 Secrets Manager 암호를 검색할 수 있도록 Parameter Store을(를) AWS Secrets Manager와(과) 통합했습니다.
+ **다른 계정과 파라미터 공유**

  선택적으로 구성 데이터를 단일 AWS 계정으로 중앙 집중화하고 파라미터에 액세스해야 하는 다른 계정과 파라미터를 공유할 수 있습니다.
+ **다른 AWS 서비스에서 액세스 가능**

  Parameter Store 파라미터와 기타 Systems Manager 도구 및 AWS 서비스를 사용하여 중앙 스토어에서 암호와 구성 데이터를 검색할 수 있습니다. 파라미터는 AWS Systems Manager의 도구인 Run Command, Automation 및 State Manager 등과 같은 Systems Manager 도구를 사용합니다. 또한 다음을 비롯한 다양한 다른 AWS 서비스에서도 파라미터를 참조할 수 있습니다.
  + Amazon Elastic Compute Cloud(Amazon EC2)
  + Amazon Elastic Container Service(Amazon ECS)
  + AWS Secrets Manager
  + AWS Lambda
  + AWS CloudFormation
  + AWS CodeBuild
  + AWS CodePipeline
  + AWS CodeDeploy
+ **다른 AWS 서비스와(과)의 통합**

  암호화, 알림, 모니터링 및 감사 기능을 위해 다음 AWS 서비스와(과)의 통합을 구성합니다.
  + AWS Key Management Service (AWS KMS)
  + Amazon Simple Notification Service(Amazon SNS)
  + Amazon CloudWatch: 자세한 내용은 [파라미터 및 파라미터 정책에 대해 EventBridge 구성](sysman-paramstore-cwe.md#cwe-parameter-changes) 섹션을 참조하세요.
  + Amazon EventBridge: 자세한 내용은 [Amazon SNS 알림을 사용하여 Systems Manager 상태 변경 모니터링](monitoring-sns-notifications.md) 및 [참조: Systems Manager용 Amazon EventBridge 이벤트 패턴 및 유형](reference-eventbridge-events.md)를 참조하세요.
  + AWS CloudTrail: 자세한 내용은 [AWS CloudTrail를 사용하여 AWS Systems Manager API 호출 로깅](monitoring-cloudtrail-logs.md) 섹션을 참조하세요.

## 파라미터란 무엇인가요?
<a name="what-is-a-parameter"></a>

Parameter Store 파라미터는 텍스트 블록, 이름 목록, 암호, AMI ID, 라이선스 키 등과 같이 Parameter Store에 저장되는 모든 데이터입니다. 스크립트, 명령 및 SSM 문서에서 이 데이터를 중앙에서 안전하게 참조할 수 있습니다.

파라미터를 참조할 때 다음 규칙을 사용하여 파라미터 이름을 지정합니다.

\$1\$1`ssm:parameter-name`\$1\$1

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

Parameter Store는 `String`, `StringList`, `SecureString` 등 세 가지 유형의 파라미터를 지원합니다.

단, 파라미터를 생성하거나 업데이트할 때 파라미터 값을 일반 텍스트로 입력해야 하며 Parameter Store는 입력한 텍스트에 대해 검증을 수행하지 않습니다. 그러나 `String` 파라미터의 경우 데이터 형식을 `aws:ec2:image`로 지정할 수 있으며 Parameter Store는 입력한 값이 Amazon EC2 AMI에 적합한 형식인지 검증합니다(예: `ami-12345abcdeEXAMPLE`).

### 파라미터 유형: String
<a name="parameter-type-string"></a>

기본적으로 `String` 파라미터의 값은 입력한 텍스트 블록으로 구성됩니다. 예제:
+ `abc123`
+ `Example Corp`
+ `<img src="images/bannerImage1.png"/>`

### 파라미터 유형: StringList
<a name="parameter-type-stringlist"></a>

`StringList` 파라미터의 값에는 다음 예제와 같이 쉼표로 구분된 값 목록이 포함되어 있습니다.

`Monday,Wednesday,Friday`

`CSV,TSV,CLF,ELF,JSON`

### 파라미터 유형: SecureString
<a name="parameter-type-securestring"></a>

`SecureString` 파라미터의 값은 안전한 방식으로 저장되고 참조되어야 하는 모든 민감한 데이터를 뜻합니다. 암호나 라이선스 키처럼 사용자가 일반 텍스트로 수정하거나 참조해서는 안 되는 데이터가 있는 경우 `SecureString` 데이터 형식을 사용하여 이 파라미터를 생성합니다.

**중요**  
`String` 또는 `StringList` 파라미터에 중요한 데이터를 저장하지 않습니다. 암호화된 상태로 유지해야 하는 모든 중요한 데이터의 경우 `SecureString` 파라미터 유형만 사용하십시오.  
자세한 내용은 [AWS CLI를 사용하여 SecureString 파라미터 생성](param-create-cli.md#param-create-cli-securestring) 섹션을 참조하세요.

다음 시나리오에 `SecureString` 파라미터를 사용하는 것이 좋습니다.
+ 명령, 함수, 에이전트 로그 또는 CloudTrail 로그에 일반 텍스트로 값을 노출하지 않고 AWS 서비스 전반에 걸쳐 데이터/파라미터를 사용하고 싶은 경우.
+ 민감한 데이터에 액세스하는 대상을 제어하고 싶은 경우.
+ 민감한 데이터에 액세스하는 시점을 감사하고 싶은 경우(CloudTrail).
+ 민감한 데이터를 암호화하고 싶은 경우와 자체 암호화 키로 액세스를 관리하고 싶은 경우.

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

암호, 애플리케이션 암호, 기밀 구성 데이터 또는 보호가 필요한 기타 유형의 데이터와 같이 암호화하려는 텍스트 데이터에 `SecureString` 파라미터 유형을 사용할 수 있습니다. `SecureString` 데이터는 AWS KMS 키를 사용하여 암호화되고 복호화합니다. AWS에서 제공하는 기본 KMS 키를 사용하거나 자체 AWS KMS key를 생성하여 사용할 수 있습니다. (`SecureString` 파라미터에 대한 사용자 액세스를 제한하려면 고유의 AWS KMS key를 사용합니다. 자세한 내용은 [AWS 기본 키 및 고객 관리형 키 사용에 대한 IAM 권한](sysman-paramstore-access.md#ps-kms-permissions) 섹션을 참조하세요.)

다른 AWS 서비스와(과) 함께 `SecureString` 파라미터를 사용할 수도 있습니다. 다음 예에서는 Lambda 함수가 [GetParameters](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_GetParameters.html) API를 사용하여 `SecureString` 파라미터를 검색합니다.

```
import json
import boto3
ssm = boto3.client('ssm', 'us-east-2')
def get_parameters():
    response = ssm.get_parameters(
        Names=['LambdaSecureString'],WithDecryption=True
    )
    for parameter in response['Parameters']:
        return parameter['Value']
        
def lambda_handler(event, context):
    value = get_parameters()
    print("value1 = " + value)
    return value  # Echo back the first key value
```

**AWS KMS 암호화 및 요금**  
파라미터를 생성할 때 `SecureString` 파라미터 형식을 선택하면 Systems Manager가 AWS KMS를 사용하여 파라미터 값을 암호화합니다.

**중요**  
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)를 참조하세요.

`SecureString` 파라미터 생성 시 Parameter Store에서 비용이 부과되지 않지만 AWS KMS 암호화 사용에 대한 요금이 적용됩니다. 자세한 내용은 [AWS Key Management Service 요금](https://aws.amazon.com/kms/pricing)을 참조하십시오.

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)을 참조하십시오.

**참고**  
AWS 관리형 키를 보려면 AWS KMS `DescribeKey` 작업을 사용합니다. 이 AWS Command Line Interface(AWS CLI) 예제에서는 `DescribeKey`를 사용하여 AWS 관리형 키를 봅니다.  

```
aws kms describe-key --key-id alias/aws/ssm
```

**추가 정보**  
+ [Parameter Store에서 SecureString 파라미터를 생성하고 도메인에 노드 조인(PowerShell)](sysman-param-securestring-walkthrough.md)
+ [Parameter Store를 사용하여 CodeDeploy의 암호 및 구성 데이터에 안전하게 액세스](https://aws.amazon.com/blogs/mt/use-parameter-store-to-securely-access-secrets-and-config-data-in-aws-codedeploy/)
+ [Amazon EC2 Systems Manager Parameter Store에 대한 흥미로운 글](https://aws.amazon.com/blogs/mt/interesting-articles-on-ec2-systems-manager-parameter-store/)

## 파라미터 크기 제한
<a name="parameter-size-limits"></a>

Parameter Store에서는 사용하는 파라미터 계층에 따라 파라미터 값에 대한 크기 제한이 다릅니다.
+ **표준 파라미터**: 최대 값 크기 4KB
+ **고급 파라미터**: 최대 값 크기 8KB

4KB보다 큰 파라미터 값을 저장해야 하는 경우 고급 파라미터 계층을 사용해야 합니다. 고급 파라미터는 추가 기능을 제공하지만 AWS 계정에 요금이 부과됩니다. 파라미터 계층 및 해당 기능에 대한 자세한 내용은 [파라미터 티어 관리](parameter-store-advanced-parameters.md) 섹션을 참조하세요.

Parameter Store 할당량 및 제한의 전체 목록은 *AWS 일반 참조*의 [AWS Systems Manager endpoints and quotas](https://docs.aws.amazon.com/general/latest/gr/ssm.html#parameter-store)를 참조하세요.

# Parameter Store 설정
<a name="parameter-store-setting-up"></a>

AWS Systems Manager의 도구인 Parameter Store에서 파라미터를 설정하기 전에 먼저 계정에 있는 사용자에게 지정한 작업을 수행할 수 있는 권한을 제공하는 AWS Identity and Access Management(IAM) 정책을 구성합니다.

이 섹션에서는 IAM 콘솔을 사용하여 수동으로 이러한 정책을 구성하는 방법과 이러한 정책을 사용자 및 사용자 그룹에 할당하는 방법에 대한 정보를 제공합니다. 또한 관리형 노드에서 실행될 수 있는 파라미터 작업을 제어하는 정책을 생성하고 할당할 수 있습니다.

이 섹션에서는 Systems Manager 파라미터 변경 사항에 대한 알림을 받을 수 있는 Amazon EventBridge 규칙을 생성하는 방법에 대한 정보도 제공합니다. 또한 EventBridge 규칙을 사용하면 Parameter Store의 변경 사항을 기준으로 AWS에서 다른 작업을 호출할 수 있습니다.

**Topics**
+ [

# IAM 정책을 사용하여 Parameter Store 파라미터에 대한 액세스 제한
](sysman-paramstore-access.md)
+ [

# 파라미터 티어 관리
](parameter-store-advanced-parameters.md)
+ [

# Parameter Store 처리량 증가 또는 재설정
](parameter-store-throughput.md)
+ [

# Parameter Store 이벤트 기반 알림 설정 또는 작업 트리거
](sysman-paramstore-cwe.md)

# IAM 정책을 사용하여 Parameter Store 파라미터에 대한 액세스 제한
<a name="sysman-paramstore-access"></a>

AWS Identity and Access Management(IAM)를 사용하여 AWS Systems Manager 파라미터에 대한 액세스를 제한합니다. 구체적으로 말하면, 다음 API 작업에 대한 액세스를 제한하는 IAM 정책을 생성합니다.
+ [DeleteParameter](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_DeleteParameter.html)
+ [DeleteParameters](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_DeleteParameters.html)
+ [DescribeParameters](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_DescribeParameters.html)
+ [GetParameter](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_GetParameter.html)
+ [GetParameters](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_GetParameters.html)
+ [GetParameterHistory](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_GetParameterHistory.html)
+ [GetParametersByPath](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_GetParametersByPath.html)
+ [PutParameter](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_PutParameter.html)

IAM 정책을 사용하여 Systems Manager 파라미터에 대한 액세스를 제한할 때는 *제한적인* IAM 정책을 생성하고 사용하는 것이 좋습니다. 예를 들어 다음 정책을 통해 사용자는 제한된 리소스에 대한 `DescribeParameters` 및 `GetParameters` API 작업을 호출할 수 있습니다. 즉, 사용자가 `prod-*`로 시작하는 모든 파라미터를 사용하고 관련 정보를 얻을 수 있습니다.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ssm:DescribeParameters"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "ssm:GetParameters"
            ],
            "Resource": "arn:aws:ssm:us-east-1:111122223333:parameter/prod-*"
        }
    ]
}
```

------

**중요**  
경로에 대해 액세스 권한이 있는 사용자는 해당 경로의 모든 수준에 액세스할 수 있습니다. 예를 들어 `/a` 경로에 대한 액세스 권한이 있는 사용자는 `/a/b`에도 액세스할 수 있습니다. 사용자가 IAM에서 파라미터 `/a/b`에 대한 액세스를 명시적으로 거부한 경우에도 `/a`에 대해 재귀적으로 `GetParametersByPath` API 작업을 호출하고 `/a/b`를 볼 수 있습니다.

신뢰할 수 있는 관리자에게는 다음 예와 같은 정책을 사용하여 모든 Systems Manager 파라미터 API 작업에 액세스할 수 있는 권한을 부여할 수 있습니다. 이 정책은 사용자에게 `dbserver-prod-*`로 시작하는 모든 프로덕션 파라미터에 완전히 액세스할 수 있는 권한을 제공합니다.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ssm:PutParameter",
                "ssm:DeleteParameter",
                "ssm:GetParameterHistory",
                "ssm:GetParametersByPath",
                "ssm:GetParameters",
                "ssm:GetParameter",
                "ssm:DeleteParameters"
            ],
            "Resource": "arn:aws:ssm:us-east-1:111122223333:parameter/dbserver-prod-*"
        },
        {
            "Effect": "Allow",
            "Action": "ssm:DescribeParameters",
            "Resource": "*"
        }
    ]
}
```

------

## 권한 거부
<a name="sysman-paramstore-deny-permissions"></a>

각 API는 고유하며 개별적으로 허용하거나 거부할 수 있는 고유한 작업과 권한을 가집니다. 어떠한 정책의 명시적 거부도 허용을 무시합니다.

**참고**  
기본 AWS Key Management Service(AWS KMS) 키에는 AWS 계정 내의 모든 IAM 보안 주체에 대해 `Decrypt` 권한이 있습니다. 계정의 `SecureString` 파라미터에 대해 여러 액세스 수준을 사용하려는 경우 기본 키를 사용하지 않는 것이 좋습니다.

파라미터 값을 검색하는 모든 API 작업이 동일하게 동작하게 하려면 정책에서 `GetParameter*`와 같은 패턴을 사용합니다. 다음 예에서는 `prod-*`로 시작하는 모든 파라미터에 대해 `GetParameter`, `GetParameters`, `GetParameterHistory` 및 `GetParametersByPath`를 거부하는 방법을 보여줍니다.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Deny",
            "Action": [
                "ssm:GetParameter*"
            ],
            "Resource": "arn:aws:ssm:us-east-1:111122223333:parameter/prod-*"
        }
    ]
}
```

------

다음 예에서는 사용자가 `prod-*`로 시작하는 모든 파라미터에 대해 다른 명령을 수행하도록 허용하면서 일부 명령을 거부하는 방법을 보여줍니다.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Deny",
            "Action": [
                "ssm:PutParameter",
                "ssm:DeleteParameter",
                "ssm:DeleteParameters",
                "ssm:DescribeParameters"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "ssm:GetParametersByPath",
                "ssm:GetParameters",
                "ssm:GetParameter",
                "ssm:GetParameterHistory"
            ],
            "Resource": "arn:aws:ssm:us-east-1:111122223333:parameter/prod-*"
        }
    ]
}
```

------

**참고**  
파라미터 기록에는 현재 파라미터를 포함하여 모든 파라미터 버전이 포함됩니다. 따라서 `GetParameter`, `GetParameters` 및 `GetParameterByPath`에 대한 사용자 권한은 거부되었지만 `GetParameterHistory`에 대한 권한은 허용된 경우 `GetParameterHistory`를 사용하여 `SecureString` 파라미터를 포함한 현재 파라미터를 볼 수 있습니다.

## 노드에서 특정 파라미터만 실행하도록 허용
<a name="sysman-paramstore-access-inst"></a>

관리형 노드에서 사용자가 지정한 파라미터만 실행할 수 있도록 액세스를 제어할 수 있습니다.

파라미터를 생성할 때 `SecureString` 파라미터 유형을 선택하면 Systems Manager가 AWS KMS를 사용하여 파라미터 값을 암호화합니다. AWS KMS는 AWS 관리형 키 또는 고객 관리형 키를 사용하여 값을 암호화합니다. AWS KMS 및 AWS KMS key에 대한 자세한 내용은 *[AWS Key Management Service Developer Guide](https://docs.aws.amazon.com/kms/latest/developerguide/)*를 참조하세요.

AWS CLI에서 다음 명령을 실행하여 AWS 관리형 키를 볼 수 있습니다.

```
aws kms describe-key --key-id alias/aws/ssm
```

다음 예에서는 노드가 `prod-`로 시작하는 파라미터에 대해서만 파라미터 값을 가져오도록 허용합니다. 파라미터가 `SecureString` 파라미터이면 노드가 AWS KMS를 사용하여 문자열을 복호화합니다.

**참고**  
앞의 예에서와 같은 인스턴스 정책이 IAM의 인스턴스 역할에 할당됩니다. 사용자 및 인스턴스에 정책을 할당하는 방법을 포함하여 Systems Manager 기능 액세스를 구성하는 방법에 대한 자세한 내용은 [Systems Manager를 사용한 EC2 인스턴스 관리](systems-manager-setting-up-ec2.md) 섹션을 참조하세요.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ssm:GetParameters"
            ],
            "Resource": [
                "arn:aws:ssm:us-east-1:111122223333:parameter/prod-*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "kms:Decrypt"
            ],
            "Resource": [
                "arn:aws:kms:us-east-1:111122223333:key/4914ec06-e888-4ea5-a371-5b88eEXAMPLE"
            ]
        }
    ]
}
```

------

## AWS 기본 키 및 고객 관리형 키 사용에 대한 IAM 권한
<a name="ps-kms-permissions"></a>

Parameter Store `SecureString` 파라미터는 AWS KMS 키를 사용하여 암호화되고 복호화됩니다. AWS KMS key 또는 AWS에서 제공하는 기본 KMS 키를 사용하여 `SecureString` 파라미터를 암호화하도록 선택할 수 있습니다.

고객 관리형 키를 사용하는 경우, 파라미터 또는 파라미터 경로에 대한 사용자 액세스 권한을 부여하는 IAM 정책에서 키에 대한 명시적 `kms:Encrypt` 권한을 제공해야 합니다. 예를 들어 다음 정책은 사용자가 지정된 AWS 리전 및 AWS 계정에서 `prod-`로 시작하는 `SecureString` 파라미터를 생성, 업데이트 및 확인할 수 있도록 허용합니다.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ssm:PutParameter",
                "ssm:GetParameter",
                "ssm:GetParameters"
            ],
            "Resource": [
                "arn:aws:ssm:us-east-1:111122223333:parameter/prod-*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "kms:Decrypt",
                "kms:Encrypt",
                "kms:GenerateDataKey"
            ],
            "Resource": [
                "arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-12345EXAMPLE"
            ]
        }
    ]
}
```

------

**참고**  
지정된 고객 관리형 키를 사용하여 암호화된 고급 파라미터를 만들려면 `kms:GenerateDataKey` 권한이 필요합니다.

이와 대조적으로 고객 계정 내의 모든 사용자는 기본 AWS 관리형 키에 액세스할 수 있습니다. 이 기본 키를 사용하여 `SecureString` 파라미터를 암호화하고 사용자가 `SecureString` 파라미터로 작업하지 않도록 하려면, 다음 정책 예제와 같이 IAM 정책에서 기본 키에 대한 액세스를 명시적으로 거부해야 합니다.

**참고**  
[AWS 관리형 키](https://console.aws.amazon.com/kms/home#/kms/defaultKeys) 페이지의 AWS KMS 콘솔에서 기본 키의 Amazon 리소스 이름(ARN)을 찾을 수 있습니다. 기본 키는 **별칭(Alias)** 열에 `aws/ssm`으로 식별됩니다.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Deny",
            "Action": [
                "kms:Decrypt",
                "kms:GenerateDataKey"
            ],
            "Resource": [
                "arn:aws:kms:us-east-1:111122223333:key/abcd1234-ab12-cd34-ef56-abcdeEXAMPLE"
            ]
        }
    ]
}
```

------

계정의 `SecureString` 파라미터에 대한 세분화된 액세스 제어가 필요한 경우 고객 관리형 키를 사용하여 이러한 파라미터에 대한 액세스를 보호하고 제한해야 합니다. 또한 AWS CloudTrail를 사용하여 `SecureString` 파라미터 활동을 모니터링하는 것이 좋습니다.

자세한 내용은 다음 주제를 참조하세요.
+ *IAM 사용 설명서*의 [정책 평가 로직](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html)
+ *AWS Key Management Service Developer Guide*의 [Using key policies in AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html)
+ *AWS CloudTrail 사용 설명서*의 [CloudTrail 이벤트 기록을 사용하여 이벤트 보기](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/view-cloudtrail-events.html)

# 파라미터 티어 관리
<a name="parameter-store-advanced-parameters"></a>

AWS Systems Manager의 도구인 Parameter Store에는 *표준 파라미터*와 *고급 파라미터*가 포함됩니다. 표준 파라미터 티어(기본 티어) 또는 고급 파라미터 티어에서 사용하도록 파라미터를 개별적으로 구성할 수 있습니다.

언제든 표준 파라미터를 고급 파라미터로 변경할 수 있지만 고급 파라미터를 표준 파라미터로 되돌릴 수 없습니다. 이는 고급 파라미터를 표준 파라미터로 되돌리면 시스템이 파라미터의 크기를 8KB에서 4KB로 자르기 때문에 데이터가 손실을 일으키기 때문입니다. 되돌리면 파라미터에 연결된 모든 정책도 제거됩니다. 또한 고급 파라미터는 표준 파라미터와 다른 암호화 형식을 사용합니다. 자세한 내용은 AWS Key Management Service 개발자 안내서에서 [AWS Systems Manager   Parameter Store가 AWS KMS를 사용하는 방식](https://docs.aws.amazon.com/kms/latest/developerguide/services-parameter-store.html)을 참조하세요.

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

다음 표에서는 여러 티어의 차이점을 설명합니다.


****  

|  | 표준 | Advanced | 
| --- | --- | --- | 
|  허용되는 총 파라미터 수 (AWS 계정 및 AWS 리전당)  |  10,000개  |  100,000건  | 
|  파라미터 값의 최대 크기  |  4KB  |  8KB  | 
|  파라미터 정책 사용 가능  |  아니요  |  예 자세한 내용은 [Parameter Store에서 파라미터 정책 할당](parameter-store-policies.md) 섹션을 참조하세요.  | 
|  비용  |  추가 요금 없음  |  요금 적용 자세한 내용은 [Parameter Store에 대한 AWS Systems Manager 요금](https://aws.amazon.com/systems-manager/pricing/#Parameter_Store)을 참조하세요.  | 

**Topics**
+ [

## 기본 파라미터 티어 지정
](#ps-default-tier)
+ [

## 표준 파라미터를 고급 파라미터로 변경
](#parameter-store-advanced-parameters-enabling)

## 기본 파라미터 티어 지정
<a name="ps-default-tier"></a>

파라미터 생성 또는 업데이트(즉 `[https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_PutParameter.html](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_PutParameter.html)` 작업) 요청에 대해 파라미터 티어를 지정하여 요청에 사용할 수 있습니다. 다음은 AWS Command Line Interface(AWS CLI) 사용을 보여주는 예입니다.

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

```
aws ssm put-parameter \
    --name "default-ami" \
    --type "String" \
    --value "t2.micro" \
    --tier "Standard"
```

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

```
aws ssm put-parameter ^
    --name "default-ami" ^
    --type "String" ^
    --value "t2.micro" ^
    --tier "Standard"
```

------

요청에서 티어를 지정할 때마다 Parameter Store이 요청에 따라 파라미터를 생성하거나 업데이트합니다. 그러나 요청에서 티어를 명시적으로 지정하지 않는 경우 Parameter Store 기본 티어 설정이 파라미터가 생성되는 티어를 결정합니다.

Parameter Store 사용을 시작할 때 표준 파라미터 티어이 기본 티어입니다. 고급 파라미터 티어를 사용하는 경우 다음 중 하나를 기본으로 지정할 수 있습니다.
+ **고급**: 이 옵션을 사용하면 파라미터 스토어가 모든 요청을 고급 파라미터로 평가합니다.
+ [**지능형 계층화(Intelligent-Tiering)**]: 이 옵션을 사용하면 Parameter Store가 각 요청을 평가하여 파라미터가 표준인지 아니면 고급인지 결정합니다.

  요청에 고급 파라미터를 필요로 하는 옵션이 포함되지 않는 경우 파라미터는 표준 파라미터 티어에서 생성됩니다. 고급 파라미터가 필요한 하나 이상의 옵션이 요청에 포함되는 경우 Parameter Store는 고급 파라미터 티어에서 파라미터를 생성합니다.

**지능형 계층화의 이점**  
다음은 지능형 계층화를 기본 티어로 선택할 수 있는 이유입니다.

**비용 관리** - 지능형 계층화를 사용하면 고급 파라미터가 절대적으로 필요하지 않는 한 항상 표준 파라미터를 생성하여 파라미터 관련 비용을 관리할 수 있습니다.

**고급 파라미터 티어로 자동 업그레이드** - 표준 파라미터를 고급 파라미터로 업그레이드해야 하는 코드 변경 시 지능형 계층화를 사용하여 변환을 처리할 수 있습니다. 업그레이드를 처리하기 위해 코드를 변경할 필요가 없습니다.

다음은 자동 업그레이드의 몇 가지 예입니다.
+ AWS CloudFormation 템플릿은 파라미터가 실행될 때 많은 파라미터를 프로비저닝합니다. 이 프로세스를 통해 표준 파라미터 티어의 10,000개 파라미터 할당량에 도달하면 지능형 계층화가 고급 파라미터 티어로 자동으로 업그레이드하여 CloudFormation 프로세스가 중단되지 않습니다.
+ 파라미터에 증명서 값을 저장하고 증명서 값을 정기적으로 교체하면 콘텐츠가 표준 파라미터 티어의 4KB 할당량 미만이 됩니다. 교체 증명서 값이 4KB를 초과하는 경우 지능형 계층화는 파라미터를 고급 파라미터 티어로 자동으로 업그레이드합니다.
+ 기존의 많은 표준 파라미터를 고급 파라미터 티어가 필요한 파라미터 정책에 연결하려고 합니다. 파라미터를 업데이트하기 위한 모든 호출에 `--tier Advanced` 옵션을 포함시킬 필요 없이 지능형 계층화는 파라미터를 고급 파라미터 티어로 자동으로 업그레이드합니다. 지능형 계층화 옵션은 고급 파라미터 티어의 기준이 도입될 때마다 파라미터를 표준에서 고급으로 업그레이드합니다.

고급 파라미터가 필요한 옵션에는 다음이 포함됩니다.
+ 파라미터의 콘텐츠 크기는 4KB 이상입니다.
+ 파라미터는 파라미터 정책을 사용합니다.
+ 현재 AWS 리전의 AWS 계정에 10,000개 이상의 파라미터가 이미 존재합니다.

**기본 티어 옵션**  
기본으로 지정할 수 있는 티어 옵션에는 다음이 포함됩니다.
+ [**표준(Standard)**] - Parameter Store를 사용하기 시작할 때 표준 파라미터 티어가 기본 티어입니다. 표준 파라미터 티어를 사용하여 AWS 계정의 각 AWS 리전에 대해 10,000개의 파라미터를 생성할 수 있습니다. 각 파라미터의 콘텐츠 크기는 최대 4KB에 해당될 수 있습니다. 표준 파라미터는 파라미터 정책을 지원하지 않습니다. 표준 파라미터 티어 사용에 따르는 추가 요금은 없습니다. **표준**을 기본 티어로 선택하면 Parameter Store이 티어를 지정하지 않는 요청에 대해 항상 표준 파라미터 생성을 시도합니다.
+ [**고급(Advanced)**] - 고급 파라미터 티어를 사용하면 AWS 계정의 각 AWS 리전에 대해 최대 100,000개 파라미터를 생성할 수 있습니다. 각 파라미터의 콘텐츠 크기는 최대 8KB에 해당될 수 있습니다. 고급 파라미터는 파라미터 정책을 지원합니다. 파라미터를 공유하려면 해당 파라미터가 고급 파라미터 티어에 속해야 합니다. 고급 파라미터 티어 사용에는 요금이 따릅니다. 자세한 내용은 [Parameter Store에 대한 AWS Systems Manager 요금](https://aws.amazon.com/systems-manager/pricing/#Parameter_Store)을 참조하세요. **고급**을 기본 티어로 선택하면 Parameter Store이 티어를 지정하지 않는 요청에 대해 항상 고급 파라미터 생성을 시도합니다.
**참고**  
고급 파라미터 티어를 선택하는 경우 생성하는 고급 파라미터에 대해 AWS가 사용자의 계정에 요금을 부과하도록 명시적으로 승인합니다.
+ [**지능형 계층화(Intelligent-Tiering)**] - [지능형 계층화(Intelligent-Tiering)] 옵션을 사용하면 Parameter Store가 요청 내용에 따라 표준 파라미터 티어 또는 고급 파라미터 티어의 사용 여부를 결정할 수 있습니다. 예를 들어 콘텐츠가 4KB 미만인 파라미터를 생성하도록 명령을 실행하고 AWS 계정의 현재 AWS 리전에 10,000개 미만의 파라미터가 있는 경우 파라미터 정책을 지정하지 않으면 표준 파라미터가 생성됩니다. 예를 들어 콘텐츠가 4KB 이상인 파라미터를 생성하도록 명령을 실행하고 AWS 계정의 현재 AWS 리전에 10,000개 이상의 파라미터가 있거나 파라미터 정책을 지정하는 경우 고급 파라미터가 생성됩니다.
**참고**  
지능형 계층화를 선택하는 경우 생성되는 고급 파라미터에 대해 AWS가 사용자의 계정에 요금을 부과하도록 명시적으로 승인합니다.

Parameter Store 기본 티어 설정은 언제라도 변경할 수 있습니다.

### Parameter Store 기본 티어를 지정할 권한 구성
<a name="parameter-store-tier-permissions"></a>

다음 중 하나를 수행하여 Parameter Store의 기본 파라미터를 변경할 AWS Identity and Access Management(IAM)의 권한이 있는지 확인합니다.
+ `AdministratorAccess` 정책을 IAM 엔터티(사용자, 그룹 또는 역할 등)에 연결해야 합니다.
+ 다음 API 작업을 사용하여 기본 티어 설정을 변경할 권한이 있는지 확인합니다.
  + [GetServiceSetting](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_GetServiceSetting.html)
  + [UpdateServiceSetting](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_UpdateServiceSetting.html)
  + [ResetServiceSetting](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_ResetServiceSetting.html)

사용자가 AWS 계정의 특정 AWS 리전에 있는 파라미터의 기본 티어 설정을 보고 변경할 수 있도록 IAM 엔터티에 다음 권한을 부여합니다.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ssm:GetServiceSetting"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "ssm:UpdateServiceSetting"
            ],
            "Resource": "arn:aws:ssm:us-east-1:111122223333:servicesetting/ssm/parameter-store/default-parameter-tier"
        }
    ]
}
```

------

관리자는 다음 권한을 할당하여 읽기 전용 권한을 지정할 수 있습니다.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ssm:GetServiceSetting"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Deny",
            "Action": [
                "ssm:ResetServiceSetting",
                "ssm:UpdateServiceSetting"
            ],
            "Resource": "*"
        }
    ]
}
```

------

액세스 권한을 제공하려면 사용자, 그룹 또는 역할에 권한을 추가하세요.
+ AWS IAM Identity Center의 사용자 및 그룹:

  권한 세트를 생성합니다. *AWS IAM Identity Center 사용자 안내서*에서 [권한 세트 생성](https://docs.aws.amazon.com//singlesignon/latest/userguide/howtocreatepermissionset.html)의 지침을 따릅니다.
+ ID 제공업체를 통해 IAM에서 관리되는 사용자:

  ID 페더레이션을 위한 역할을 생성합니다. *IAM 사용자 설명서*의 [Create a role for a third-party identity provider (federation)](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_create_for-idp.html)의 지침을 따릅니다.
+ IAM 사용자:
  + 사용자가 맡을 수 있는 역할을 생성합니다. *IAM 사용자 설명서*에서 [Create a role for an IAM user](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_create_for-user.html)의 지침을 따릅니다.
  + (권장되지 않음) 정책을 사용자에게 직접 연결하거나 사용자를 사용자 그룹에 추가합니다. *IAM 사용 설명서*에서 [사용자(콘솔)에 권한 추가](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_users_change-permissions.html#users_change_permissions-add-console)의 지침을 따릅니다.

### 콘솔을 사용하여 Parameter Store 기본 티어 지정 또는 변경
<a name="parameter-store-tier-changing"></a>

다음 절차에서는 Systems Manager 콘솔을 사용하여 현재 AWS 계정 및 AWS 리전에 대한 기본 파라미터를 지정하거나 변경하는 방법을 보여줍니다.

**작은 정보**  
파라미터를 아직 만들지 않은 경우 AWS Command Line Interface(AWS CLI) 또는 AWS Tools for Windows PowerShell을 사용하여 기본 파라미터 티어를 변경할 수 있습니다. 자세한 내용은 [AWS CLI를 사용한 Parameter Store 기본 티어 지정 또는 변경](#parameter-store-tier-changing-cli) 및 [Parameter Store 기본 티어 지정 또는 변경(PowerShell)](#parameter-store-tier-changing-ps) 섹션을 참조하세요.

**Parameter Store 기본 티어를 지정하거나 변경하려면**

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

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

1. **설정** 탭을 선택합니다.

1. [**기본 티어 변경(Change default tier)**]을 선택합니다.

1. 다음 옵션 중 하나를 선택합니다.
   + **표준**
   + **고급**
   + **지능형 계층화**

   이러한 옵션에 대한 자세한 내용은 [기본 파라미터 티어 지정](#ps-default-tier) 섹션을 참조하세요.

1. 메시지를 검토하고 **확인**을 선택하십시오.

나중에 기본 티어 설정을 변경하려면 이 절차를 반복하고 다른 기본 티어 옵션을 지정합니다.

### AWS CLI를 사용한 Parameter Store 기본 티어 지정 또는 변경
<a name="parameter-store-tier-changing-cli"></a>

다음 절차에서는 AWS CLI를 사용하여 현재 AWS 계정 및 AWS 리전에 대한 기본 파라미터 티어 설정을 변경하는 방법을 보여줍니다.

**AWS CLI를 사용하여 Parameter Store 기본 티어를 지정하거나 변경하려면**

1. AWS CLI를 열고 다음 명령을 실행하여 AWS 계정의 특정 AWS 리전에 대한 기본 파라미터 티어 설정을 변경합니다.

   ```
   aws ssm update-service-setting --setting-id arn:aws:ssm:region:account-id:servicesetting/ssm/parameter-store/default-parameter-tier --setting-value tier-option
   ```

   *리전*은 미국 동부(오하이오) 리전의 `us-east-2` 같이 AWS Systems Manager이 지원하는 AWS 리전의 식별자를 나타냅니다. 지원되는 *리전* 값 목록은 **Amazon Web Services 일반 참조의 [Systems Manager 서비스 엔드포인트](https://docs.aws.amazon.com/general/latest/gr/ssm.html#ssm_region)에 있는 **리전** 열을 참조하세요.

   *티어 옵션* 값에는 `Standard`, `Advanced` 및 `Intelligent-Tiering`이 있습니다. 이러한 옵션에 대한 자세한 내용은 [기본 파라미터 티어 지정](#ps-default-tier) 섹션을 참조하세요.

   명령이 성공해도 출력은 없습니다.

1. 다음 명령을 실행하여 현재 AWS 계정 및 AWS 리전의 Parameter Store에 대한 현재 기본 파라미터 티어 서비스 설정을 확인합니다.

   ```
   aws ssm get-service-setting --setting-id arn:aws:ssm:region:account-id:servicesetting/ssm/parameter-store/default-parameter-tier
   ```

   시스템은 다음과 유사한 정보를 반환합니다.

   ```
   {
       "ServiceSetting": {
           "SettingId": "/ssm/parameter-store/default-parameter-tier",
           "SettingValue": "Advanced",
           "LastModifiedDate": 1556551683.923,
           "LastModifiedUser": "arn:aws:sts::123456789012:assumed-role/Administrator/Jasper",
           "ARN": "arn:aws:ssm:us-east-2:123456789012:servicesetting/ssm/parameter-store/default-parameter-tier",
           "Status": "Customized"
       }
   }
   ```

기본 티어 설정을 다시 변경하려면 이 절차를 반복하고 다른 `SettingValue` 옵션을 지정합니다.

### Parameter Store 기본 티어 지정 또는 변경(PowerShell)
<a name="parameter-store-tier-changing-ps"></a>

다음 절차에서는 Tools for Windows PowerShell을 사용하여 Amazon Web Services 계정의 특정 AWS 리전에 대한 기본 파라미터 티어 설정을 변경하는 방법을 보여줍니다.

**PowerShell을 사용하여 Parameter Store 기본 티어를 지정하거나 변경하려면**

1. AWS Tools for PowerShell(Tools for PowerShell)을 사용하여 현재 AWS 계정 및 AWS 리전의 Parameter Store 기본 티어를 변경합니다.

   ```
   Update-SSMServiceSetting -SettingId "arn:aws:ssm:region:account-id:servicesetting/ssm/parameter-store/default-parameter-tier" -SettingValue "tier-option" -Region region
   ```

   *리전*은 미국 동부(오하이오) 리전의 `us-east-2` 같이 AWS Systems Manager이 지원하는 AWS 리전의 식별자를 나타냅니다. 지원되는 *리전* 값 목록은 **Amazon Web Services 일반 참조의 [Systems Manager 서비스 엔드포인트](https://docs.aws.amazon.com/general/latest/gr/ssm.html#ssm_region)에 있는 **리전** 열을 참조하세요.

   *티어 옵션* 값에는 `Standard`, `Advanced` 및 `Intelligent-Tiering`이 있습니다. 이러한 옵션에 대한 자세한 내용은 [기본 파라미터 티어 지정](#ps-default-tier) 섹션을 참조하세요.

   명령이 성공해도 출력은 없습니다.

1. 다음 명령을 실행하여 현재 AWS 계정 및 AWS 리전의 Parameter Store에 대한 현재 기본 파라미터 티어 서비스 설정을 확인합니다.

   ```
   Get-SSMServiceSetting -SettingId "arn:aws:ssm:region:account-id:servicesetting/ssm/parameter-store/default-parameter-tier" -Region region
   ```

   *리전*은 미국 동부(오하이오) 리전의 `us-east-2` 같이 AWS Systems Manager이 지원하는 AWS 리전의 식별자를 나타냅니다. 지원되는 *리전* 값 목록은 **Amazon Web Services 일반 참조의 [Systems Manager 서비스 엔드포인트](https://docs.aws.amazon.com/general/latest/gr/ssm.html#ssm_region)에 있는 **리전** 열을 참조하세요.

   시스템은 다음과 유사한 정보를 반환합니다.

   ```
   ARN : arn:aws:ssm:us-east-2:123456789012:servicesetting/ssm/parameter-store/default-parameter-tier
   LastModifiedDate : 4/29/2019 3:35:44 PM
   LastModifiedUser : arn:aws:sts::123456789012:assumed-role/Administrator/Jasper
   SettingId        : /ssm/parameter-store/default-parameter-tier
   SettingValue     : Advanced
   Status           : Customized
   ```

기본 티어 설정을 다시 변경하려면 이 절차를 반복하고 다른 `SettingValue` 옵션을 지정합니다.

## 표준 파라미터를 고급 파라미터로 변경
<a name="parameter-store-advanced-parameters-enabling"></a>

기존 표준 파라미터를 고급 파라미터로 변경하려면 다음 절차를 사용하십시오. 새 고급 파라미터를 생성하는 방법에 대한 자세한 내용은 [Systems Manager에서 Parameter Store 파라미터 생성](sysman-paramstore-su-create.md) 섹션을 참조하세요.

**표준 파라미터를 고급 파라미터로 변경하려면**

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. **값**에 이 파라미터의 값을 입력합니다. 고급 파라미터의 최대 값 제한은 8KB입니다.

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

# Parameter Store 처리량 증가 또는 재설정
<a name="parameter-store-throughput"></a>

Parameter Store 처리량을 늘리면 AWS Systems Manager의 도구인 Parameter Store에서 처리할 수 있는 초당 최대 트랜잭션 수(TPS)가 증가합니다. 높아진 처리량 덕분에 더 높은 볼륨으로 Parameter Store를 작동하여 여러 파라미터에 동시 액세스해야 하는 애플리케이션 및 워크로드를 지원할 수 있습니다. **설정(Settings)** 탭에서 최대 처리량까지 할당량을 늘릴 수 있습니다.

Parameter Store 처리량 설정은 현재 AWS 계정 및 AWS 리전의 모든 IAM 사용자가 생성하는 모든 트랜잭션에 적용됩니다. 처리량 설정은 표준 및 고급 파라미터에 적용됩니다.

**참고**  
일반적으로 업데이트는 Service Quotas에 즉시 표시됩니다. 드문 경우지만 업데이트가 반영되는 데 최대 24시간이 걸릴 수 있습니다.

기본 최대 처리량과 최대 한도에 대한 자세한 내용은 [AWS Systems Manager 엔드포인트 및 할당량](https://docs.aws.amazon.com//general/latest/gr/ssm.html#limits_ssm)을 참조하세요.

처리량 할당량을 늘리면 AWS 계정에 요금이 부과됩니다. 자세한 내용은 [AWS Systems Manager요금](https://aws.amazon.com/systems-manager/pricing/)을 참조하세요.

**Topics**
+ [

## Parameter Store 처리량 변경을 위한 권한 구성
](#parameter-store-throughput-permissions)
+ [

## 콘솔을 사용하여 처리량 증가 또는 재설정
](#parameter-store-throughput-increasing)
+ [

## AWS CLI를 사용하여 처리량 증가 또는 재설정
](#parameter-store-throughput-increasing-cli)
+ [

## 처리량 증가 또는 재설정(PowerShell)
](#parameter-store-throughput-increasing-ps)

## Parameter Store 처리량 변경을 위한 권한 구성
<a name="parameter-store-throughput-permissions"></a>

다음 중 하나를 수행하여 IAM에서 Parameter Store 처리량을 변경할 권한이 있는지 확인합니다.
+ `AdministratorAccess` 정책이 IAM 엔터티(사용자, 그룹 또는 역할)에 연결되어 있는지 확인합니다.
+ 다음 API 작업을 사용하여 처리량 서비스 설정을 변경할 권한이 있는지 확인합니다.
  + [GetServiceSetting](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_GetServiceSetting.html)
  + [UpdateServiceSetting](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_UpdateServiceSetting.html)
  + [ResetServiceSetting](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_ResetServiceSetting.html)

사용자가 AWS 계정의 특정 AWS 리전에 있는 파라미터의 파라미터 처리량 설정을 보고 변경할 수 있도록 IAM 엔터티에 다음 권한을 부여합니다.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ssm:GetServiceSetting"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "ssm:UpdateServiceSetting"
            ],
            "Resource": "arn:aws:ssm:us-east-1:111122223333:servicesetting/ssm/parameter-store/high-throughput-enabled"
        }
    ]
}
```

------

관리자는 다음 권한을 할당하여 읽기 전용 권한을 지정할 수 있습니다.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ssm:GetServiceSetting"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Deny",
            "Action": [
                "ssm:ResetServiceSetting",
                "ssm:UpdateServiceSetting"
            ],
            "Resource": "*"
        }
    ]
}
```

------

액세스 권한을 제공하려면 사용자, 그룹 또는 역할에 권한을 추가하세요.
+ AWS IAM Identity Center의 사용자 및 그룹:

  권한 세트를 생성합니다. *AWS IAM Identity Center 사용자 안내서*에서 [권한 세트 생성](https://docs.aws.amazon.com//singlesignon/latest/userguide/howtocreatepermissionset.html)의 지침을 따릅니다.
+ ID 제공업체를 통해 IAM에서 관리되는 사용자:

  ID 페더레이션을 위한 역할을 생성합니다. *IAM 사용자 설명서*의 [Create a role for a third-party identity provider (federation)](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_create_for-idp.html)의 지침을 따릅니다.
+ IAM 사용자:
  + 사용자가 맡을 수 있는 역할을 생성합니다. *IAM 사용자 설명서*에서 [Create a role for an IAM user](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_create_for-user.html)의 지침을 따릅니다.
  + (권장되지 않음) 정책을 사용자에게 직접 연결하거나 사용자를 사용자 그룹에 추가합니다. *IAM 사용 설명서*에서 [사용자(콘솔)에 권한 추가](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_users_change-permissions.html#users_change_permissions-add-console)의 지침을 따릅니다.

## 콘솔을 사용하여 처리량 증가 또는 재설정
<a name="parameter-store-throughput-increasing"></a>

다음 절차에서는 Systems Manager를 사용하여 Parameter Store가 현재 AWS 계정 및 AWS 리전에 대해 처리할 수 있는 초당 트랜잭션 수를 늘리는 방법을 보여줍니다. 높은 처리량이 더 이상 필요하지 않거나 요금이 더 이상 청구되지 않게 하려는 경우 표준 설정으로 되돌릴 방법을 보여줍니다.

**콘솔을 사용하여 Parameter Store 처리량 증가 또는 재설정**
**작은 정보**  
파라미터를 아직 생성하지 않은 경우 AWS Command Line Interface(AWS CLI) 또는 AWS Tools for Windows PowerShell를 사용하여 처리량을 높일 수 있습니다. 자세한 내용은 [AWS CLI를 사용하여 처리량 증가 또는 재설정](#parameter-store-throughput-increasing-cli) 및 [처리량 증가 또는 재설정(PowerShell)](#parameter-store-throughput-increasing-ps) 섹션을 참조하세요.

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

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

1. **설정** 탭을 선택합니다.

1. 처리량을 늘리려면 **한도 설정**을 선택합니다.

   -또는-

    기본 한도로 되돌리려면 **한도 재설정**을 선택합니다.

1. 한도를 늘리려면 다음 작업을 수행합니다.
   + **이 설정을 변경하면 AWS 계정에 요금이 부과된다는 점을 수락함** 확인란을 선택합니다.
   + **Set limit(한도 설정)**을 선택하십시오.

   -또는-

   한도를 기본값으로 재설정하는 경우 다음 작업을 수행합니다.
   + **기본 처리량 한도로 재설정하면 Parameter Store에서 초당 처리되는 트랜잭션 수가 줄어든다는 점에 동의함** 확인란을 선택합니다.
   + **한도 재설정**을 선택합니다.

## AWS CLI를 사용하여 처리량 증가 또는 재설정
<a name="parameter-store-throughput-increasing-cli"></a>

다음 절차에서는 AWS CLI를 사용하여 Parameter Store이 현재 AWS 계정 및 AWS 리전에 대해 처리할 수 있는 초당 트랜잭션 수를 늘리는 방법을 보여줍니다. 기본 한도로 되돌릴 수도 있습니다.

**AWS CLI를 사용하여 Parameter Store 처리량을 높이려면**

1. AWS CLI를 열고 다음 명령을 실행하여 Parameter Store가 현재 AWS 계정 및 AWS 리전에서 처리할 수 있는 초당 트랜잭션을 늘립니다.

   ```
   aws ssm update-service-setting --setting-id arn:aws:ssm:region:account-id:servicesetting/ssm/parameter-store/high-throughput-enabled --setting-value true
   ```

   명령이 성공해도 출력은 없습니다.

1. 다음 명령을 실행하여 현재 AWS 계정 및 AWS 리전의 Parameter Store에 대한 현재 처리량 서비스 설정을 확인합니다.

   ```
   aws ssm get-service-setting --setting-id arn:aws:ssm:region:account-id:servicesetting/ssm/parameter-store/high-throughput-enabled
   ```

   시스템은 다음과 유사한 정보를 반환합니다.

   ```
   {
       "ServiceSetting": {
           "SettingId": "/ssm/parameter-store/high-throughput-enabled",
           "SettingValue": "true",
           "LastModifiedDate": 1556551683.923,
           "LastModifiedUser": "arn:aws:sts::123456789012:assumed-role/Administrator/Jasper",
           "ARN": "arn:aws:ssm:us-east-2:123456789012:servicesetting/ssm/parameter-store/high-throughput-enabled",
           "Status": "Customized"
       }
   }
   ```

높은 처리량이 더 이상 필요하지 않거나 요금이 더 이상 청구되지 않도록 하려면 표준 설정으로 되돌릴 수 있습니다. 설정을 되돌리려면 다음 명령을 실행하십시오.

```
aws ssm reset-service-setting --setting-id arn:aws:ssm:region:account-id:servicesetting/ssm/parameter-store/high-throughput-enabled
```

```
{
    "ServiceSetting": {
        "SettingId": "/ssm/parameter-store/high-throughput-enabled",
        "SettingValue": "false",
        "LastModifiedDate": 1555532818.578,
        "LastModifiedUser": "System",
        "ARN": "arn:aws:ssm:us-east-2:123456789012:servicesetting/ssm/parameter-store/high-throughput-enabled",
        "Status": "Default"
    }
}
```

## 처리량 증가 또는 재설정(PowerShell)
<a name="parameter-store-throughput-increasing-ps"></a>

다음 절차에서는 Tools for Windows PowerShell을 사용하여 Parameter Store가 현재 AWS 계정 및 AWS 리전에 대해 처리할 수 있는 초당 트랜잭션 수를 늘리는 방법을 보여줍니다. 기본 한도로 되돌릴 수도 있습니다.

**PowerShell을 사용하여 Parameter Store 처리량을 늘리려면**

1. AWS Tools for PowerShell(Tools for PowerShell)을 사용하여 현재 AWS 계정 및 AWS 리전의 Parameter Store 처리량을 늘립니다.

   ```
   Update-SSMServiceSetting -SettingId "arn:aws:ssm:region:account-id:servicesetting/ssm/parameter-store/high-throughput-enabled" -SettingValue "true" -Region region
   ```

   명령이 성공해도 출력은 없습니다.

1. 다음 명령을 실행하여 현재 AWS 계정 및 AWS 리전의 Parameter Store에 대한 현재 처리량 서비스 설정을 확인합니다.

   ```
   Get-SSMServiceSetting -SettingId "arn:aws:ssm:region:account-id:servicesetting/ssm/parameter-store/high-throughput-enabled" -Region region
   ```

   시스템은 다음과 유사한 정보를 반환합니다.

   ```
   ARN              : arn:aws:ssm:us-east-2:123456789012:servicesetting/ssm/parameter-store/high-throughput-enabled
   LastModifiedDate : 4/29/2019 3:35:44 PM
   LastModifiedUser : arn:aws:sts::123456789012:assumed-role/Administrator/Jasper
   SettingId        : /ssm/parameter-store/high-throughput-enabled
   SettingValue     : true
   Status           : Customized
   ```

높은 처리량이 더 이상 필요하지 않거나 요금이 더 이상 청구되지 않도록 하려면 표준 설정으로 되돌릴 수 있습니다. 설정을 되돌리려면 다음 명령을 실행하십시오.

```
Reset-SSMServiceSetting -SettingId "arn:aws:ssm:region:account-id:servicesetting/ssm/parameter-store/high-throughput-enabled" -Region region
```

시스템은 다음과 유사한 정보를 반환합니다.

```
ARN              : arn:aws:ssm:us-east-2:123456789012:servicesetting/ssm/parameter-store/high-throughput-enabled
LastModifiedDate : 4/17/2019 8:26:58 PM
LastModifiedUser : System
SettingId        : /ssm/parameter-store/high-throughput-enabled
SettingValue     : false
Status           : Default
```

# Parameter Store 이벤트 기반 알림 설정 또는 작업 트리거
<a name="sysman-paramstore-cwe"></a>

이 섹션의 주제에서는 Amazon EventBridge 및 Amazon Simple Notification Service(Amazon SNS)를 사용하여 AWS Systems Manager 파라미터의 변경 사항을 알리는 방법을 설명합니다. 파라미터 또는 파라미터 레이블 버전이 생성, 업데이트 또는 삭제될 때 알리는 EventBridge 규칙을 생성할 수 있습니다. 이벤트는 최선의 작업을 기반으로 발생됩니다. 파라미터가 만료될 때, 파라미터가 만료 예정일 때 또는 지정된 기간 동안 파라미터가 변경되지 않았을 때와 같이 파라미터 정책과 관련된 변경 사항 또는 상태에 대한 알림을 받을 수 있습니다.

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

이 섹션의 주제에서는 특정 파라미터 이벤트에 대해 대상에서 기타 작업을 시작하는 방법도 설명합니다. 예를 들어, 파라미터가 만료되거나 삭제될 때 자동으로 재생성하는 AWS Lambda 함수를 실행할 수 있습니다. 데이터베이스 암호가 업데이트되면 Lambda 함수를 호출하도록 알림을 설정할 수 있습니다. Lambda 함수는 강제로 데이터베이스 연결을 재설정하거나 새 암호로 다시 연결할 수 있습니다. EventBridge는 또한 Run Command 명령, Automation 실행 및 기타 많은 AWS 서비스의 작업 실행을 지원합니다. Run Command 및 Automation 모두 AWS Systems Manager의 도구입니다. 자세한 내용은 *[Amazon EventBridge 사용 설명서](https://docs.aws.amazon.com/eventbridge/latest/userguide/)*를 참조하세요.

**시작하기 전**  
생성한 규칙에 대한 대상 작업을 지정하는 데 필요한 리소스를 생성합니다. 예를 들어 알림 보내기에 대한 규칙을 생성하는 경우 먼저 Amazon SNS 주제를 생성합니다. 자세한 내용은 *Amazon Simple Notification Service 개발자 안내서*의 [Amazon SNS 시작하기](https://docs.aws.amazon.com/sns/latest/dg/sns-getting-started.htmlGettingStarted.html)를 참조하세요.

## 파라미터 및 파라미터 정책에 대해 EventBridge 구성
<a name="cwe-parameter-changes"></a>

이 주제에서는 다음을 설명합니다.
+ AWS 계정에서 하나 이상의 파라미터에 대해 발생하는 이벤트를 기반으로 대상을 호출하는 EventBridge 규칙을 생성하는 방법.
+ AWS 계정에서 하나 이상의 파라미터 정책에 대해 발생하는 이벤트를 기반으로 대상을 호출하는 EventBridge 규칙을 생성하는 방법. 고급 파라미터를 생성할 때 파라미터가 만료될 때, 파라미터가 만료되기 전 알림을 수신할 때 및 파라미터가 변경되지 않았다는 알림을 보내야 하기 전에 대기하는 시간을 지정합니다. 다음 절차를 사용하여 이러한 이벤트에 대한 알림을 설정합니다. 자세한 내용은 [Parameter Store에서 파라미터 정책 할당](parameter-store-policies.md) 및 [파라미터 티어 관리](parameter-store-advanced-parameters.md)을(를) 참조하세요.

**Systems Manager 파라미터 또는 파라미터 정책에 대해 EventBridge 규칙 구성**

1. Amazon EventBridge 콘솔([https://console.aws.amazon.com/events/](https://console.aws.amazon.com/events/))을 엽니다.

1. 탐색 창에서 **규칙(Rules)**을 선택한 후 **규칙 생성(Create rule)**을 선택합니다.

   -또는-

   EventBridge 홈 페이지가 처음으로 열리면 **규칙 생성(Create rule)**을 선택합니다.

1. 규칙에 대해 이름과 설명을 입력합니다.

   규칙은 동일한 리전과 동일한 이벤트 버스의 다른 규칙과 동일한 이름을 가질 수 없습니다.

1. **이벤트 버스(Event bus)**에서 이 규칙과 연결할 이벤트 버스를 선택합니다. 이 규칙이 자신의 AWS 계정에서 오는 발생하는 해당 이벤트에서 시작되도록 하려면 **기본값(Default)**을 선택합니다. 계정의 AWS 서비스이(가) 이벤트를 출력하면 항상 계정의 기본 이벤트 버스로 이동합니다.

1. **규칙 유형(Rule type)**의 경우 기본값인 **이벤트 패턴이 있는 규칙(Rule with an event pattern)**을 선택한 채로 둡니다.

1. **다음**을 선택합니다.

1. **Event source**(이벤트 소스)의 경우 기본값인 **AWS events or EventBridge partner events**(이벤트 또는 EventBridge 파트너 이벤트)를 선택된 상태로 둡니다. **샘플 이벤트(Sample event)** 섹션은 건너뛸 수 있습니다.

1. **이벤트 패턴(Event pattern)**에서 다음을 수행합니다.
   + **사용자 지정 패턴(JSON 편집기)(Custom patterns (JSON editor))**을 선택합니다.
   + **이벤트 패턴(Event pattern)**에서 파라미터 또는 파라미터 정책에 대해 규칙을 생성하는지 여부에 따라 상자에 있는 다음 콘텐츠 중 하나를 붙여넣습니다.

------
#### [ Parameter ]

     ```
     {
         "source": [
             "aws.ssm"
         ],
         "detail-type": [
             "Parameter Store Change"
         ],
         "detail": {
             "name": [
                 "parameter-1-name",
                 "/parameter-2-name/level-2",
                 "/parameter-3-name/level-2/level-3"
             ],
             "operation": [
                 "Create",
                 "Update",
                 "Delete",
                 "LabelParameterVersion"
             ]
         }
     }
     ```

------
#### [ Parameter policy ]

     ```
     {
         "source": [
             "aws.ssm"
         ],
         "detail-type": [
             "Parameter Store Policy Action"
         ],
         "detail": {
             "parameter-name": [
                 "parameter-1-name",
                 "/parameter-2-name/level-2",
                 "/parameter-3-name/level-2/level-3"
             ],
             "policy-type": [
                 "Expiration",
                 "ExpirationNotification",
                 "NoChangeNotification"
             ]
         }
     }
     ```

------
   + 다음 샘플에 표시된 것과 같이 조치를 취할 작업 및 파라미터에 대한 콘텐츠를 수정합니다.

------
#### [ Parameter ]

     이 예시에서는 이름이 /`Oncall` 및 `/Project/Teamlead`인 파라미터 중 하나가 업데이트될 때 작업이 실시됩니다.

     ```
     {
         "source": [
             "aws.ssm"
         ],
         "detail-type": [
             "Parameter Store Change"
         ],
         "detail": {
             "name": [
                 "/Oncall",
                 "/Project/Teamlead"
             ],
             "operation": [
                 "Update"
             ]
         }
     }
     ```

------
#### [ Parameter policy ]

     이 예시에서는 이름이 /`OncallDuties`인 파라미터가 만료되고 삭제될 때마다 작업이 실시됩니다.

     ```
     {
         "source": [
             "aws.ssm"
         ],
         "detail-type": [
             "Parameter Store Policy Action"
         ],
         "detail": {
             "parameter-name": [
                 "/OncallDuties"
             ],
             "policy-type": [
                 "Expiration"
             ]
         }
     }
     ```

------

1. **다음**을 선택합니다.

1. **대상(Target 1)**에서 대상 유형과 지원되는 리소스를 선택합니다. 예를 들어 [**SNS 주제(SNS topic)**]를 선택하는 경우 [**주제(Topic)**]를 선택합니다. **CodePipeline**을 선택한 경우 **파이프라인 ARN(Pipeline ARN)**에 파이프라인 ARN을 입력합니다. 필요에 따라 추가 구성 값을 입력합니다.
**작은 정보**  
규칙에 추가 대상이 필요한 경우 **다른 대상 추가(Add another target)**를 선택합니다.

1. **다음**을 선택합니다.

1. (선택 사항)규칙에 대해 하나 이상의 태그를 입력하세요. 자세한 정보는 *Amazon EventBridge 사용 설명서*의 [Amazon EventBridge 태그](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-tagging.html)를 참조하세요.

1. **다음**을 선택합니다.

1. **규칙 생성**을 선택합니다.

**추가 정보**  
+ [환경 간 간단한 구성 업데이트를 위해 파라미터 레이블 사용](https://aws.amazon.com/blogs/mt/use-parameter-labels-for-easy-configuration-update-across-environments/)
+ *Amazon EventBridge 사용 설명서*에서 [Tutorial: Use EventBridge to relay events to AWS Systems Manager  Run Command](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-ec2-run-command.html)
+ *Amazon EventBridge 사용 설명서*의 [자습서: AWS Systems Manager 자동화를 EventBridge 대상으로 설정](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-ssm-automation-as-target.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)를 참조하세요.

# Parameter Store에서의 퍼블릭 파라미터 작업
<a name="parameter-store-public-parameters"></a>

일부 AWS 서비스은(는) 공통 아티팩트에 대한 정보를 AWS Systems Manager *공개* 파라미터로 게시합니다. 예를 들어 Amazon Elastic Compute Cloud(Amazon EC2) 서비스는 Amazon Machine Images(AMIs)에 대한 정보를 퍼블릭 파라미터로 게시합니다.

**Topics**
+ [

# Parameter Store에서 퍼블릭 파라미터 검색
](parameter-store-finding-public-parameters.md)
+ [

# Parameter Store에서 AMI 퍼블릭 파라미터 호출
](parameter-store-public-parameters-ami.md)
+ [

# Parameter Store에서 ECS 최적화 AMI 퍼블릭 파라미터 호출
](parameter-store-public-parameters-ecs.md)
+ [

# Parameter Store에서 EKS에 최적화된 AMI 퍼블릭 파라미터 호출
](parameter-store-public-parameters-eks.md)
+ [

# Parameter Store, 리전, 엔드포인트, 가용 영역, 로컬 영역, Wavelength 영역에 대한 AWS 서비스 퍼블릭 파라미터 호출
](parameter-store-public-parameters-global-infrastructure.md)

**관련 AWS 블로그 게시물**  
+ [AWS Systems ManagerParameter Store를 사용하여 AWS 리전, 엔드포인트 등 쿼리](https://aws.amazon.com/blogs/aws/new-query-for-aws-regions-endpoints-and-more-using-aws-systems-manager-parameter-store/)
+ [AWS Systems ManagerParameter Store를 사용하여 최신 Amazon Linux AMI ID 쿼리](https://aws.amazon.com/blogs/compute/query-for-the-latest-amazon-linux-ami-ids-using-aws-systems-manager-parameter-store/)
+ [AWS Systems ManagerParameter Store를 사용하여 최신 Windows AMI 쿼리](https://aws.amazon.com/blogs/mt/query-for-the-latest-windows-ami-using-systems-manager-parameter-store/)

# Parameter Store에서 퍼블릭 파라미터 검색
<a name="parameter-store-finding-public-parameters"></a>

Parameter Store 콘솔이나 AWS Command Line Interface를 사용하여 퍼블릭 파라미터를 검색할 수 있습니다.

퍼블릭 파라미터 이름은 `aws/service/list`로 시작합니다. 이름의 다음 부분은 해당 파라미터를 소유하는 서비스에 해당합니다.

다음은 퍼블릭 파라미터를 제공하는 AWS 서비스 및 기타 리소스의 일부 목록입니다.
+ `ami-amazon-linux-latest`
+ `ami-windows-latest`
+  `ec2-macos`
+ `appmesh`
+ `aws-for-fluent-bit`
+ `aws-sdk-pandas`
+ `bottlerocket`
+ `canonical`
+ `cloud9`
+ `datasync`
+ `deeplearning`
+ `ecs`
+ `eks`
+ `fis`
+ `freebsd`
+ `global-infrastructure`
+ `marketplace`
+ `neuron`
+ `powertools`
+ `sagemaker-distribution`
+ `storagegateway`

모든 퍼블릭 파라미터가 모든 AWS 리전에 게시되지는 않습니다.

## Parameter Store 콘솔을 사용하여 퍼블릭 파라미터 찾기
<a name="paramstore-discover-public-console"></a>

콘솔을 사용하여 퍼블릭 파라미터를 검색하려면 먼저 AWS 계정 및 AWS 리전에 하나 이상의 파라미터가 있어야 합니다.

**콘솔을 사용하여 퍼블릭 파라미터를 찾으려면**

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

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

1. [**퍼블릭 파라미터(Public parameters)**] 탭을 선택합니다.

1. [**서비스 선택(Select a service)**] 드롭다운을 선택합니다. 파라미터를 사용하려는 서비스를 선택합니다.

1. (선택 사항) 검색 창에 추가 정보를 입력하여 선택한 서비스가 소유한 파라미터를 필터링합니다.

1. 사용할 퍼블릭 파라미터를 선택합니다.

## AWS CLI를 사용하여 퍼블릭 파라미터 찾기
<a name="paramstore-discover-public-cli"></a>

퍼블릭 파라미터 검색에 `describe-parameters`를 사용합니다.

`get-parameters-by-path`를 사용하여 `/aws/service/list` 아래에 나열된 서비스의 실제 경로를 가져올 수 있습니다. 서비스의 경로를 가져오려면 경로에서 `/list`를 이동합니다. 예를 들어, `/aws/service/list/ecs`는 `/aws/service/ecs`가 됩니다.

Parameter Store의 다른 서비스가 소유한 퍼블릭 파라미터 목록을 검색하려면 다음 명령을 실행합니다.

```
aws ssm get-parameters-by-path --path /aws/service/list
```

명령은 다음과 같은 정보를 반환합니다. 이 예제는 공백을 위해 잘렸습니다.

```
{
    "Parameters": [
        {
            "Name": "/aws/service/list/ami-al-latest",
            "Type": "String",
            "Value": "/aws/service/ami-al-latest/",
            "Version": 1,
            "LastModifiedDate": "2021-01-29T10:25:10.902000-08:00",
            "ARN": "arn:aws:ssm:us-east-2::parameter/aws/service/list/ami-al-latest",
            "DataType": "text"
        },
        {
            "Name": "/aws/service/list/ami-windows-latest",
            "Type": "String",
            "Value": "/aws/service/ami-windows-latest/",
            "Version": 1,
            "LastModifiedDate": "2021-01-29T10:25:12.567000-08:00",
            "ARN": "arn:aws:ssm:us-east-2::parameter/aws/service/list/ami-windows-latest",
            "DataType": "text"
        },
        {
            "Name": "/aws/service/list/aws-storage-gateway-latest",
            "Type": "String",
            "Value": "/aws/service/aws-storage-gateway-latest/",
            "Version": 1,
            "LastModifiedDate": "2021-01-29T10:25:09.903000-08:00",
            "ARN": "arn:aws:ssm:us-east-2::parameter/aws/service/list/aws-storage-gateway-latest",
            "DataType": "text"
        },
        {
            "Name": "/aws/service/list/global-infrastructure",
            "Type": "String",
            "Value": "/aws/service/global-infrastructure/",
            "Version": 1,
            "LastModifiedDate": "2021-01-29T10:25:11.901000-08:00",
            "ARN": "arn:aws:ssm:us-east-2::parameter/aws/service/list/global-infrastructure",
            "DataType": "text"
        }
    ]
}
```

특정 서비스가 소유한 파라미터를 보려면 이전 명령을 실행한 후 생성된 목록에서 서비스를 선택합니다. 그런 다음 원하는 서비스 이름을 사용하여 `get-parameters-by-path`를 호출합니다.

예를 들어 `/aws/service/global-infrastructure`입니다. 경로는 한 수준(지정된 정확한 값과 일치하는 파라미터만 호출) 또는 재귀적(지정한 것 이상의 경로에 요소 포함)일 수 있습니다.

**참고**  
일부 리전에서는 쿼리에 `/aws/service/global-infrastructure` 경로가 지원되지 않습니다. 자세한 내용은 [Parameter Store, 리전, 엔드포인트, 가용 영역, 로컬 영역, Wavelength 영역에 대한 AWS 서비스 퍼블릭 파라미터 호출](parameter-store-public-parameters-global-infrastructure.md) 섹션을 참조하세요.

지정한 서비스에 대한 결과가 반환되지 않은 경우에 `--recursive` 플래그를 추가하고 명령을 다시 실행합니다.

```
aws ssm get-parameters-by-path --path /aws/service/global-infrastructure
```

 `global-infrastructure`가 소유한 모든 파라미터가 반환됩니다. 다음은 예입니다.

```
{
    "Parameters": [
        {
            "Name": "/aws/service/global-infrastructure/current-region",
            "Type": "String",
            "LastModifiedDate": "2019-06-21T05:15:34.252000-07:00",
            "Version": 1,
            "Tier": "Standard",
            "Policies": [],
            "DataType": "text"
        },
        {
            "Name": "/aws/service/global-infrastructure/version",
            "Type": "String",
            "LastModifiedDate": "2019-02-04T06:59:32.875000-08:00",
            "Version": 1,
            "Tier": "Standard",
            "Policies": [],
            "DataType": "text"
        }
    ]
}
```

`Option:BeginsWith` 필터를 사용하여 특정 서비스가 소유한 파라미터를 볼 수도 있습니다.

```
aws ssm describe-parameters --parameter-filters "Key=Name, Option=BeginsWith, Values=/aws/service/ami-amazon-linux-latest"
```

명령은 다음과 같은 정보를 반환합니다. 이 예제 출력은 공백을 위해 잘렸습니다.

```
{
    "Parameters": [
        {
            "Name": "/aws/service/ami-amazon-linux-latest/amzn-ami-hvm-x86_64-ebs",
            "Type": "String",
            "LastModifiedDate": "2021-01-26T13:39:40.686000-08:00",
            "Version": 25,
            "Tier": "Standard",
            "Policies": [],
            "DataType": "text"
        },
        {
            "Name": "/aws/service/ami-amazon-linux-latest/amzn-ami-hvm-x86_64-gp2",
            "Type": "String",
            "LastModifiedDate": "2021-01-26T13:39:40.807000-08:00",
            "Version": 25,
            "Tier": "Standard",
            "Policies": [],
            "DataType": "text"
        },
        {
            "Name": "/aws/service/ami-amazon-linux-latest/amzn-ami-hvm-x86_64-s3",
            "Type": "String",
            "LastModifiedDate": "2021-01-26T13:39:40.920000-08:00",
            "Version": 25,
            "Tier": "Standard",
            "Policies": [],
            "DataType": "text"
        }
    ]
}
```

**참고**  
다른 검색 패턴을 사용하기 때문에 `Option=BeginsWith`를 사용할 때 반환되는 파라미터가 다를 수 있습니다.

# Parameter Store에서 AMI 퍼블릭 파라미터 호출
<a name="parameter-store-public-parameters-ami"></a>

Amazon Elastic Compute Cloud(Amazon EC2) Amazon Machine Image(AMI) 퍼블릭 파라미터는 다음 경로에서 Amazon Linux 2, Amazon Linux 2023(AL2023), macOS 및 Windows Server에 대해 사용할 수 있습니다.
+ Amazon Linux 2 및 Amazon Linux 2023: `/aws/service/ami-amazon-linux-latest`
+ macOS: `/aws/service/ec2-macos`
+ Windows Server: `/aws/service/ami-windows-latest`



## Amazon Linux 2 및 Amazon Linux 2023용 AMI 퍼블릭 파라미터 호출
<a name="public-parameters-ami-linux"></a>

AWS Command Line Interface(AWS CLI)에서 다음 명령을 사용하여 현재 AWS 리전의 모든 Amazon Linux 2 및 Amazon Linux 2023(AL2023) AMIs 목록을 볼 수 있습니다.

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

```
aws ssm get-parameters-by-path \
    --path /aws/service/ami-amazon-linux-latest \
    --query 'Parameters[].Name'
```

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

```
aws ssm get-parameters-by-path ^
    --path /aws/service/ami-amazon-linux-latest ^
    --query Parameters[].Name
```

------

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

```
[
    "/aws/service/ami-amazon-linux-latest/al2023-ami-kernel-6.1-arm64",
    "/aws/service/ami-amazon-linux-latest/al2023-ami-kernel-6.1-x86_64",
    "/aws/service/ami-amazon-linux-latest/al2023-ami-minimal-kernel-6.1-arm64",
    "/aws/service/ami-amazon-linux-latest/al2023-ami-minimal-kernel-6.1-x86_64",
    "/aws/service/ami-amazon-linux-latest/al2023-ami-minimal-kernel-default-arm64",
    "/aws/service/ami-amazon-linux-latest/amzn-ami-hvm-x86_64-gp2",
    "/aws/service/ami-amazon-linux-latest/amzn-ami-hvm-x86_64-s3",
    "/aws/service/ami-amazon-linux-latest/amzn2-ami-hvm-x86_64-ebs",
    "/aws/service/ami-amazon-linux-latest/amzn2-ami-hvm-x86_64-gp2",
    "/aws/service/ami-amazon-linux-latest/amzn2-ami-kernel-5.10-hvm-x86_64-ebs",
    "/aws/service/ami-amazon-linux-latest/al2023-ami-kernel-default-arm64",
    "/aws/service/ami-amazon-linux-latest/al2023-ami-kernel-default-x86_64",
    "/aws/service/ami-amazon-linux-latest/al2023-ami-minimal-kernel-default-x86_64",
    "/aws/service/ami-amazon-linux-latest/amzn-ami-hvm-x86_64-ebs",
    "/aws/service/ami-amazon-linux-latest/amzn-ami-minimal-hvm-x86_64-ebs",
    "/aws/service/ami-amazon-linux-latest/amzn-ami-minimal-hvm-x86_64-s3",
    "/aws/service/ami-amazon-linux-latest/amzn2-ami-hvm-arm64-gp2",
    "/aws/service/ami-amazon-linux-latest/amzn2-ami-kernel-5.10-hvm-arm64-gp2",
    "/aws/service/ami-amazon-linux-latest/amzn2-ami-kernel-5.10-hvm-x86_64-gp2",
    "/aws/service/ami-amazon-linux-latest/amzn2-ami-minimal-hvm-arm64-ebs",
    "/aws/service/ami-amazon-linux-latest/amzn2-ami-minimal-hvm-x86_64-ebs"
]
```

다음 명령을 사용하여 AMI ID 및 Amazon 리소스 이름(ARN)을 포함하여 이러한 AMIs에 대한 세부 정보를 볼 수 있습니다.

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

```
aws ssm get-parameters-by-path \
    --path "/aws/service/ami-amazon-linux-latest" \
    --region region
```

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

```
aws ssm get-parameters-by-path ^
    --path "/aws/service/ami-amazon-linux-latest" ^
    --region region
```

------

*리전*은 미국 동부(오하이오) 리전의 `us-east-2` 같이 AWS Systems Manager이 지원하는 AWS 리전의 식별자를 나타냅니다. 지원되는 *리전* 값 목록은 **Amazon Web Services 일반 참조의 [Systems Manager 서비스 엔드포인트](https://docs.aws.amazon.com/general/latest/gr/ssm.html#ssm_region)에 있는 **리전** 열을 참조하세요.

명령은 다음과 같은 정보를 반환합니다. 이 예제 출력은 공백을 위해 잘렸습니다.

```
{
    "Parameters": [
         {
            "Name": "/aws/service/ami-amazon-linux-latest/al2023-ami-kernel-6.1-arm64",
            "Type": "String",
            "Value": "ami-0b1b8b24a6c8e5d8b",
            "Version": 69,
            "LastModifiedDate": "2024-03-13T14:05:09.583000-04:00",
            "ARN": "arn:aws:ssm:us-east-2::parameter/aws/service/ami-amazon-linux-latest/al2023-ami-kernel-6.1-arm64",
            "DataType": "text"
        },
        {
            "Name": "/aws/service/ami-amazon-linux-latest/al2023-ami-kernel-6.1-x86_64",
            "Type": "String",
            "Value": "ami-0e0bf53f6def86294",
            "Version": 69,
            "LastModifiedDate": "2024-03-13T14:05:09.890000-04:00",
            "ARN": "arn:aws:ssm:us-east-2::parameter/aws/service/ami-amazon-linux-latest/al2023-ami-kernel-6.1-x86_64",
            "DataType": "text"
        },
        {
            "Name": "/aws/service/ami-amazon-linux-latest/al2023-ami-minimal-kernel-6.1-arm64",
            "Type": "String",
            "Value": "ami-09951bb66f9e5b5a5",
            "Version": 69,
            "LastModifiedDate": "2024-03-13T14:05:10.197000-04:00",
            "ARN": "arn:aws:ssm:us-east-2::parameter/aws/service/ami-amazon-linux-latest/al2023-ami-minimal-kernel-6.1-arm64",
            "DataType": "text"
        }
    ]
}
```

경로를 포함하여 전체 AMI 이름과 함께 [GetParameters](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_GetParameters.html) API 작업을 사용하여 특정 AMI의 세부 정보를 볼 수 있습니다. 다음은 명령 예제입니다.

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

```
aws ssm get-parameters \
    --names /aws/service/ami-amazon-linux-latest/al2023-ami-kernel-6.1-arm64 \
    --region us-east-2
```

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

```
aws ssm get-parameters ^
    --names /aws/service/ami-amazon-linux-latest/al2023-ami-kernel-6.1-arm64 ^
    --region us-east-2
```

------

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

```
{
    "Parameters": [
        {
            "Name": "/aws/service/ami-amazon-linux-latest/al2023-ami-kernel-6.1-arm64",
            "Type": "String",
            "Value": "ami-0b1b8b24a6c8e5d8b",
            "Version": 69,
            "LastModifiedDate": "2024-03-13T14:05:09.583000-04:00",
            "ARN": "arn:aws:ssm:us-east-2::parameter/aws/service/ami-amazon-linux-latest/al2023-ami-kernel-6.1-arm64",
            "DataType": "text"
        }
    ],
    "InvalidParameters": []
}
```

## macOS에 대한 AMI 퍼블릭 파라미터 호출
<a name="public-parameters-ami-macos"></a>

AWS CLI에서 다음 명령을 사용하여 현재 AWS 리전의 모든 macOS AMIs 목록을 볼 수 있습니다.

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

```
aws ssm get-parameters-by-path \
    --path /aws/service/ec2-macos\
    --query 'Parameters[].Name'
```

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

```
aws ssm get-parameters-by-path ^
    --path /aws/service/ec2-macos ^
    --query Parameters[].Name
```

------

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

```
[
    "/aws/service/ec2-macos/sonoma/x86_64_mac/latest/image_id",
    "/aws/service/ec2-macos/ventura/x86_64_mac/latest/image_id",
    "/aws/service/ec2-macos/sonoma/arm64_mac/latest/image_id",
    "/aws/service/ec2-macos/ventura/arm64_mac/latest/image_id"
]
```

다음 명령을 사용하여 AMI ID 및 Amazon 리소스 이름(ARN)을 포함하여 이러한 AMIs에 대한 세부 정보를 볼 수 있습니다.

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

```
aws ssm get-parameters-by-path \
    --path "/aws/service/ec2-macos" \
    --region region
```

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

```
aws ssm get-parameters-by-path ^
    --path "/aws/service/ec2-macos" ^
    --region region
```

------

*리전*은 미국 동부(오하이오) 리전의 `us-east-2` 같이 AWS Systems Manager이 지원하는 AWS 리전의 식별자를 나타냅니다. 지원되는 *리전* 값 목록은 **Amazon Web Services 일반 참조의 [Systems Manager 서비스 엔드포인트](https://docs.aws.amazon.com/general/latest/gr/ssm.html#ssm_region)에 있는 **리전** 열을 참조하세요.

명령은 다음과 같은 정보를 반환합니다. 이 예제 출력은 공백을 위해 잘렸습니다.

```
{
    "Parameters": [
        ...sample results pending...
    ]
}
```

경로를 포함하여 전체 AMI 이름과 함께 [GetParameters](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_GetParameters.html) API 작업을 사용하여 특정 AMI의 세부 정보를 볼 수 있습니다. 다음은 명령 예제입니다.

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

```
aws ssm get-parameters \
    --names /aws/service/ec2-macos/...pending... \
    --region us-east-2
```

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

```
aws ssm get-parameters ^
     --names /aws/service/ec2-macos/...pending... ^
    --region us-east-2
```

------

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

```
{
    "Parameters": [
         ...sample results pending...
    ],
    "InvalidParameters": []
}
```

## Windows Server에 대한 AMI 퍼블릭 파라미터 호출
<a name="public-parameters-ami-windows"></a>

AWS CLI에서 다음 명령을 사용하여 현재 AWS 리전의 모든 Windows Server AMIs 목록을 볼 수 있습니다.

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

```
aws ssm get-parameters-by-path \
    --path /aws/service/ami-windows-latest \
    --query 'Parameters[].Name'
```

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

```
aws ssm get-parameters-by-path ^
    --path /aws/service/ami-windows-latest ^
    --query Parameters[].Name
```

------

명령은 다음과 같은 정보를 반환합니다. 이 예제 출력은 공백을 위해 잘렸습니다.

```
[
    "/aws/service/ami-windows-latest/EC2LaunchV2-Windows_Server-2016-English-Full-Base",
    "/aws/service/ami-windows-latest/Windows_Server-2016-English-Full-SQL_2014_SP3_Enterprise",
    "/aws/service/ami-windows-latest/Windows_Server-2016-German-Full-Base",
    "/aws/service/ami-windows-latest/Windows_Server-2016-Japanese-Full-SQL_2016_SP3_Standard",
    "/aws/service/ami-windows-latest/Windows_Server-2016-Japanese-Full-SQL_2017_Web",
    "/aws/service/ami-windows-latest/Windows_Server-2019-English-Core-EKS_Optimized-1.25",
    "/aws/service/ami-windows-latest/Windows_Server-2019-Italian-Full-Base",
    "/aws/service/ami-windows-latest/Windows_Server-2022-Japanese-Full-SQL_2019_Enterprise",
    "/aws/service/ami-windows-latest/Windows_Server-2022-Portuguese_Brazil-Full-Base",
    "/aws/service/ami-windows-latest/amzn2-ami-hvm-2.0.20191217.0-x86_64-gp2-mono",
    "/aws/service/ami-windows-latest/Windows_Server-2016-English-Deep-Learning",
    "/aws/service/ami-windows-latest/Windows_Server-2016-Japanese-Full-SQL_2016_SP3_Web",
    "/aws/service/ami-windows-latest/Windows_Server-2016-Korean-Full-Base",
    "/aws/service/ami-windows-latest/Windows_Server-2019-English-STIG-Core",
    "/aws/service/ami-windows-latest/Windows_Server-2019-French-Full-Base",
    "/aws/service/ami-windows-latest/Windows_Server-2019-Japanese-Full-SQL_2017_Enterprise",
    "/aws/service/ami-windows-latest/Windows_Server-2019-Korean-Full-Base",
    "/aws/service/ami-windows-latest/Windows_Server-2022-English-Full-SQL_2022_Web",
    "/aws/service/ami-windows-latest/Windows_Server-2022-Italian-Full-Base",
    "/aws/service/ami-windows-latest/amzn2-x86_64-SQL_2019_Express",
    "/aws/service/ami-windows-latest/EC2LaunchV2-Windows_Server-2016-English-Core-Base",
    "/aws/service/ami-windows-latest/Windows_Server-2016-English-Full-SQL_2019_Enterprise",
    "/aws/service/ami-windows-latest/Windows_Server-2016-English-Full-SQL_2019_Standard",
    "/aws/service/ami-windows-latest/Windows_Server-2016-Portuguese_Portugal-Full-Base",
    "/aws/service/ami-windows-latest/Windows_Server-2019-English-Core-EKS_Optimized-1.24",
    "/aws/service/ami-windows-latest/Windows_Server-2019-English-Deep-Learning",
    "/aws/service/ami-windows-latest/Windows_Server-2019-English-Full-SQL_2017_Web",
    "/aws/service/ami-windows-latest/Windows_Server-2019-Hungarian-Full-Base
]
```

다음 명령을 사용하여 AMI ID 및 Amazon 리소스 이름(ARN)을 포함하여 이러한 AMIs에 대한 세부 정보를 볼 수 있습니다.

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

```
aws ssm get-parameters-by-path \
    --path "/aws/service/ami-windows-latest" \
    --region region
```

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

```
aws ssm get-parameters-by-path ^
    --path "/aws/service/ami-windows-latest" ^
    --region region
```

------

*리전*은 미국 동부(오하이오) 리전의 `us-east-2` 같이 AWS Systems Manager이 지원하는 AWS 리전의 식별자를 나타냅니다. 지원되는 *리전* 값 목록은 **Amazon Web Services 일반 참조의 [Systems Manager 서비스 엔드포인트](https://docs.aws.amazon.com/general/latest/gr/ssm.html#ssm_region)에 있는 **리전** 열을 참조하세요.

명령은 다음과 같은 정보를 반환합니다. 이 예제 출력은 공백을 위해 잘렸습니다.

```
{
    "Parameters": [
        {
            "Name": "/aws/service/ami-windows-latest/EC2LaunchV2-Windows_Server-2016-English-Full-Base",
            "Type": "String",
            "Value": "ami-0a30b2e65863e2d16",
            "Version": 36,
            "LastModifiedDate": "2024-03-15T15:58:37.976000-04:00",
            "ARN": "arn:aws:ssm:us-east-2::parameter/aws/service/ami-windows-latest/EC2LaunchV2-Windows_Server-2016-English-Full-Base",
            "DataType": "text"
        },
        {
            "Name": "/aws/service/ami-windows-latest/Windows_Server-2016-English-Full-SQL_2014_SP3_Enterprise",
            "Type": "String",
            "Value": "ami-001f20c053dd120ce",
            "Version": 69,
            "LastModifiedDate": "2024-03-15T15:53:58.905000-04:00",
            "ARN": "arn:aws:ssm:us-east-2::parameter/aws/service/ami-windows-latest/Windows_Server-2016-English-Full-SQL_2014_SP3_Enterprise",
            "DataType": "text"
        },
        {
            "Name": "/aws/service/ami-windows-latest/Windows_Server-2016-German-Full-Base",
            "Type": "String",
            "Value": "ami-063be4935453e94e9",
            "Version": 102,
            "LastModifiedDate": "2024-03-15T15:51:12.003000-04:00",
            "ARN": "arn:aws:ssm:us-east-2::parameter/aws/service/ami-windows-latest/Windows_Server-2016-German-Full-Base",
            "DataType": "text"
        }
    ]
}
```

경로를 포함하여 전체 AMI 이름과 함께 [GetParameters](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_GetParameters.html) API 작업을 사용하여 특정 AMI의 세부 정보를 볼 수 있습니다. 다음은 명령 예제입니다.

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

```
aws ssm get-parameters \
    --names /aws/service/ami-windows-latest/EC2LaunchV2-Windows_Server-2016-English-Full-Base \
    --region us-east-2
```

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

```
aws ssm get-parameters ^
    --names /aws/service/ami-windows-latest/EC2LaunchV2-Windows_Server-2016-English-Full-Base ^
    --region us-east-2
```

------

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

```
{
    "Parameters": [
        {
            "Name": "/aws/service/ami-windows-latest/EC2LaunchV2-Windows_Server-2016-English-Full-Base",
            "Type": "String",
            "Value": "ami-0a30b2e65863e2d16",
            "Version": 36,
            "LastModifiedDate": "2024-03-15T15:58:37.976000-04:00",
            "ARN": "arn:aws:ssm:us-east-2::parameter/aws/service/ami-windows-latest/EC2LaunchV2-Windows_Server-2016-English-Full-Base",
            "DataType": "text"
        }
    ],
    "InvalidParameters": []
}
```

# Parameter Store에서 ECS 최적화 AMI 퍼블릭 파라미터 호출
<a name="parameter-store-public-parameters-ecs"></a>

Amazon Elastic Container Service(Amazon ECS) 서비스는 최신 Amazon ECS에 최적화된 Amazon Machine Images(AMIs)의 이름을 퍼블릭 파라미터로 게시합니다. 최적화된 AMIs에는 버그 수정 및 기능 업데이트가 포함되므로 Amazon ECS용 새 Amazon Elastic Compute Cloud(Amazon EC2) 클러스터를 생성할 때 이 AMI를 사용하는 것이 좋습니다.

Amazon Linux 2용 최신 Amazon ECS에 최적화된 AMI의 이름을 보려면 다음 명령을 사용합니다. 다른 운영 체제의 명령을 보려면 *Amazon Elastic Container Service Developer Guide*의 [Retrieving Amazon ECS-Optimized AMI metadata](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/retrieve-ecs-optimized_AMI.html)를 참조하세요.

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

```
aws ssm get-parameters \
    --names /aws/service/ecs/optimized-ami/amazon-linux-2/recommended
```

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

```
aws ssm get-parameters ^
    --names /aws/service/ecs/optimized-ami/amazon-linux-2/recommended
```

------

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

```
{
    "Parameters": [
        {
            "Name": "/aws/service/ecs/optimized-ami/amazon-linux-2/recommended",
            "Type": "String",
            "Value": "{\"schema_version\":1,\"image_name\":\"amzn2-ami-ecs-hvm-2.0.20210929-x86_64-ebs\",\"image_id\":\"ami-0c38a2329ed4dae9a\",\"os\":\"Amazon Linux 2\",\"ecs_runtime_version\":\"Docker version 20.10.7\",\"ecs_agent_version\":\"1.55.4\"}",
            "Version": 73,
            "LastModifiedDate": "2021-10-06T16:35:10.004000-07:00",
            "ARN": "arn:aws:ssm:us-east-2::parameter/aws/service/ecs/optimized-ami/amazon-linux-2/recommended",
            "DataType": "text"
        }
    ],
    "InvalidParameters": []
}
```

# Parameter Store에서 EKS에 최적화된 AMI 퍼블릭 파라미터 호출
<a name="parameter-store-public-parameters-eks"></a>

Amazon Elastic Kubernetes Service(Amazon EKS) 서비스는 최신 Amazon EKS에 최적화된 Amazon Machine Image(AMI)의 이름을 퍼블릭 파라미터로 게시합니다. 새 릴리스에는 Kubernetes 패치 및 보안 업데이트가 포함되어 있으므로 Amazon EKS 클러스터에 노드를 추가할 때 이 AMI를 사용하는 것이 좋습니다. 이전에는 최신 AMI를 사용했는지 확인하기 위해 Amazon EKS 설명서를 확인하고 새 AMI ID로 배포 템플릿 또는 리소스를 수동으로 업데이트해야 했습니다.

Amazon Linux 2용 최신 Amazon EKS에 최적화된 AMI의 이름을 보려면 다음 명령을 사용합니다.

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

```
aws ssm get-parameters \
    --names /aws/service/eks/optimized-ami/1.14/amazon-linux-2/recommended
```

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

```
aws ssm get-parameters ^
    --names /aws/service/eks/optimized-ami/1.14/amazon-linux-2/recommended
```

------

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

```
{
    "Parameters": [
        {
            "Name": "/aws/service/eks/optimized-ami/1.14/amazon-linux-2/recommended",
            "Type": "String",
            "Value": "{\"schema_version\":\"2\",\"image_id\":\"ami-08984d8491de17ca0\",\"image_name\":\"amazon-eks-node-1.14-v20201007\",\"release_version\":\"1.14.9-20201007\"}",
            "Version": 24,
            "LastModifiedDate": "2020-11-17T10:16:09.971000-08:00",
            "ARN": "arn:aws:ssm:us-east-2::parameter/aws/service/eks/optimized-ami/1.14/amazon-linux-2/recommended",
            "DataType": "text"
        }
    ],
    "InvalidParameters": []
}
```

# Parameter Store, 리전, 엔드포인트, 가용 영역, 로컬 영역, Wavelength 영역에 대한 AWS 서비스 퍼블릭 파라미터 호출
<a name="parameter-store-public-parameters-global-infrastructure"></a>

다음 경로를 사용하여 AWS 리전, 서비스, 엔드포인트, 가용성 및 퍼블릭 파라미터의 Wavelength Zone을 호출할 수 있습니다.

`/aws/service/global-infrastructure`

**참고**  
현재 `/aws/service/global-infrastructure` 경로는 다음 AWS 리전의 쿼리에만 지원됩니다.  
미국 동부(버지니아 북부)(us-east-1)
미국 동부(오하이오)(us-east-2)
미국 서부(캘리포니아 북부)(us-west-1)
미국 서부(오리건)(us-west-2) 
아시아 태평양(홍콩)(ap-east-1)
아시아 태평양(뭄바이)(ap-south-1)
아시아 태평양(서울)(ap-northeast-2)
아시아 태평양(싱가포르)(ap-southeast-1)
아시아 태평양(시드니)(ap-southeast-2)
아시아 태평양(도쿄)(ap-northeast-1)
캐나다(중부)(ca-central-1)
유럽(프랑크푸르트)(eu-central-1)
유럽(아일랜드)(eu-west-1) 
유럽(런던) (eu-west-2) 
유럽(파리) (eu-west-3) 
유럽(스톡홀름)(eu-north-1)
남아메리카(상파울루)(sa-east-1)
다른 [상업 리전](https://docs.aws.amazon.com/glossary/latest/reference/glos-chap.html#region)에서 작업하는 경우, 쿼리에 지원 리전을 지정하여 결과를 볼 수 있습니다. 예를 들어, 캐나다 서부(캘거리)(ca-west-1) 리전에서 작업하는 경우 쿼리에 캐나다(중부)(ca-central-1)를 지정할 수 있습니다.  

```
aws ssm get-parameters-by-path \
    --path /aws/service/global-infrastructure/regions \
    --region ca-central-1
```

**활성 AWS 리전 보기**  
AWS Command Line Interface(AWS CLI)에서 다음 명령을 사용하여 모든 활성 AWS 리전 목록을 볼 수 있습니다.

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

```
aws ssm get-parameters-by-path \
    --path /aws/service/global-infrastructure/regions \
    --query 'Parameters[].Name'
```

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

```
aws ssm get-parameters-by-path ^
    --path /aws/service/global-infrastructure/regions ^
    --query Parameters[].Name
```

------

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

```
[
    "/aws/service/global-infrastructure/regions/af-south-1",
    "/aws/service/global-infrastructure/regions/ap-east-1",
    "/aws/service/global-infrastructure/regions/ap-northeast-3",
    "/aws/service/global-infrastructure/regions/ap-south-2",
    "/aws/service/global-infrastructure/regions/ca-central-1",
    "/aws/service/global-infrastructure/regions/eu-central-2",
    "/aws/service/global-infrastructure/regions/eu-west-2",
    "/aws/service/global-infrastructure/regions/eu-west-3",
    "/aws/service/global-infrastructure/regions/us-east-1",
    "/aws/service/global-infrastructure/regions/us-gov-west-1",
    "/aws/service/global-infrastructure/regions/ap-northeast-2",
    "/aws/service/global-infrastructure/regions/ap-southeast-1",
    "/aws/service/global-infrastructure/regions/ap-southeast-2",
    "/aws/service/global-infrastructure/regions/ap-southeast-3",
    "/aws/service/global-infrastructure/regions/cn-north-1",
    "/aws/service/global-infrastructure/regions/cn-northwest-1",
    "/aws/service/global-infrastructure/regions/eu-south-1",
    "/aws/service/global-infrastructure/regions/eu-south-2",
    "/aws/service/global-infrastructure/regions/us-east-2",
    "/aws/service/global-infrastructure/regions/us-west-1",
    "/aws/service/global-infrastructure/regions/ap-northeast-1",
    "/aws/service/global-infrastructure/regions/ap-south-1",
    "/aws/service/global-infrastructure/regions/ap-southeast-4",
    "/aws/service/global-infrastructure/regions/ca-west-1",
    "/aws/service/global-infrastructure/regions/eu-central-1",
    "/aws/service/global-infrastructure/regions/il-central-1",
    "/aws/service/global-infrastructure/regions/me-central-1",
    "/aws/service/global-infrastructure/regions/me-south-1",
    "/aws/service/global-infrastructure/regions/sa-east-1",
    "/aws/service/global-infrastructure/regions/us-gov-east-1",
    "/aws/service/global-infrastructure/regions/eu-north-1",
    "/aws/service/global-infrastructure/regions/eu-west-1",
    "/aws/service/global-infrastructure/regions/us-west-2"
]
```

**사용 가능한 AWS 서비스 보기**  
사용 가능한 모든 AWS 서비스의 전체 목록을 보고 다음 명령을 사용하여 사전순으로 정렬할 수 있습니다. 이 예제 출력은 공백을 위해 잘렸습니다.

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

```
aws ssm get-parameters-by-path \
    --path /aws/service/global-infrastructure/services \
    --query 'Parameters[].Name | sort(@)'
```

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

```
aws ssm get-parameters-by-path ^
    --path /aws/service/global-infrastructure/services ^
    --query "Parameters[].Name | sort(@)"
```

------

명령은 다음과 같은 정보를 반환합니다. 이 예제는 공백을 위해 잘렸습니다.

```
[
     "/aws/service/global-infrastructure/services/accessanalyzer",
    "/aws/service/global-infrastructure/services/account",
    "/aws/service/global-infrastructure/services/acm",
    "/aws/service/global-infrastructure/services/acm-pca",
    "/aws/service/global-infrastructure/services/ahl",
    "/aws/service/global-infrastructure/services/aiq",
    "/aws/service/global-infrastructure/services/amazonlocationservice",
    "/aws/service/global-infrastructure/services/amplify",
    "/aws/service/global-infrastructure/services/amplifybackend",
    "/aws/service/global-infrastructure/services/apigateway",
    "/aws/service/global-infrastructure/services/apigatewaymanagementapi",
    "/aws/service/global-infrastructure/services/apigatewayv2",
    "/aws/service/global-infrastructure/services/appconfig",
    "/aws/service/global-infrastructure/services/appconfigdata",
    "/aws/service/global-infrastructure/services/appflow",
    "/aws/service/global-infrastructure/services/appintegrations",
    "/aws/service/global-infrastructure/services/application-autoscaling",
    "/aws/service/global-infrastructure/services/application-insights",
    "/aws/service/global-infrastructure/services/applicationcostprofiler",
    "/aws/service/global-infrastructure/services/appmesh",
    "/aws/service/global-infrastructure/services/apprunner",
    "/aws/service/global-infrastructure/services/appstream",
    "/aws/service/global-infrastructure/services/appsync",
    "/aws/service/global-infrastructure/services/aps",
    "/aws/service/global-infrastructure/services/arc-zonal-shift",
    "/aws/service/global-infrastructure/services/artifact",
    "/aws/service/global-infrastructure/services/athena",
    "/aws/service/global-infrastructure/services/auditmanager",
    "/aws/service/global-infrastructure/services/augmentedairuntime",
    "/aws/service/global-infrastructure/services/aurora",
    "/aws/service/global-infrastructure/services/autoscaling",
    "/aws/service/global-infrastructure/services/aws-appfabric",
    "/aws/service/global-infrastructure/services/awshealthdashboard",
```

**AWS 서비스에 대해 지원되는 리전 보기**  
서비스를 사용할 수 있는 AWS 리전 목록을 볼 수 있습니다. 이 예에서는 AWS Systems Manager(`ssm`)를 사용합니다.

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

```
aws ssm get-parameters-by-path \
    --path /aws/service/global-infrastructure/services/ssm/regions \
    --query 'Parameters[].Value'
```

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

```
aws ssm get-parameters-by-path ^
    --path /aws/service/global-infrastructure/services/ssm/regions ^
    --query Parameters[].Value
```

------

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

```
[
    "ap-south-1",
    "eu-central-1",
    "eu-central-2",
    "eu-west-1",
    "eu-west-2",
    "eu-west-3",
    "il-central-1",
    "me-south-1",
    "us-east-2",
    "us-gov-west-1",
    "af-south-1",
    "ap-northeast-3",
    "ap-southeast-1",
    "ap-southeast-4",
    "ca-central-1",
    "ca-west-1",
    "cn-north-1",
    "eu-north-1",
    "eu-south-2",
    "us-west-1",
    "ap-east-1",
    "ap-northeast-1",
    "ap-northeast-2",
    "ap-southeast-2",
    "ap-southeast-3",
    "cn-northwest-1",
    "eu-south-1",
    "me-central-1",
    "us-gov-east-1",
    "us-west-2",
    "ap-south-2",
    "sa-east-1",
    "us-east-1"
]
```

**서비스에 대한 리전 엔드포인트 보기**  
다음 명령을 사용하여 서비스의 리전별 엔드포인트를 볼 수 있습니다. 이 명령은 미국 동부(오하이오)(us-east-2) 리전을 쿼리합니다.

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

```
aws ssm get-parameter \
    --name /aws/service/global-infrastructure/regions/us-east-2/services/ssm/endpoint \
    --query 'Parameter.Value'
```

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

```
aws ssm get-parameter ^
    --name /aws/service/global-infrastructure/regions/us-east-2/services/ssm/endpoint ^
    --query Parameter.Value
```

------

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

```
"ssm.us-east-2.amazonaws.com"
```

**전체 가용 영역 세부 정보 보기**  
다음 명령을 사용하여 가용 영역을 볼 수 있습니다.

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

```
aws ssm get-parameters-by-path \
    --path /aws/service/global-infrastructure/availability-zones/
```

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

```
aws ssm get-parameters-by-path ^
    --path /aws/service/global-infrastructure/availability-zones/
```

------

명령은 다음과 같은 정보를 반환합니다. 이 예제는 공백을 위해 잘렸습니다.

```
{
    "Parameters": [
        {
            "Name": "/aws/service/global-infrastructure/availability-zones/afs1-az3",
            "Type": "String",
            "Value": "afs1-az3",
            "Version": 1,
            "LastModifiedDate": "2020-04-21T12:05:35.375000-04:00",
            "ARN": "arn:aws:ssm:us-east-2::parameter/aws/service/global-infrastructure/availability-zones/afs1-az3",
            "DataType": "text"
        },
        {
            "Name": "/aws/service/global-infrastructure/availability-zones/aps1-az2",
            "Type": "String",
            "Value": "aps1-az2",
            "Version": 1,
            "LastModifiedDate": "2020-04-03T16:13:57.351000-04:00",
            "ARN": "arn:aws:ssm:us-east-2::parameter/aws/service/global-infrastructure/availability-zones/aps1-az2",
            "DataType": "text"
        },
        {
            "Name": "/aws/service/global-infrastructure/availability-zones/apse3-az1",
            "Type": "String",
            "Value": "apse3-az1",
            "Version": 1,
            "LastModifiedDate": "2021-12-13T08:51:38.983000-05:00",
            "ARN": "arn:aws:ssm:us-east-2::parameter/aws/service/global-infrastructure/availability-zones/apse3-az1",
            "DataType": "text"
        }
    ]
}
```

**가용 영역 이름만 보기**  
다음 명령을 사용하여 가용 영역의 이름만 볼 수 있습니다.

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

```
aws ssm get-parameters-by-path \
    --path /aws/service/global-infrastructure/availability-zones \
    --query 'Parameters[].Name | sort(@)'
```

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

```
aws ssm get-parameters-by-path ^
    --path /aws/service/global-infrastructure/availability-zones ^
    --query "Parameters[].Name | sort(@)"
```

------

명령은 다음과 같은 정보를 반환합니다. 이 예제는 공백을 위해 잘렸습니다.

```
[
    "/aws/service/global-infrastructure/availability-zones/afs1-az1",
    "/aws/service/global-infrastructure/availability-zones/afs1-az2",
    "/aws/service/global-infrastructure/availability-zones/afs1-az3",
    "/aws/service/global-infrastructure/availability-zones/ape1-az1",
    "/aws/service/global-infrastructure/availability-zones/ape1-az2",
    "/aws/service/global-infrastructure/availability-zones/ape1-az3",
    "/aws/service/global-infrastructure/availability-zones/apne1-az1",
    "/aws/service/global-infrastructure/availability-zones/apne1-az2",
    "/aws/service/global-infrastructure/availability-zones/apne1-az3",
    "/aws/service/global-infrastructure/availability-zones/apne1-az4"
```

**단일 리전의 가용 영역 이름 보기**  
다음 명령을 사용하여 한 리전(이 예제의 경우 `us-east-2`)에 있는 가용 영역의 이름을 볼 수 있습니다.

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

```
aws ssm get-parameters-by-path \
    --path /aws/service/global-infrastructure/regions/us-east-2/availability-zones \
    --query 'Parameters[].Name | sort(@)'
```

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

```
aws ssm get-parameters-by-path ^
    --path /aws/service/global-infrastructure/regions/us-east-2/availability-zones ^
    --query "Parameters[].Name | sort(@)"
```

------

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

```
[
    "/aws/service/global-infrastructure/regions/us-east-2/availability-zones/use2-az1",
    "/aws/service/global-infrastructure/regions/us-east-2/availability-zones/use2-az2",
    "/aws/service/global-infrastructure/regions/us-east-2/availability-zones/use2-az3"
```

**가용 영역 ARN만 보기**  
다음 명령을 사용하여 가용 영역의 Amazon 리소스 이름(ARN)만 볼 수 있습니다.

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

```
aws ssm get-parameters-by-path \
    --path /aws/service/global-infrastructure/availability-zones \
    --query 'Parameters[].ARN | sort(@)'
```

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

```
aws ssm get-parameters-by-path ^
    --path /aws/service/global-infrastructure/availability-zones ^
    --query "Parameters[].ARN | sort(@)"
```

------

명령은 다음과 같은 정보를 반환합니다. 이 예제는 공백을 위해 잘렸습니다.

```
[
    "arn:aws:ssm:us-east-2::parameter/aws/service/global-infrastructure/availability-zones/afs1-az1",
    "arn:aws:ssm:us-east-2::parameter/aws/service/global-infrastructure/availability-zones/afs1-az2",
    "arn:aws:ssm:us-east-2::parameter/aws/service/global-infrastructure/availability-zones/afs1-az3",
    "arn:aws:ssm:us-east-2::parameter/aws/service/global-infrastructure/availability-zones/ape1-az1",
    "arn:aws:ssm:us-east-2::parameter/aws/service/global-infrastructure/availability-zones/ape1-az2",
    "arn:aws:ssm:us-east-2::parameter/aws/service/global-infrastructure/availability-zones/ape1-az3",
    "arn:aws:ssm:us-east-2::parameter/aws/service/global-infrastructure/availability-zones/apne1-az1",
```

**로컬 영역 세부 정보 보기**  
다음 명령을 사용하여 로컬 영역을 볼 수 있습니다.

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

```
aws ssm get-parameters-by-path \
    --path /aws/service/global-infrastructure/local-zones
```

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

```
aws ssm get-parameters-by-path ^
    --path /aws/service/global-infrastructure/local-zones
```

------

명령은 다음과 같은 정보를 반환합니다. 이 예제는 공백을 위해 잘렸습니다.

```
{
    "Parameters": [
        {
            "Name": "/aws/service/global-infrastructure/local-zones/afs1-los1-az1",
            "Type": "String",
            "Value": "afs1-los1-az1",
            "Version": 1,
            "LastModifiedDate": "2023-01-25T11:53:11.690000-05:00",
            "ARN": "arn:aws:ssm:us-east-2::parameter/aws/service/global-infrastructure/local-zones/afs1-los1-az1",
            "DataType": "text"
        },
        {
            "Name": "/aws/service/global-infrastructure/local-zones/apne1-tpe1-az1",
            "Type": "String",
            "Value": "apne1-tpe1-az1",
            "Version": 1,
            "LastModifiedDate": "2024-03-15T12:35:41.076000-04:00",
            "ARN": "arn:aws:ssm:us-east-2::parameter/aws/service/global-infrastructure/local-zones/apne1-tpe1-az1",
            "DataType": "text"
        },
        {
            "Name": "/aws/service/global-infrastructure/local-zones/aps1-ccu1-az1",
            "Type": "String",
            "Value": "aps1-ccu1-az1",
            "Version": 1,
            "LastModifiedDate": "2022-12-19T11:34:43.351000-05:00",
            "ARN": "arn:aws:ssm:us-east-2::parameter/aws/service/global-infrastructure/local-zones/aps1-ccu1-az1",
            "DataType": "text"
        }
    ]
}
```

**Wavelength Zone 세부 정보 보기**  
다음 명령을 사용하여 Wavelength Zone을 볼 수 있습니다.

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

```
aws ssm get-parameters-by-path \
    --path /aws/service/global-infrastructure/wavelength-zones
```

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

```
aws ssm get-parameters-by-path ^
    --path /aws/service/global-infrastructure/wavelength-zones
```

------

명령은 다음과 같은 정보를 반환합니다. 이 예제는 공백을 위해 잘렸습니다.

```
{
    "Parameters": [
        {
            "Name": "/aws/service/global-infrastructure/wavelength-zones/apne1-wl1-nrt-wlz1",
            "Type": "String",
            "Value": "apne1-wl1-nrt-wlz1",
            "Version": 3,
            "LastModifiedDate": "2020-12-15T17:16:04.715000-05:00",
            "ARN": "arn:aws:ssm:us-east-2::parameter/aws/service/global-infrastructure/wavelength-zones/apne1-wl1-nrt-wlz1",
            "DataType": "text"
        },
        {
            "Name": "/aws/service/global-infrastructure/wavelength-zones/apne2-wl1-sel-wlz1",
            "Type": "String",
            "Value": "apne2-wl1-sel-wlz1",
            "Version": 1,
            "LastModifiedDate": "2022-05-25T12:29:13.862000-04:00",
            "ARN": "arn:aws:ssm:us-east-2::parameter/aws/service/global-infrastructure/wavelength-zones/apne2-wl1-sel-wlz1",
            "DataType": "text"
        },
        {
            "Name": "/aws/service/global-infrastructure/wavelength-zones/cac1-wl1-yto-wlz1",
            "Type": "String",
            "Value": "cac1-wl1-yto-wlz1",
            "Version": 1,
            "LastModifiedDate": "2022-04-26T09:57:44.495000-04:00",
            "ARN": "arn:aws:ssm:us-east-2::parameter/aws/service/global-infrastructure/wavelength-zones/cac1-wl1-yto-wlz1",
            "DataType": "text"
        }
    ]
}
```

**로컬 영역에 있는 모든 파라미터 및 값 보기**  
다음 명령을 사용하여 로컬 영역에 대한 모든 파라미터 데이터를 볼 수 있습니다.

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

```
aws ssm get-parameters-by-path \
    --path "/aws/service/global-infrastructure/local-zones/usw2-lax1-az1/"
```

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

```
aws ssm get-parameters-by-path ^
    --path "/aws/service/global-infrastructure/local-zones/use1-bos1-az1"
```

------

명령은 다음과 같은 정보를 반환합니다. 이 예제는 공백을 위해 잘렸습니다.

```
{
    "Parameters": [
        {
            "Name": "/aws/service/global-infrastructure/local-zones/use1-bos1-az1/geolocationCountry",
            "Type": "String",
            "Value": "US",
            "Version": 3,
            "LastModifiedDate": "2020-12-15T14:16:17.641000-08:00",
            "ARN": "arn:aws:ssm:us-east-2::parameter/aws/service/global-infrastructure/local-zones/use1-bos1-az1/geolocationCountry",
            "DataType": "text"
        },
        {
            "Name": "/aws/service/global-infrastructure/local-zones/use1-bos1-az1/geolocationRegion",
            "Type": "String",
            "Value": "US-MA",
            "Version": 3,
            "LastModifiedDate": "2020-12-15T14:16:17.794000-08:00",
            "ARN": "arn:aws:ssm:us-east-2::parameter/aws/service/global-infrastructure/local-zones/use1-bos1-az1/geolocationRegion",
            "DataType": "text"
        },
        {
            "Name": "/aws/service/global-infrastructure/local-zones/use1-bos1-az1/location",
            "Type": "String",
            "Value": "US East (Boston)",
            "Version": 1,
            "LastModifiedDate": "2021-01-11T10:53:24.634000-08:00",
            "ARN": "arn:aws:ssm:us-east-2::parameter/aws/service/global-infrastructure/local-zones/use1-bos1-az1/location",
            "DataType": "text"
        },
        {
            "Name": "/aws/service/global-infrastructure/local-zones/use1-bos1-az1/network-border-group",
            "Type": "String",
            "Value": "us-east-1-bos-1",
            "Version": 3,
            "LastModifiedDate": "2020-12-15T14:16:20.641000-08:00",
            "ARN": "arn:aws:ssm:us-east-2::parameter/aws/service/global-infrastructure/local-zones/use1-bos1-az1/network-border-group",
            "DataType": "text"
        },
        {
            "Name": "/aws/service/global-infrastructure/local-zones/use1-bos1-az1/parent-availability-zone",
            "Type": "String",
            "Value": "use1-az4",
            "Version": 3,
            "LastModifiedDate": "2020-12-15T14:16:20.834000-08:00",
            "ARN": "arn:aws:ssm:us-east-2::parameter/aws/service/global-infrastructure/local-zones/use1-bos1-az1/parent-availability-zone",
            "DataType": "text"
        },
        {
            "Name": "/aws/service/global-infrastructure/local-zones/use1-bos1-az1/parent-region",
            "Type": "String",
            "Value": "us-east-1",
            "Version": 3,
            "LastModifiedDate": "2020-12-15T14:16:20.721000-08:00",
            "ARN": "arn:aws:ssm:us-east-2::parameter/aws/service/global-infrastructure/local-zones/use1-bos1-az1/parent-region",
            "DataType": "text"
        },
        {
            "Name": "/aws/service/global-infrastructure/local-zones/use1-bos1-az1/zone-group",
            "Type": "String",
            "Value": "us-east-1-bos-1",
            "Version": 3,
            "LastModifiedDate": "2020-12-15T14:16:17.983000-08:00",
            "ARN": "arn:aws:ssm:us-east-2::parameter/aws/service/global-infrastructure/local-zones/use1-bos1-az1/zone-group",
            "DataType": "text"
        }
    ]
}
```

**로컬 영역 파라미터 이름만 보기**  
다음 명령을 사용하여 로컬 영역 파라미터의 이름만 볼 수 있습니다.

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

```
aws ssm get-parameters-by-path \
    --path /aws/service/global-infrastructure/local-zones/usw2-lax1-az1 \
    --query 'Parameters[].Name | sort(@)'
```

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

```
aws ssm get-parameters-by-path ^
    --path /aws/service/global-infrastructure/local-zones/use1-bos1-az1 ^
    --query "Parameters[].Name | sort(@)"
```

------

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

```
[
    "/aws/service/global-infrastructure/local-zones/use1-bos1-az1/geolocationCountry",
    "/aws/service/global-infrastructure/local-zones/use1-bos1-az1/geolocationRegion",
    "/aws/service/global-infrastructure/local-zones/use1-bos1-az1/location",
    "/aws/service/global-infrastructure/local-zones/use1-bos1-az1/network-border-group",
    "/aws/service/global-infrastructure/local-zones/use1-bos1-az1/parent-availability-zone",
    "/aws/service/global-infrastructure/local-zones/use1-bos1-az1/parent-region",
    "/aws/service/global-infrastructure/local-zones/use1-bos1-az1/zone-group"
]
```

# Parameter Store 연습
<a name="sysman-paramstore-walk"></a>

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

**Topics**
+ [

# Parameter Store에서 SecureString 파라미터를 생성하고 도메인에 노드 조인(PowerShell)
](sysman-param-securestring-walkthrough.md)

# Parameter Store에서 SecureString 파라미터를 생성하고 도메인에 노드 조인(PowerShell)
<a name="sysman-param-securestring-walkthrough"></a>

이 연습에서는 AWS Systems Manager `SecureString` 파라미터와 Run Command를 사용하여 Windows Server 노드를 도메인에 조인하는 방법을 보여줍니다. 본 연습에서는 도메인 이름 및 도메인 사용자 이름과 같은 일반적인 도메인 파라미터를 사용합니다. 이러한 값은 암호화되지 않은 문자열 값으로 전달됩니다. 도메인 암호는 AWS 관리형 키를 통해 암호화되어 암호화된 문자열로 전달됩니다.

**사전 조건**  
이 시연에서는 Amazon VPC와 연결된 DHCP 옵션 집합에 도메인 이름과 DNS 서버 IP 주소를 이미 지정했다고 가정합니다. 자세한 내용은 *Amazon VPC 사용 설명서*의 [DHCP 옵션 집합을 사용한 작업](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_DHCP_Options.html#DHCPOptionSet)을 참조하세요.

**`SecureString` 파라미터를 생성하고 도메인에 노드를 조인**

1. AWS Tools for Windows PowerShell를 사용하여 시스템에 파라미터를 입력합니다.

   다음 명령에서는 자신의 정보로 각각의 *사용자 입력 자리 표시자*를 바꿉니다.

   ```
   Write-SSMParameter -Name "domainName" -Value "DOMAIN-NAME" -Type String
   Write-SSMParameter -Name "domainJoinUserName" -Value "DOMAIN\USERNAME" -Type String
   Write-SSMParameter -Name "domainJoinPassword" -Value "PASSWORD" -Type SecureString
   ```
**중요**  
`SecureString` 파라미터의 *값*만 암호화됩니다. 파라미터 이름, 설명 및 기타 속성은 암호화되지 않습니다.

1. 다음 AWS Identity and Access Management(IAM) 정책을 노드에 대한 IAM 역할 권한에 연결합니다.
   + **AmazonSSMManagedInstanceCore** - 필수. 이 AWS 관리형 정책을 사용하면 관리형 노드가 Systems Manager 서비스 핵심 기능을 사용할 수 있습니다.
   + **AmazonSSMDirectoryServiceAccess** - 필수. 이 AWS 관리형 정책은 SSM Agent가 관리형 노드의 도메인 조인 요청을 위해 사용자 대신 AWS Directory Service에 액세스하도록 허용합니다.
   + **Amazon Simple Storage Service(Amazon S3) 버킷 액세스를 위한 사용자 정의 정책** – 필수. 노드에 있으면서 Systems Manager 태스크를 수행하는 SSM Agent에는 특정 Amazon 소유의 Amazon Simple Storage Service(Amazon S3) 버킷에 대한 액세스가 필요합니다. 생성한 사용자 정의 S3 버킷 정책에서는 Systems Manager 작업에 필요한 자체의 S3 버킷에 대한 액세스도 제공합니다.

     예제: Run Command 명령 또는 Session Manager 세션에 대한 출력을 S3 버킷에 쓴 다음, 감사 또는 문제 해결을 위해 나중에 이 출력을 사용할 수 있습니다. 액세스 스크립트 또는 사용자 지정 패치 기준 목록을S3 버킷에 저장한 다음, 명령을 실행하거나 패치 기준이 적용될 때 스크립트 또는 목록을 참조할 수 있습니다.

     Amazon S3 버킷 액세스를 위한 사용자 정의 정책 생성에 대한 자세한 내용은 [인스턴스 프로파일에 대한 사용자 정의 S3 버킷 정책 생성](setup-instance-permissions.md#instance-profile-custom-s3-policy)을 참조하세요.
**참고**  
S3 버킷에 출력 로그 데이터 저장은 옵션이지만 이 옵션을 사용하기로 결정한 경우에는 Systems Manager 구성 프로세스 시작 시 옵션을 설정하는 것이 좋습니다. 자세한 내용은 *Amazon Simple Storage Service 사용 설명서*의 [버킷 생성](https://docs.aws.amazon.com/AmazonS3/latest/userguide/CreatingABucket.html)을 참조하세요.
   + **CloudWatchAgentServerPolicy** - 선택. 이 AWS 관리형 정책은 관리형 노드에서 CloudWatch 에이전트를 실행하도록 허용합니다. 이 정책을 사용하면 노드에서 정보를 읽고 Amazon CloudWatch에 쓸 수 있습니다. Amazon EventBridge 또는 CloudWatch Logs 등의 서비스를 사용할 경우에만 인스턴스 프로파일에 이 정책이 필요합니다.
**참고**  
CloudWatch 및 EventBridge 기능의 사용은 선택적이지만, 이 기능을 사용하기로 결정한 경우에는 Systems Manager 구성 프로세스 시작 시에 설정하는 것이 좋습니다. 자세한 내용은 *[Amazon EventBridge User Guide](https://docs.aws.amazon.com/eventbridge/latest/userguide/)*와 *[Amazon CloudWatch Logs User Guide](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/)*를 참조하세요.

1. 노드에 연결된 IAM 역할을 편집하고 다음 정책을 추가합니다. 이 정책은 `kms:Decrypt`와 `ssm:CreateDocument` API를 호출하는 노드 권한을 부여합니다.

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "kms:Decrypt",
                   "ssm:CreateDocument"
               ],
               "Resource": [
                   "arn:aws:kms:us-east-1:111122223333:key/kms-key-id"
               ]
           }
       ]
   }
   ```

------

1. 다음 json 텍스트를 복사하여 텍스트 편집기에 붙여넣은 다음 이 파일을 `c:\temp\JoinInstanceToDomain.json` 위치에 `JoinInstanceToDomain.json`으로 저장합니다.

   ```
   {
       "schemaVersion": "2.2",
       "description": "Run a PowerShell script to securely join a Windows Server instance to a domain",
       "mainSteps": [
           {
               "action": "aws:runPowerShellScript",
               "name": "runPowerShellWithSecureString",
               "precondition": {
                   "StringEquals": [
                       "platformType",
                       "Windows"
                   ]
               },
               "inputs": {
                   "runCommand": [
                       "$domain = (Get-SSMParameterValue -Name domainName).Parameters[0].Value",
                       "if ((gwmi Win32_ComputerSystem).domain -eq $domain){write-host \"Computer is part of $domain, exiting\"; exit 0}",
                       "$username = (Get-SSMParameterValue -Name domainJoinUserName).Parameters[0].Value",
                       "$password = (Get-SSMParameterValue -Name domainJoinPassword -WithDecryption $True).Parameters[0].Value | ConvertTo-SecureString -asPlainText -Force",
                       "$credential = New-Object System.Management.Automation.PSCredential($username,$password)",
                       "Add-Computer -DomainName $domain -Credential $credential -ErrorAction SilentlyContinue -ErrorVariable domainjoinerror",
                       "if($?){Write-Host \"Instance joined to domain successfully. Restarting\"; exit 3010}else{Write-Host \"Instance failed to join domain with error:\" $domainjoinerror; exit 1 }"
                   ]
               }
           }
       ]
   }
   ```

1. Tools for Windows PowerShell에서 다음 명령을 실행하여 새 SSM 문서를 생성합니다.

   ```
   $json = Get-Content C:\temp\JoinInstanceToDomain | Out-String
   New-SSMDocument -Name JoinInstanceToDomain -Content $json -DocumentType Command
   ```

1. Tools for Windows PowerShell에서 다음 명령을 실행하여 노드를 도메인에 조인합니다.

   ```
   Send-SSMCommand -InstanceId instance-id -DocumentName JoinInstanceToDomain 
   ```

   명령이 제대로 실행되면 시스템에서 다음과 비슷한 정보를 반환합니다.

   ```
   WARNING: The changes will take effect after you restart the computer EC2ABCD-EXAMPLE.
   Domain join succeeded, restarting
   Computer is part of example.local, exiting
   ```

   명령이 제대로 실행되지 않으면 시스템에서 다음과 비슷한 정보를 반환합니다.

   ```
   Failed to join domain with error:
   Computer 'EC2ABCD-EXAMPLE' failed to join domain 'example.local'
   from its current workgroup 'WORKGROUP' with following error message:
   The specified domain either does not exist or could not be contacted.
   ```

# Parameter Store 활동 감사 및 로깅
<a name="parameter-store-logging-auditing"></a>

AWS CloudTrail에서는 AWS Systems Manager 콘솔, AWS Command Line Interface(AWS CLI) 및 Systems Manager SDK에서 생성된 API 호출을 캡처합니다. 이 정보는 CloudTrail 콘솔 또는 Amazon Simple Storage Service(Amazon S3) 버킷에서 볼 수 있습니다. 계정에 대한 모든 CloudTrail 로그는 하나의 버킷을 사용합니다. Systems Manager 활동의 CloudTrail 로그 보기 및 사용에 대한 자세한 내용은 [AWS CloudTrail를 사용하여 AWS Systems Manager API 호출 로깅](monitoring-cloudtrail-logs.md) 섹션을 참조하세요. Systems Manager에 대한 자세한 감사 및 로깅 옵션은 [AWS Systems Manager에서 로깅 및 모니터링](monitoring.md) 섹션을 참조하세요.

# Parameter Store 문제 해결
<a name="parameter-store-troubleshooting"></a>

다음 정보를 사용하면 AWS Systems Manager의 도구인 Parameter Store 관련 문제를 해결하는 데 도움이 됩니다.

## `aws:ec2:image` 파라미터 생성 문제 해결
<a name="ps-ec2-aliases-troubleshooting"></a>

다음 정보를 사용하면 `aws:ec2:image` 데이터 유형 파라미터 생성과 관련된 문제를 해결하는 데 도움이 됩니다.

### 인스턴스 생성 권한 없음
<a name="ps-ec2-aliases-0"></a>

**문제**: `aws:ec2:image` 파라미터를 사용하여 인스턴스를 생성하려고 하지만 "이 작업을 수행할 권한이 없습니다" 라는 오류 메시지가 표시됩니다.
+ **해결 방법**: 파라미터 값을 사용하여 EC2 인스턴스를 생성하는 데 필요한 모든 권한(예: `ec2:RunInstances`, `ec2:DescribeImages`, `ssm:GetParameter` 등에 대한 권한)이 없습니다. 조직의 관리자 권한을 가진 사용자에게 문의하여 필요한 권한을 요청합니다.

### EventBridge에서 “리소스를 설명할 수 없음(Unable to Describe Resource)”라는 실패 메시지를 보고합니다.
<a name="ps-ec2-aliases-1"></a>

**문제**: `aws:ec2:image` 파라미터를 생성하는 명령을 실행했지만 파라미터를 생성하지 못했습니다. Amazon EventBridge로부터 “리소스를 설명할 수 없음(Unable to Describe Resource)”라는 예외를 보고하는 알림을 받습니다.

**해결 방법**: 이러한 메시지를 받는 이유는 다음 경우일 수 있습니다.
+ `ec2:DescribeImages` API 작업에 필요한 모든 권한이 없거나 파라미터에서 참조된 특정 이미지에 액세스할 수 있는 권한이 없습니다. 조직의 관리자 권한을 가진 사용자에게 문의하여 필요한 권한을 요청합니다.
+ 파라미터 값으로 입력한 Amazon Machine Image(AMI) ID가 유효하지 않습니다. 현재 작업 중인 AWS 리전 및 계정에서 사용할 수 있는 AMI ID를 입력했는지 확인합니다.

### 새 `aws:ec2:image` 파라미터를 사용할 수 없습니다.
<a name="ps-ec2-aliases-2"></a>

**문제**: `aws:ec2:image` 파라미터를 생성하는 명령을 실행했고 버전 번호가 보고되었지만 파라미터를 사용할 수 없습니다.
+ **해결 방법**: `aws:ec2:image` 데이터 유형을 사용하는 파라미터를 생성하기 위해 명령을 실행하면 파라미터에 대한 버전 번호는 즉시 생성되지만 파라미터를 사용하기 전에 파라미터 형식을 검증해야 합니다. 이 프로세스는 몇 분 이상 걸릴 수 있습니다. 파라미터 생성 및 검증 프로세스를 모니터링하려면 다음을 수행합니다.
  + EventBridge를 사용하여 파라미터 작업의 `create` 및 `update`에 대한 알림을 받습니다. 이러한 알림은 파라미터 작업의 성공 여부를 보고합니다. EventBridge에서 Parameter Store 이벤트 구독에 대한 자세한 내용은 [Parameter Store 이벤트 기반 알림 설정 또는 작업 트리거](sysman-paramstore-cwe.md) 섹션을 참조하세요.
  + Systems Manager 콘솔의 Parameter Store 섹션에서 파라미터 목록을 주기적으로 새로 고쳐 새 파라미터 세부 정보 또는 업데이트된 파라미터 세부 정보를 검색합니다.
  + **GetParameter** 명령을 사용하여 새 파라미터 또는 업데이트된 파라미터를 확인합니다. 예를 들어 AWS Command Line Interface(AWS CLI)를 사용합니다.

    ```
    aws ssm get-parameter name MyParameter
    ```

    새 파라미터의 경우, 파라미터를 검증할 때까지 `ParameterNotFound` 메시지가 반환됩니다. 업데이트 중인 기존 파라미터의 경우 파라미터를 검증할 때까지 새 버전에 대한 정보가 포함되지 않습니다.

  검증 프로세스가 완료되기 전에 파라미터를 다시 생성하거나 업데이트하려고 하면 시스템은 검증이 아직 진행 중에 있음을 보고합니다. 파라미터가 생성되거나 업데이트되지 않으면 첫 시도 시점에서 5분이 지난 후에 다시 시도할 수 있습니다.