보안 - AWS 인스턴스 스케줄러

보안

AWS 인프라에 시스템을 빌드하면 보안 책임은 사용자와 AWS가 분담합니다. 이 공동 책임 모델은 운영 부담을 덜어줍니다. AWS가 호스트 운영 체제, 가상화 계층, 서비스 운영 시설의 물리적 보안을 포함한 구성 요소를 운영, 관리, 제어하기 때문입니다. AWS 보안에 대한 자세한 내용은 AWS 클라우드 보안을 참조하세요.

AWS KMS

솔루션은 SNS 주제 및 DynamoDB 테이블에 대한 서버 측 암호화를 구성하는 데 사용되는 AWS 관리형 고객 관리형 키를 생성합니다.

Amazon IAM

솔루션의 Lambda 함수에는 허브 계정 리소스에 액세스하고 Systems Manager 파라미터를 가져오거나 입력하기 위한 액세스, CloudWatch 로그 그룹에 대한 액세스, AWS KMS 키 암호화/복호화 및 SNS 메시지 게시 권한이 필요합니다. 또한 AWS 인스턴스 스케줄러는 EC2, RDS, 오토 스케일링 리소스, DB 인스턴스, 인스턴스 속성 수정 및 해당 리소스에 대한 태그 업데이트를 위한 액세스를 제공하는 모든 관리형 계정에서 예약 역할을 생성합니다. 필요한 모든 권한은 솔루션 템플릿의 일부로 생성된 Lambda 서비스 역할에 대한 솔루션에서 제공됩니다.

배포 시 AWS 인스턴스 스케줄러는 배포된 허브 템플릿에서 Lambda를 특정 예약해야만 수임할 수 있는 스케줄러 역할과 함께 각 Lambda 함수에 대해 범위가 축소된 IAM 역할을 배포합니다. 이러한 일정 역할은 패턴 {namespace}-Scheduler-Role{namespace}-ASG-Scheduling-Role을 따르는 이름이 갖습니다.

각 서비스 역할에 제공되는 권한에 대한 자세한 내용은 CloudFormation 템플릿을 참조하세요.

암호화된 EC2 EBS 볼륨

AWS KMS로 암호화된 EBS 볼륨에 연결된 EC2 인스턴스를 예약할 때는 연결된 AWS KMS 키를 사용할 수 있는 권한을 AWS 인스턴스 스케줄러에 부여해야 합니다. 이렇게 하면 Amazon EC2가 시작된 함수 중에 연결된 EBS 볼륨을 복호화할 수 있습니다. 키를 사용해 이 권한을 EC2 인스턴스와 동일한 계정의 예약 역할에 부여해야 합니다.

AWS 인스턴스 스케줄러와 함께 AWS KMS 키를 사용할 수 있는 권한을 부여하려면 키를 사용하여 EC2 인스턴스와 동일한 계정의 AWS 스택(허브 또는 스포크)의 인스턴스 스케줄러에 AWS KMS 키의 ARN을 추가합니다.

EC2용 KMS 키 ARN

image3

이렇게 하면 다음과 같은 정책이 자동으로 생성되어 해당 계정의 예약 역할에 추가됩니다.

{ "Version": "2012-10-17", "Statement": [ { "Condition": { "StringLike": { "kms:ViaService": "ec2.*.amazonaws.com" }, "Null": { "kms:EncryptionContextKeys": "false", "kms:GrantOperations": "false" }, "ForAllValues:StringEquals": { "kms:EncryptionContextKeys": [ "aws:ebs:id" ], "kms:GrantOperations": [ "Decrypt" ] }, "Bool": { "kms:GrantIsForAWSResource": "true" } }, "Action": "kms:CreateGrant", "Resource": [ "Your-KMS-ARNs-Here" ], "Effect": "Allow" } ] }