View a markdown version of this page

Parameter Store 참조 - AWS Systems Manager

Parameter Store 참조

파라미터는 텍스트 블록, 이름 목록, AMI ID, 판매자 ID 또는 다른 구성 값과 같이 Parameter Store에 저장되는 모든 데이터 조각입니다. 스크립트, 명령 및 SSM 문서에 있는 이 데이터를 중앙에서 참조할 수 있습니다.

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

{{ssm:parameter-name}}

참고

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

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

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

파라미터 유형: String

기본적으로 String 파라미터의 값은 입력한 텍스트 블록으로 구성됩니다. 예제:

  • abc123

  • Example Corp

  • <img src="images/bannerImage1.png"/>

파라미터 유형: StringList

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

Monday,Wednesday,Friday

CSV,TSV,CLF,ELF,JSON

파라미터 유형: SecureString

서비스 엔드포인트 및 계정 식별자와 같이 암호화가 필요한 구성 값에 대해 SecureString을 사용하세요. 데이터베이스 자격 증명, API 키 또는 토큰과 같은 시크릿의 경우 자동 교체 및 교차 리전 복제를 포함하여 목적별 보안 제어를 제공하는 AWS Secrets Manager를 사용하는 것이 좋습니다.

파라미터 값만 암호화됩니다. 파라미터 이름, 설명 및 기타 메타데이터는 암호화되지 않습니다.

Parameter Store는 AWS KMS 키를 사용하여 SecureString 파라미터 값을 암호화 및 복호화합니다. Parameter Store의 기본 AWS 관리형 키 또는 고객 관리형 키를 사용할 수 있습니다. 특정 파라미터를 복호화할 수 있는 위탁자를 제한해야 하는 경우 고객 관리형 키를 사용합니다. 자세한 내용은 AWS KMS 키를 사용하는 파라미터 암호화 및 복호화 섹션을 참조하세요.

중요

다음 중요 정보를 기록해 둡니다.

  • 자동 교체, 교차 계정 액세스 또는 세분화된 감사 로깅이 필요한 자격 증명을 관리하는 경우 AWS Secrets Manager 사용을 권장합니다. Secrets Manager는 데이터베이스 자격 증명, API 키 및 지원되는 타사 소프트웨어 공급 보안 암호와 같은 보안 암호를 관리하도록 특별히 설계되었습니다. 자세한 내용은 AWS Secrets Manager 사용 설명서AWS Secrets Manager이란?을 참조하세요.

  • String 또는 StringList 파라미터에 중요한 데이터를 저장하지 않습니다. 암호화된 상태로 유지해야 하는 모든 중요한 데이터의 경우 SecureString 파라미터 유형만 사용하십시오.

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

다른 AWS 서비스에서 SecureString 파라미터를 사용할 수 있습니다. 다음 Lambda 함수는 /myapp/dev/vendor/merchant-id 파라미터에서 암호화된 판매자 ID를 검색합니다. 이 함수는 값을 함수 로그에 쓰거나 응답에서 반환하지 않고 사용합니다.

import json import boto3 ssm = boto3.client("ssm", region_name="us-east-1") def lambda_handler(event, context): response = ssm.get_parameter( Name="/myapp/dev/vendor/merchant-id", WithDecryption=True ) merchant_id = response["Parameter"]["Value"] # Use merchant_id when communicating with the vendor system. # Don't write the value to logs or include it in the response. return { "statusCode": 200, "body": json.dumps("Vendor configuration retrieved.") }
AWS KMS 암호화 및 요금

SecureString 파라미터를 생성할 때 Systems Manager가 AWS KMS를 사용하여 파라미터 값을 암호화합니다.

중요

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

SecureString 파라미터 생성 시 Parameter Store에서 비용이 부과되지 않지만 AWS KMS 사용에 대한 요금이 적용될 수 있습니다. 자세한 내용은 AWS Key Management Service 요금을 참조하십시오.

AWS 관리형 키 및 고객 관리형 키에 대한 자세한 내용은 AWS Key Management Service 개발자 가이드AWS Key Management Service 개념을 참조하세요. Parameter Store에서 AWS KMS를 사용하는 방법에 대한 자세한 내용은 AWS Systems ManagerParameter Store에서 AWS KMS를 사용하는 방법을 참조하세요.

참고

Parameter Store의 기본 AWS 관리형 키를 보려면 다음 명령을 실행합니다.

aws kms describe-key \ --region us-east-1 \ --key-id alias/aws/ssm

파라미터 이름 제약 조건

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

이 정보는 AllowedPattern, Description, KeyId, Overwrite, TypeValue 값에 대한 정보도 제공하는 AWS Systems Manager API ReferencePutParameter 주제의 세부 정보를 보완합니다.

파라미터 이름에 대한 요구 사항 및 제약 조건은 다음과 같습니다.

  • 대/소문자 구분: 파라미터 이름은 대/소문자를 구분합니다.

  • 공백: 파라미터 이름에는 공백이 포함될 수 없습니다.

  • 유효한 값: 파라미터 이름은 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이 구문의 일부로 포함됩니다. 예: {{ssm:parameter-name}} and {{ ssm:parameter-name }}(예: {{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 API 작업을 재귀적으로 호출할 수 있습니다.