기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
ADDF 내장 보안 기능
ADDF(Autonomous Driving Data Framework)에는 다양한 보안 기능이 내장되어 있습니다. 기본적으로 이러한 기능은 보안 프레임워크를 설정하고 조직이 일반적인 엔터프라이즈 보안 요구 사항을 충족하는 데 도움이 되도록 설계되었습니다.
다음은 내장 보안 기능입니다.
ADDF 모듈 코드에 대한 최소 권한
최소 권한은 작업을 수행하는 데 필요한 최소 권한을 부여하는 보안 모범 사례입니다. 자세한 내용은 최소 권한 적용을 참조하세요. ADDF에서 제공하는 모듈은 다음과 같이 코드와 배포된 리소스에 대한 최소 권한 원칙을 엄격하게 따릅니다.
-
ADDF 모듈에 대해 생성된 모든 AWS Identity and Access Management (IAM) 정책에는 사용 사례에 필요한 최소 권한이 있습니다.
-
AWS 서비스 는 최소 권한 원칙에 따라 구성 및 배포됩니다. ADDF 제공 모듈은 특정 사용 사례에 필요한 서비스와 서비스 기능만 사용합니다.
코드형 인프라
ADDF는 프레임워크로서 ADDF 모듈을 코드형 인프라(IaC)로 배포하도록 설계되었습니다. IaC는 수동 배포 프로세스를 없애고 수동 프로세스로 인해 발생할 수 있는 오류와 구성 오류를 방지하는 데 도움이 됩니다.
ADDF는 일반적인 IaC 프레임워크를 사용하여 모듈을 오케스트레이션하고 배포하도록 설계되었습니다. 여기에는 다음이 포함되지만 이에 국한되지는 않습니다.
다양한 IaC 프레임워크를 사용하여 다양한 모듈을 작성한 다음 ADDF를 사용하여 모듈을 배포할 수 있습니다.
ADDF 모듈에서 사용하는 기본 IaC 프레임워크는 입니다 AWS CDK. AWS CDK 는 AWS 리소스를 필수적으로 정의하는 데 사용할 수 있는 상위 수준 객체 지향 추상화입니다.는 AWS CDK 이미 다양한 서비스 및 시나리오에 대해 기본적으로 보안 모범 사례를 적용합니다. AWS CDK를 사용하면 보안 구성 오류의 위험이 줄어듭니다.
IaC에 대한 자동 보안 검사
오픈 소스 cdk-nag
AWS CDK 배포 역할에 대한 사용자 지정 최소 권한 정책
ADDF는 AWS CDK v2를 광범위하게 사용합니다. 모든 ADDF를 부트스트랩 AWS 계정 해야 합니다 AWS CDK. 자세한 내용은 Bootstrapping(AWS CDK 설명서)을 참조하세요.
기본적으로는 부트스트랩된 계정에서 생성된 AWS CDK 배포 역할에 허용 AdministratorAccess AWS 관리형 정책을 AWS CDK 할당합니다. 이 역할의 전체 이름은 입니다cdk-[CDK_QUALIFIER]-cfn-exec-role-[AWS_ACCOUNT_ID]-[REGION]
.는이 역할을 AWS CDK 사용하여 배포 프로세스의 AWS 계정 일부로 부트스트래핑된에 리소스를 배포합니다 AWS CDK .
조직의 보안 요구 사항에 따라 AdministratorAccess
정책이 너무 허용적일 수 있습니다. AWS CDK 부트스트랩 프로세스의 일부로 필요에 따라 정책과 권한을 사용자 지정할 수 있습니다. --cloudformation-execution-policies
파라미터를 사용하여 새로 정의된 정책으로 계정을 다시 부트스트랩하면 정책을 변경할 수 있습니다. 자세한 내용은 사용자 지정 부트스트래핑(AWS CDK 문서화)을 참조하세요.
참고
이 보안 기능은 ADDF에만 국한된 것은 아니지만 ADDF 배포의 전반적인 보안을 강화할 수 있으므로 이 섹션에 나열되어 있습니다.
모듈 deployspec 파일에 대한 최소 권한 정책
각 모듈에는 deployspec.yaml이라는 배포 사양 파일이 포함되어 있습니다. 이 파일은 모듈의 배포 지침을 정의합니다. CodeSeeder는 이를 사용하여를 사용하여 대상 계정에 정의된 모듈을 배포합니다 AWS CodeBuild. CodeSeeder는 배포 사양 파일의 지침에 따라 리소스를 배포하기 위해 CodeBuild에 기본 서비스 역할을 할당합니다 이 서비스 역할은 최소 권한 원칙에 따라 설계되었습니다. 모든 ADDF 제공 모듈은 AWS CDK 애플리케이션으로 생성되므로 AWS CDK 애플리케이션을 배포하는 데 필요한 모든 권한이 포함됩니다.
그러나 외부에서 스테이지 명령을 실행해야 하는 경우 CodeBuild의 기본 서비스 역할을 사용하는 대신 사용자 지정 IAM 정책을 생성 AWS CDK해야 합니다. 예를 들어 Terraform AWS CDK과 같은 이외의 IaC 배포 프레임워크를 사용하는 경우 해당 특정 프레임워크가 작동할 수 있도록 충분한 권한을 부여하는 IAM 정책을 생성해야 합니다. 전용 IAM 정책이 필요한 또 다른 시나리오는 install
, pre_build
build
, 또는 post_build
스테이지 명령 AWS 서비스 에 다른에 대한 직접 AWS Command Line Interface (AWS CLI) 호출을 포함하는 경우입니다. 예를 들어, S3 버킷에 파일을 업로드하는 Amazon Simple Storage Service(S3) 명령이 모듈에 포함되어 있는 경우 사용자 지정 정책이 필요합니다. 사용자 지정 IAM 정책은 AWS CDK 배포 외부의 모든 AWS 명령에 대해 세분화된 제어를 제공합니다. 사용자 지정 IAM 정책의 예는 ModuleStack
데이터 암호화
ADDF는 잠재적으로 민감한 데이터를 저장하고 처리합니다. 이 데이터를 보호하기 위해 SeedFarmer, CodeSeeder 및 ADDF 제공 모듈은 사용된 모든에 대해 유휴 및 전송 중인 데이터를 암호화합니다 AWS 서비스 (demo-only
폴더의 모듈에 대해 달리 명시적으로 명시되지 않는 한).
Secrets Manager를 사용하는 보안 인증 스토리지
ADDF는 Docker Hub, JupyterHub 및 Amazon Redshift와 같은 다양한 서비스에 대한 다양한 시크릿을 처리하며, AWS Secrets Manager를 사용하여 ADDF 관련 시크릿을 저장합니다. 이렇게 하면 소스 코드에서 민감한 데이터를 제거할 수 있습니다.
Secrets Manager 시크릿은 대상 계정이 제대로 작동하는 데 필요한 경우에만 대상 계정에 저장됩니다. 기본적으로 도구 체인 계정에는 시크릿이 포함되어 있지 않습니다.
SeedFarmer 및 CodeSeeder의 보안 검토
SeedFarmer
CodeSeeder AWS CodeBuild 역할에 대한 권한 경계 지원
IAM 권한 경계는 ID 기반 정책이 IAM 엔터티에 부여할 수 있는 최대 권한을 정의하는 일반 보안 메커니즘입니다. SeedFarmer와 CodeSeeder는 각 대상 계정에 대한 IAM 권한 경계 연결을 지원합니다. 권한 경계는 CodeSeeder가 모듈을 배포할 때 CodeBuild에서 사용하는 모든 서비스 역할의 최대 권한을 제한합니다. 보안 팀이 ADDF 외부에서 IAM 권한 경계를 생성해야 합니다. IAM 권한 경계 정책 연결은 ADDF 배포 매니페스트 파일인 deployment.yaml 내의 속성으로 허용됩니다. 자세한 내용은 Permissions boundary support
워크플로는 다음과 같습니다.
-
보안 팀이 보안 요구 사항에 따라 IAM 권한 경계를 정의하고 생성합니다. IAM 권한 경계는 각 ADDF에서 개별적으로 생성해야 합니다 AWS 계정. 출력은 권한 경계 정책 Amazon 리소스 이름(ARN) 목록입니다.
-
보안 팀이 ADDF 개발자 팀과 정책 ARN 목록을 공유합니다.
-
ADDF 개발자 팀이 매니페스트 파일에 정책 ARN 목록을 통합합니다. 이 통합의 예는 sample-permissionboundary.yaml
(GitHub)과 Deployment manifest (SeedFarmer 설명서)를 참조하세요. -
배포에 성공하면 CodeBuild가 모듈을 배포하는 데 사용하는 모든 서비스 역할에 권한 경계가 연결됩니다.
-
보안 팀이 필요에 따라 권한 경계가 적용되는지 모니터링합니다.
AWS 다중 계정 아키텍처
AWS Well-Architected Framework의 보안 원칙에 정의된 대로 조직의 요구 사항에 AWS 계정따라 리소스와 워크로드를 여러 로 분리하는 것이 모범 사례로 간주됩니다. 이는가 격리 경계 AWS 계정 역할을 하기 때문입니다. 자세한 내용은 AWS 계정 관리 및 분리를 참조하세요. 이 개념을 구현한 것이 다중 계정 아키텍처입니다. 적절하게 설계된 AWS 다중 계정 아키텍처는 워크로드 분류를 제공하며 보안 침해 발생 시 단일 계정 아키텍처보다 영향 범위가 작습니다.
ADDF는 기본적으로 AWS 다중 계정 아키텍처를 지원합니다. 조직의 보안 및 separation-of-duties 요구 사항에 필요한 AWS 계정 만큼 ADDF 모듈을 배포할 수 있습니다. 도구 체인과 대상 계정 기능을 결합하여 단일 AWS 계정에 ADDF를 배포할 수 있습니다. 또는 ADDF 모듈이나 모듈 그룹에 대한 개별 대상 계정을 생성할 수 있습니다.
고려해야 할 유일한 제한 사항은 ADDF 모듈이 각 모듈에 대한 가장 작은 배포 단위를 나타낸다는 것입니다 AWS 계정.
프로덕션 환경에서는 도구 체인 계정과 하나 이상의 대상 계정으로 구성된 다중 계정 아키텍처를 사용하는 것이 좋습니다. 자세한 내용은 ADDF 아키텍처 단원을 참조하십시오.
다중 계정 배포에 대한 최소 권한
다중 계정 아키텍처를 사용하는 경우 SeedFarmer는 대상 계정에 액세스하여 다음 세 가지 작업을 수행해야 합니다.
-
도구 체인 계정과 대상 계정에 ADDF 모듈 메타데이터를 씁니다.
-
도구 체인 계정과 대상 계정에서 현재 ADDF 모듈 메타데이터를 읽습니다.
-
모듈을 배포하거나 업데이트할 목적으로 대상 계정에서 AWS CodeBuild 작업을 시작합니다.
다음 그림은 ADDF별 AWS Identity and Access Management (IAM) 역할을 수임하기 위한 작업을 포함하여 교차 계정 관계를 보여줍니다.

