CloudFormation의 보안 모범 사례
AWS CloudFormation는 자체 보안 정책을 개발하고 구현할 때 고려해야 할 여러 보안 기능을 제공합니다. 다음 모범 사례는 일반적인 지침이며 완벽한 보안 솔루션을 나타내지는 않습니다. 이러한 모범 사례는 환경에 적절하지 않거나 충분하지 않을 수 있으므로 참고용으로만 사용해 주십시오.
IAM을 사용하여 액세스 제어
IAM은 AWS에서 사용자 및 사용자 권한을 관리하는 데 사용할 수 있는 AWS 서비스입니다. CloudFormation에 IAM을 사용하여 스택 템플릿 보기, 스택 생성 또는 스택 삭제와 같은 사용자가 수행할 수 있는 CloudFormation 작업을 지정할 수 있습니다. 또한 CloudFormation 스택을 관리하는 사람에게는 누구나 이러한 스택 내의 리소스에 대한 권한이 필요합니다. 예를 들어 CloudFormation을 사용하여 Amazon EC2 인스턴스를 시작, 업데이트 또는 종료하려는 경우 관련 Amazon EC2 작업을 호출하기 위한 권한이 있어야 합니다.
대부분의 경우 템플릿에서 모든 리소스를 관리하기 위해서는 전체 액세스 권한이 필요합니다. CloudFormation은 사용자 대신 이러한 리소스를 생성, 수정 및 삭제하도록 호출합니다. 사용자와 CloudFormation 서비스 간에 권한을 분리하려면 서비스 역할을 사용합니다. CloudFormation에서는 사용자의 정책 대신 서비스 역할의 정책을 사용하여 호출합니다. 자세한 내용은 AWS CloudFormation 서비스 역할 단원을 참조하십시오.
템플릿에 자격 증명을 포함하지 않음
CloudFormation 템플릿에 민감한 정보를 포함하는 대신, 스택 템플릿의 동적 참조를 사용하는 것이 좋습니다.
동적 참조는 AWS Systems Manager Parameter Store 또는 AWS Secrets Manager와 같이 다른 서비스에서 저장 및 관리되는 외부 값을 참조하는 간결하면서 강력한 방법을 제공합니다. 동적 참조 사용 시 CloudFormation는 스택 및 변경 세트 작업 중에 필요한 경우 지정된 참조의 값을 검색하고 적절한 리소스에 값을 전달합니다. 하지만 CloudFormation은 실제 참조 값을 저장하지 않습니다. 자세한 내용은 동적 참조를 사용하여 다른 서비스에 저장된 값 가져오기 단원을 참조하십시오.
AWS Secrets Manager는 데이터베이스와 다른 서비스의 자격 증명을 안전하게 암호화, 저장 및 검색하는 데 효과적입니다. AWS Systems Manager Parameter Store는 구성 데이터 관리를 위한 안전한 계층적 스토리지를 제공합니다.
템플릿 파라미터 정의에 대한 자세한 내용은 CloudFormation 템플릿에 대한 Parameters 섹션 구문 참조 단원을 참조하십시오.
CloudFormation 호출 기록에 AWS CloudTrail 사용
AWS CloudTrail은 AWS 계정에서 CloudFormation API를 직접 호출하는 모든 사용자를 추적합니다. CloudFormation API, CloudFormation 콘솔, 백엔드 콘솔 또는 CloudFormation AWS CLI 명령을 사용할 때마다 API 직접 호출이 로깅됩니다. 로깅을 활성화하고 로그를 저장할 S3 버킷을 지정합니다. 이렇게 하면 필요한 경우 계정에서 누가 어떤 CloudFormation 호출을 실행했는지 감사할 수 있습니다. 자세한 내용은 AWS CloudTrail을 사용하여 AWS CloudFormation API 호출 로깅 단원을 참조하십시오.