본문 바로가기

자격증/AWS Certified Security - Specialty

[AWS SCS] CloudFormation - Dynamic References

728x90
반응형

AWS CloudFormation 동적 참조 (Dynamic References)

AWS CloudFormation 템플릿을 사용할 때, 중요한 자격 증명이나 비밀번호와 같은 민감한 데이터를 외부 저장소에서 가져오는 기능을 제공합니다. 이를 동적 참조(Dynamic References)라고 하며, 실행 시점에 필요한 값을 자동으로 참조하여 보안과 유연성을 모두 확보할 수 있습니다.


동적 참조란?

CloudFormation 동적 참조는 템플릿에서 외부 저장소(SMS Parameter Store, Secrets Manager)에 저장된 값을 참조하여 실행 시점에 데이터를 가져오는 방식입니다. 이를 통해 민감한 정보를 템플릿에 직접 포함하지 않고도 필요한 작업을 수행할 수 있습니다.

  • 사용 사례:
    • 데이터베이스 자격 증명
    • 비밀번호
    • 제3자 API 키

동작 원리

  1. CloudFormation이 템플릿을 받아 스택을 생성하거나 업데이트합니다.
  2. 템플릿에 설정된 동적 참조를 기반으로, SSM Parameter Store 또는 Secrets Manager에서 값을 가져옵니다.
  3. 가져온 값을 사용하여 리소스를 생성하거나 업데이트합니다.

동적 참조의 종류

  1. SSM Dynamic Reference
    • SSM Parameter Store에 저장된 일반 텍스트 값을 참조합니다.
  2. SSM Secure
    • SSM Parameter Store에 저장된 보안 문자열(Secure Strings) 값을 참조합니다.
    • 일반 텍스트 값과 혼합하여 사용할 수 없습니다.
  3. Secrets Manager
    • Secrets Manager에 저장된 비밀 값을 참조합니다.

CloudFormation 템플릿 구현 방법

CloudFormation 템플릿에서는 다음 형식을 사용하여 동적 참조를 설정합니다:

{{resolve:서비스_이름:참조_키}}

예제 1: IAM 사용자 생성

IAM 사용자 비밀번호를 SSM Secure에서 가져와 설정하는 예시입니다.

Resources:
  MyIAMUser:
    Type: AWS::IAM::User
    Properties:
      UserName: myuser
      Password: '{{resolve:ssm-secure:/path/to/secure-parameter}}'

 

예제 2: RDS 데이터베이스 생성

Secrets Manager를 활용하여 RDS 데이터베이스의 자격 증명을 가져오는 예시입니다.

Resources:
  MyRDSInstance:
    Type: AWS::RDS::DBInstance
    Properties:
      MasterUsername: '{{resolve:secretsmanager:/path/to/secret#username}}'
      MasterUserPassword: '{{resolve:secretsmanager:/path/to/secret#password}}'

 

동적 참조의 장점

  1. 보안 강화
    • 템플릿에 민감한 데이터를 직접 포함하지 않아 노출 위험이 줄어듭니다.
  2. 유연성 증가
    • 외부 저장소에서 값을 관리하므로 템플릿 수정 없이 데이터를 쉽게 업데이트할 수 있습니다.
  3. 운영 효율성
    • 스택 생성 및 업데이트 과정에서 자동으로 값을 가져오므로 관리 부담이 줄어듭니다.

마무리

AWS CloudFormation 동적 참조는 보안과 유연성을 강화하여 클라우드 리소스 관리의 효율성을 높이는 강력한 기능입니다.

728x90
반응형