오늘 AWS Organizations 선언적 정책을 발표합니다. 선언적 정책은 조직 전체에 걸쳐 대규모로 특정 AWS 서비스에 대해 원하는 구성을 선언하고 적용하는 데 도움이 되는 새로운 기능입니다.
고객은 조직 내에서 클라우드 리소스 구성 방법에 대한 표준을 만드는 것이 일반적입니다. 예를 들어 Amazon EBS 스냅샷에 대한 공개 액세스를 차단해야 할 수 있습니다. 고객은 이러한 표준을 중앙에서 한 번 정의하고 향후 조직에 가입하는 계정을 포함하여 모든 계정에 적용하기를 원합니다. 또한 클라우드 운영자는 표준을 충족하지 않는 방식으로 리소스를 구성하려고 할 때마다 구성을 수정하는 방법을 설명하는 유용하고 실행 가능한 오류 메시지를 수신하기를 원합니다.
선언적 정책은 몇 번의 클릭이나 명령으로 원하는 AWS 서비스 구성을 정의하고 적용할 수 있도록 지원하여 이러한 문제를 해결합니다. 원하는 구성(예: ‘VPC에 대한 퍼블릭 액세스 차단’)을 선택할 수 있으며, 정책을 연결하면 AWS에서 다중 계정 환경 전체 또는 일부에 원하는 상태가 자동으로 적용되도록 합니다. 이 방법을 사용하면 원하는 구성을 달성하는 데 따르는 복잡성이 줄어듭니다. 구성이 설정되면 새 기능이나 새 API가 추가되더라도 구성은 유지됩니다. 또한 선언적 정책을 사용하면 관리자가 환경 전반의 서비스 속성에 대한 현재 상태를 파악할 수 있으며, 권한이 없는 사람에게 정보를 유출할 수 없는 액세스 제어 정책과 달리 최종 사용자는 조직 관리자가 구성한 사용자 지정 오류 메시지를 보고 내부 리소스 또는 지원 채널로 리디렉션합니다.
“ABSA Group은 규제가 심한 환경에서 운영되며 더 많은 서비스를 채택함에 따라 SCP 정책 제외를 사용하여 작업을 제한하고 Config 규칙을 사용하여 위반을 탐지합니다. 하지만 모든 새 API 또는 기능에 대해 예외를 생성해야 합니다. 선언적 정책을 사용하면 VPC 퍼블릭 액세스 차단을 true로 설정하기만 하면 사용자, 서비스 연결 역할 또는 향후 API가 AWS Organizations에서 퍼블릭 액세스를 촉진할 수 없으니 안심할 수 있습니다.”라고 남아프리카 요하네스버그에 본사를 둔 다국적 은행 및 금융 서비스 대기업인 ABSA의 Lead Product Engineer인 Vojtech Mencl은 설명합니다.
“사용자 지정 오류 메시지를 사용하면 최종 사용자를 내부 포털로 쉽게 리디렉션하여 작업이 실패한 이유에 대한 자세한 정보를 얻을 수 있습니다. 이를 통해 거버넌스의 운영 복잡성이 크게 줄어들고 AWS로의 마이그레이션이 가속화됩니다.”라고 ABSA의 Principal Engineer인 Matt Draper는 말합니다.
이번 출시에서는 선언적 정책이 Amazon Elastic Compute Cloud (Amazon EC2), Amazon Virtual Private Cloud(Amazon VPC), Amazon Elastic Block Store(Amazon EBS) 서비스를 지원합니다. 사용 가능한 서비스 속성으로는 IMDSv2 적용, 직렬 콘솔을 통한 문제 해결 허용, Amazon Machine Image(AMI) 설정 허용, Amazon EBS 스냅샷, Amazon EC2 AMI 및 VPC에 대한 퍼블릭 액세스 차단 등이 있습니다. 새 계정이 조직에 추가되면 조직, 조직 단위(OU) 또는 계정 수준에서 적용된 선언적 정책이 상속됩니다.
선언적 정책은 AWS Organizations 콘솔, AWS Command Line Interface(AWS CLI), AWS CloudFormation 또는 AWS Control Tower를 통해 생성할 수 있습니다. 정책은 조직, OU 또는 계정 수준에서 적용할 수 있습니다. 선언적 정책을 첨부하면, 규정 미준수 작업이 사용자가 생성한 AWS Identity and Access Management (IAM) 역할을 사용하여 간접적으로 호출되었는지 또는 서비스 연결 역할을 사용하여 AWS 서비스에서 간접적으로 호출되었는지에 관계없이 해당 작업을 방지할 수 있습니다.
선언적 정책 시작하기
선언적 정책을 설명하기 위해 예제를 살펴보겠습니다. 수백 개의 AWS 계정을 보유한 대기업의 보안 관리자로서 조직의 엄격한 보안 태세를 유지할 책임이 있다고 가정해 보겠습니다. 우리 회사에는 몇 가지 중요한 보안 요구 사항이 있습니다. 전체 네트워크에서 인터넷 액세스를 엄격하게 제어하고, 신뢰할 수 있는 특정 제공업체의 AMI만 허용하며, 실수로 퍼블릭 인터넷에 VPC 리소스가 노출되지 않도록 해야 합니다. 선언적 정책을 사용하면 이러한 요구 사항을 효율적으로 구현할 수 있습니다. 제 환경에서 선언적 정책을 어떻게 설정했는지 보여드리겠습니다.
AWS Organizations 콘솔로 이동하여 탐색 창에서 정책을 선택합니다. 지원되는 정책 유형에서 EC2의 선언적 정책을 선택합니다.
EC2의 선언적 정책 활성화를 선택하여 해당 기능을 활성화합니다.
선언적 정책이 활성화되면 AWS Organizations의 모든 계정에서 EC2의 원하는 구성을 정의하고 적용할 수 있습니다.
선언적 정책을 생성하기 전에 조직의 관리자로서 선언적 정책의 기능인 계정 상태 보고서를 사용하여 AWS 환경의 현재 상태를 파악하고 싶습니다. 보고서는 선택한 조직 범위 내의 모든 계정과 AWS 리전을 포함하는 요약 보기와 상세한 CSV 파일을 제공합니다. 보고서는 정책을 연결하기 전에 준비 상태를 평가하는 데 도움이 됩니다.
다음 페이지에서 상태 보고서 생성을 선택합니다. 보고서 S3 URI에서 Amazon Simple Storage Service(Amazon S3) 버킷을 선택하고 보고서 범위에 포함할 계정 및 OU를 선택합니다.
S3 버킷에 상태 보고서를 저장하려면 다음과 같은 정책이 연결되어 있어야 합니다.
{
“Version”: “2012-10-17”,
“Statement”: [
{
“Sid”: “DeclarativePoliciesReportBucket”,
“Effect”: “Allow”,
“Principal”: {
“Service”: [
“report.declarative-policies-ec2.amazonaws.com”
]
},
“Action”: [
“s3:PutObject”
],
“Resource”: “arn:aws:s3:::<bucketName>/*”,
“Condition”: {
“StringEquals”: {
“aws:SourceArn”: “arn:<partition>:declarative-policies-ec2:<region>:<accountId>:*”
}
}
}
]
}
제출을 선택합니다.
완료되면 보고서가 지정한 Amazon S3 버킷에 저장됩니다. 계정 상태 보고서 보기 페이지의 보고서 드롭다운에서 여러 보고서 간에 선택하여 다양한 속성의 현재 상태를 확인할 수 있습니다.
제공한 Amazon S3 버킷을 확인하여 자세한 준비 상태 보고서를 제공하는 CSV 파일을 저장합니다. 여러 리전의 조직 단위 전반에서 현재 상태를 관찰합니다.
계정 상태를 평가한 후 계속해서 정책을 생성합니다. EC2의 선언적 정책 페이지에서 정책 생성을 선택합니다.
다음 페이지에서 정책 이름과 선택 사항인 정책 설명을 입력합니다.
이 데모에서는 Visual Editor를 사용하여 서비스 속성을 추가하는 방법을 보여 줍니다. 이러한 속성에는 직렬 콘솔 액세스, 인스턴스 메타데이터 기본값, 이미지 퍼블릭 액세스 차단, 스냅샷 퍼블릭 액세스 차단, VPC 퍼블릭 액세스 차단, 허용된 이미지 설정이 포함됩니다. JSON Editor를 사용하여 속성을 수동으로 추가하거나 Visual Editor를 사용하여 추가한 정책을 관찰할 수 있습니다. 먼저 VPC 퍼블릭 액세스 차단을 선택하여 인터넷 게이트웨이에서 VPC의 리소스에 대한 인터넷 액세스를 제어합니다. 인터넷 게이트웨이 상태에서 수신 차단을 선택합니다. 활성화하면 리소스를 변경하지 않고도 퍼블릭 액세스를 즉시 차단하고 롤백할 수 있습니다.
두 번째 속성으로 AMI에 허용된 이미지 기준을 제어하기 위해 허용된 이미지 설정을 선택합니다. 이는 모든 인스턴스 실행에 계정 또는 계정 세트가 조직에서 생성하는 골든 AMI를 사용하거나 Amazon 또는 Ubuntu와 같은 공급업체에서 제공하는 골든 AMI를 사용하도록 할 수 있기 때문에 유용합니다. 허용된 이미지 설정에서 활성화됨을 선택합니다. 공급자에서 amazon을 선택합니다. 선언적 정책은 사용자 지정 가능한 오류 메시지와 함께 투명성을 제공하여 최종 사용자의 불만을 줄이는 데 도움이 됩니다. 조직 멤버가 제한된 작업을 수행할 수 없을 때 표시할 사용자 지정 오류 메시지를 선택적으로 추가할 수 있습니다. 정책 생성 프로세스를 완료하려면 정책 생성을 선택합니다.
이제 정책을 조직 또는 특정 OU에 연결해야 합니다. 작업에서 정책 연결을 선택합니다.
조직 또는 특정 OU를 선택하고 정책 연결을 선택합니다.
계정이 조직이나 OU에 연결되면 계정에 연결된 선언적 정책이 즉시 적용되며 이후의 모든 규정 미준수 작업은 실패합니다(단, 퍼블릭 액세스를 즉시 제한하는 VPC 퍼블릭 액세스 차단은 제외). 계정의 기존 리소스는 삭제되지 않습니다.
정식 출시
선언적 정책은 정책 유지 관리 오버헤드를 줄이고, 계정 전체에 일관된 적용을 제공하고, 관리자와 최종 사용자에게 투명성을 제공함으로써 AWS 고객의 거버넌스를 간소화합니다.
선언적 정책은 이제 AWS 상용, 중국 및 AWS GovCloud(미국) 리전에서 사용할 수 있습니다.
선언적 정책에 대해 자세히 알아보고 조직에서 정책 적용을 시작하려면 선언적 정책 설명서를 참조하세요.