AWS CLI를 사용하여 Parameter Store 파라미터 생성 - AWS Systems Manager

AWS CLI를 사용하여 Parameter Store 파라미터 생성

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

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

참고

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

AWS CLI를 사용하여 String 파라미터 생성

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

    자세한 내용은 최신 버전의 AWS CLI 설치 또는 업데이트를 참조하세요.

  2. 다음 명령을 실행하여 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에서의 파라미터 계층 구조 작업 섹션을 참조하세요.

    AMI ID를 포함하는 파라미터를 생성하는 경우에만 --data-type 옵션을 지정해야 합니다. 입력한 파라미터 값이 올바른 형식의 Amazon Elastic Compute Cloud(Amazon EC2) AMI ID인지 검증합니다. 다른 모든 파라미터의 경우 기본 데이터 형식은 text이며 값을 지정하는 것은 옵션입니다. 자세한 내용은 Parameter Store의 네이티브 파라미터 지원을 Amazon Machine Image ID에 사용 단원을 참조하십시오.

    중요

    성공할 경우 명령은 파라미터의 버전 번호를 반환합니다. 예외: aws:ec2:image를 데이터 형식으로 지정한 경우 응답에서 새 버전 번호는 파라미터 값이 이미 검증되었음을 의미하지는 않습니다. 자세한 내용은 Parameter Store의 네이티브 파라미터 지원을 Amazon Machine Image ID에 사용 단원을 참조하십시오.

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

    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에서의 파라미터 계층 구조 작업 섹션을 참조하세요.

    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"
  3. 다음 명령을 실행하여 최신 파라미터 값을 보고 새 파라미터의 세부 정보를 확인합니다.

    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 파라미터 생성

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

    자세한 내용은 최신 버전의 AWS CLI 설치 또는 업데이트를 참조하세요.

  2. 다음 명령을 실행하여 파라미터를 생성합니다. 각 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 시스템에서 실행할 버전에는 명령줄 도구에서 명령을 실행하는 데 필요한 이스케이프 문자("\")가 포함되어 있습니다.

    다음은 파라미터 계층 구조를 사용하는 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 유형을 사용합니다.

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

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

AWS CLI를 사용하여 SecureString 파라미터 생성

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

중요

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

중요

Parameter Store는 대칭 암호화 KMS 키만 지원합니다. 비대칭 암호화 KMS 키를 사용하여 파라미터를 암호화할 수 없습니다. KMS 키가 대칭인지 비대칭인지 확인하는 것과 관련된 도움말은 AWS Key Management Service Developer GuideIdentifying symmetric and asymmetric KMS keys를 참조하세요.

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

    자세한 내용은 최신 버전의 AWS CLI 설치 또는 업데이트를 참조하세요.

  2. 다음 명령 중 하나를 실행하여 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 GuideAWS Key Management Service Concepts 섹션을 참조하세요.

    계정에 할당된 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

    다음 형식의 명령을 통해 방금 생성한 키를 사용하여 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
  3. 다음 명령을 실행하여 파라미터의 세부 정보를 확인합니다.

    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
  4. 다음 명령을 실행하여 파라미터 메타데이터를 확인합니다.

    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"
  5. 고객 관리형 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
  6. 다음 명령을 실행하여 최신 파라미터 값을 확인합니다.

    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
  7. 다음 명령을 실행하여 파라미터 값 기록을 확인합니다.

    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 API 작업을 호출할 수 있는 권한이 있어야 합니다. AWS KMS 액세스 제어 구성에 대한 자세한 내용은 AWS Key Management Service Developer GuideAuthentication and Access Control for AWS KMS를 참조하세요.

중요

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

AWS CLI를 사용하여 여러 줄의 파라미터 생성

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

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

    자세한 내용은 최신 버전의 AWS CLI 설치 또는 업데이트를 참조하세요.

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

    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>