View a markdown version of this page

파라미터 유형 이해 - AWS Systems Manager

파라미터 유형 이해

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

다음 시나리오에 SecureString 파라미터를 사용하는 것이 좋습니다.

  • 명령, 함수, 에이전트 로그 또는 CloudTrail 로그에 일반 텍스트로 값을 노출하지 않고 AWS 서비스 전반에 걸쳐 데이터/파라미터를 사용하고 싶은 경우.

  • 민감한 데이터에 액세스하는 대상을 제어하고 싶은 경우.

  • 민감한 데이터에 액세스하는 시점을 감사하고 싶은 경우(CloudTrail).

  • 민감한 데이터를 암호화하고 싶은 경우와 자체 암호화 키로 액세스를 관리하고 싶은 경우.

암호화하려는 텍스트 데이터(예: 교체가 필요하지 않은 경량 보안 암호, 기밀 구성 데이터 또는 보호하려는 기타 데이터 유형)에는 SecureString 파라미터 유형을 사용할 수 있습니다. SecureString 데이터는 AWS KMS 키를 사용하여 암호화되고 복호화됩니다. AWS에서 제공하는 기본 KMS 키를 사용하거나 자체 AWS KMS key를 생성하여 사용할 수 있습니다. (SecureString 파라미터에 대한 사용자 액세스를 제한하려면 고유의 AWS KMS key를 사용합니다. 자세한 내용은 AWS 기본 키 및 고객 관리형 키 사용에 대한 IAM 권한 섹션을 참조하세요.)

중요

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

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

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

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

다른 AWS 서비스와(과) 함께 SecureString 파라미터를 사용할 수도 있습니다. 다음 예에서는 Lambda 함수가 GetParameters 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 키만 지원합니다. 비대칭 암호화 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사용 방법을 참조하세요.

참고

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

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