파라미터 레이블 작업 - AWS Systems Manager

파라미터 레이블 작업

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

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

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

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

태그와 마찬가지로, 레이블로도 파라미터를 쿼리할 수 있습니다. 이 섹션 후반부의 설명에 따라 GetParametersByPath API 작업을 사용하여 파라미터 집합을 쿼리하면 모두 동일한 레이블을 사용하는 특정한 파라미터 버전 목록이 표시됩니다.

참고

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

레이블 요구 사항 및 제한

파라미터 레이블의 요구 및 제한 사항은 다음과 같습니다.

  • 파라미터 버전 하나에 레이블을 최대 10개 지정할 수 있습니다.

  • 동일 파라미터의 서로 다른 버전에 동일한 레이블을 부착할 수 없습니다. 예를 들어 파라미터의 버전 1에 프로덕션 레이블이 있으면 버전 2에는 프로덕션을 부착할 수 없습니다.

  • 파라미터 버전 간에 레이블을 이동할 수 있습니다.

  • 파라미터를 생성할 때 레이블을 함께 생성할 수 없습니다. 레이블은 특정 파라미터 버전에 부착해야 합니다.

  • 사용하지 않을 파라미터 레이블은 다른 파라미터 버전으로 옮기거나 삭제할 수 있습니다.

  • 레이블은 최대 100자까지 가능합니다.

  • 레이블은 문자(대소문자 구분), 숫자, 마침표(.), 하이픈(-) 또는 밑줄(_)을 포함할 수 있습니다.

  • 레이블은 숫자, "aws", "ssm"으로 시작할 수 없습니다(대/소문자 구별하지 않음). 이러한 요구 사항에 맞지 않는 레이블은 파라미터 버전에 부착되지 않으며 InvalidLabels 목록에 표시됩니다.

파라미터 레이블 작업(콘솔)

이 섹션에서는 Systems Manager 콘솔을 사용하여 다음 태스크를 수행하는 방법을 설명합니다.

파라미터 레이블 생성(콘솔)

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

파라미터 버전에 레이블을 부착하려면
  1. AWS Systems Manager 콘솔(https://console.aws.amazon.com/systems-manager/)을 엽니다.

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

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

  4. 기록 탭을 선택합니다.

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

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

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

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

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

파라미터에 부착된 레이블 보기(콘솔)

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

파라미터 버전에 부착된 레이블을 보려면
  1. AWS Systems Manager 콘솔(https://console.aws.amazon.com/systems-manager/)을 엽니다.

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

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

  4. 기록 탭을 선택합니다.

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

파라미터 레이블 이동(콘솔)

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

레이블을 다른 파라미터 버전으로 옮기려면
  1. AWS Systems Manager 콘솔(https://console.aws.amazon.com/systems-manager/)을 엽니다.

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

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

  4. 기록 탭을 선택합니다.

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

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

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

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

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

파라미터 레이블 삭제(콘솔)

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

파라미터에서 레이블을 삭제하려면
  1. AWS Systems Manager 콘솔(https://console.aws.amazon.com/systems-manager/)을 엽니다.

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

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

  4. 기록 탭을 선택합니다.

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

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

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

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

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

파라미터 레이블 작업(AWS CLI)

이 섹션에서는 AWS Command Line Interface(AWS CLI)를 사용하여 다음 태스크를 수행하는 방법을 설명합니다.

새 파라미터 레이블 생성(AWS CLI)

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

파라미터 레이블을 생성하려면
  1. 아직 하지 않은 경우 AWS Command Line Interface(AWS CLI)를 설치하고 구성합니다.

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

  2. 다음 명령을 실행하여 본인에게 레이블 부착 권한이 있는 파라미터 목록을 봅니다.

    참고

    파라미터는 생성된 해당 파라미터가 생성된 AWS 리전에서만 사용할 수 있습니다. 레이블을 부착할 파라미터가 보이지 않으면 리전을 확인하십시오.

    aws ssm describe-parameters

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

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

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

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

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

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

    다음 예를 참고하세요

    aws ssm get-parameters --names "/Production/SQLConnectionString:3"
  5. 다음 명령 중 하나를 실행하여 파라미터 버전에 레이블을 부착합니다. 레이블을 여러 개 부착하는 경우 레이블 이름을 공백으로 구분합니다.

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

    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 목록이 비어 있으면 레이블이 해당 파라미터 버전에 적용된 것입니다.

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

    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)

GetParameterHistory API 작업을 사용하여 지정된 파라미터에 부착되어 있는 모든 레이블과 전체 기록을 볼 수 있습니다. 또는 GetParametersByPath API 작업으로 특정 레이블에 할당된 전체 파라미터 목록을 볼 수도 있습니다.

GetParameterHistory API 작업을 사용하여 파라미터의 레이블을 보려면
  1. 다음 명령을 실행하여 본인에게 레이블 보기 권한이 있는 파라미터 목록을 봅니다.

    참고

    파라미터는 생성된 리전에서만 사용할 수 있습니다. 레이블을 옮길 파라미터가 보이지 않으면 리전을 확인하십시오.

    aws ssm describe-parameters

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

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

    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)

GetParametersByPath 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)

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

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

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

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

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

    aws ssm label-parameter-version \ --name parameter name \ --parameter-version version number \ --labels name-of-existing-label
    참고

    기존 레이블을 최신 버전의 파라미터로 옮기려면 명령에서 --parameter-version을 빼십시오.

파라미터 레이블 삭제(AWS CLI)

다음 절차에서는 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"
            }
        ]
    }

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

  2. 다음 명령을 실행하여 해당 파라미터에서 선택한 레이블을 삭제합니다. 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"]
     }