파라미터 유형 이해
파라미터는 텍스트 블록, 이름 목록, 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 Guide의 Identifying 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