이러한 크로스 계정 작업은 잘 정의된 역할 수임 작업을 통해 수행됩니다.
-
ADDF 도구 체인 IAM 역할이 도구 체인 계정에 배포됩니다. SeedFarmer가 이 역할을 수임합니다. 이 역할에는
iam:AssumeRole
작업을 수행할 수 있는 권한이 있으며 각 대상 계정에서 ADDF 배포 IAM 역할을 수임할 수 있습니다. 또한 ADDF 도구 체인 IAM 역할은 로컬 AWS Systems Manager 파라미터 스토어 작업을 실행할 수 있습니다. -
ADDF 배포 IAM 역할이 각 대상 계정에 배포됩니다. 이 역할은 ADDF 도구 체인 IAM 역할을 사용하여 도구 체인 계정에서만 수임할 수 있습니다. 이 역할에는 로컬 AWS Systems Manager 파라미터 스토어 작업을 실행할 수 있는 권한이 있으며 CodeSeeder를 통해 CodeBuild 작업을 시작하고 설명하는 AWS CodeBuild 작업을 실행할 수 있는 권한이 있습니다.
이러한 ADDF 관련 IAM 역할은 ADDF 부트스트래핑 프로세스의 일부로 생성됩니다. 자세한 내용은 ADDF 배포 가이드
모든 크로스 계정 권한은 최소 권한 원칙에 따라 설정됩니다. 한 대상 계정이 손상되어도 다른 ADDF AWS 계정에 미치는 영향은 거의 없거나 전혀 없습니다.
ADDF에 대한 단일 계정 아키텍처의 경우 역할 관계는 동일하게 유지되며, 단일 AWS 계정으로 축소될 뿐입니다.