Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3
민감한 데이터를 보호하고 무단 액세스를 방지하려면 Cloud Composer 환경을 보호하는 것이 중요합니다. 이 페이지에서는 네트워크 보안, Identity and Access Management, 암호화, 환경 구성 관리에 대한 권장사항을 포함하여 주요 권장사항을 설명합니다.
Cloud Composer에서 사용할 수 있는 보안 기능에 대한 자세한 내용은 보안 개요를 참고하세요.
버전 제어를 사용하여 환경 구성 및 DAG 관리
Terraform을 사용하여 환경을 만듭니다. 이렇게 하면 환경 구성을 저장소에 코드로 저장할 수 있습니다. 이렇게 하면 환경 구성 변경사항이 적용되기 전에 검토할 수 있으며, 권한이 적은 역할을 할당하여 구성을 변경할 권한이 있는 사용자 수를 줄일 수 있습니다.
DAG 코드가 저장소에서 검색되도록 CI/CD 파이프라인으로 환경에 DAG를 배포합니다. 이렇게 하면 변경사항이 버전 제어 시스템에 병합되기 전 DAG가 검토 및 승인됩니다. 검토 프로세스 동안 승인자는 DAG가 해당 팀 내에 설정된 보안 기준을 충족하는지 확인합니다. 검토 단계는 환경 버킷의 내용을 수정하는 DAG 배포를 방지하기 위해 중요합니다.
Identity and Access Management에서 Identity and Access Management 섹션에 설명된 대로 일반 사용자가 DAG 및 환경 구성에 직접 액세스하지 못하도록 사용 중지합니다.
네트워크 보안
환경의 Airflow 구성요소가 인터넷에 액세스할 수 없고 비공개 Google 액세스가
private.googleapis.com
범위를 통해 구성되도록 환경에 비공개 IP 네트워킹 유형을 사용합니다. 이 범위에서 지원되는 Google API, 서비스, 도메인에 액세스할 수 있습니다.PyPI 패키지를 설치할 때 인터넷 액세스를 사용 중지합니다. 대신 Artifact Registry 저장소를 유일한 패키지 소스로 사용합니다.
환경에 연결된 VPC 네트워크 (연결된 경우)의 방화벽 규칙을 검토합니다. 구성 방법에 따라 DAG를 실행하는 Airflow 작업자와 같은 환경의 Airflow 구성요소가 VPC 네트워크를 통해 인터넷에 액세스할 수 있습니다.
Identity and Access Management
권한 격리 환경 서비스 계정을 만들고 환경마다 다른 서비스 계정을 사용합니다. 이러한 환경을 운영하고 실행하는 Airflow DAG에 정의된 작업을 실행하는 데 꼭 필요한 권한만 이러한 서비스 계정에 할당합니다.
광범위한 권한이 있는 서비스 계정은 사용하지 마세요. 편집자 기본 역할에서 부여한 것과 같이 광범위한 권한이 있는 계정을 사용하는 환경을 만들 수 있지만, 이렇게 하면 DAG가 의도보다 광범위한 권한을 사용할 위험이 있습니다.
Cloud Composer에서 사용하는 Google 서비스의 기본 서비스 계정을 사용하지 마세요. 프로젝트의 다른 Google 서비스에 영향을 주지 않으면서 이러한 서비스 계정에 사용할 수 있는 권한을 줄이는 것은 종종 불가능합니다.
환경의 서비스 계정에 관한 보안 고려사항을 숙지하고 이 계정이 프로젝트의 개별 사용자에게 부여하는 권한 및 역할과 상호작용하는 방식을 이해해야 합니다.
최소 권한의 원칙을 준수합니다. 사용자에게 필요한 최소한의 권한만 부여합니다. 예를 들어 관리자만 환경 버킷에 액세스할 수 있고 일반 사용자의 경우 직접 액세스가 사용 중지되도록 IAM 역할을 할당합니다. 예를 들어 Composer 사용자 역할은 DAG UI 및 Airflow UI에 대해서만 액세스를 사용 설정합니다.
Airflow UI 액세스 제어를 적용합니다. 이 기능을 사용하면 사용자의 Airflow 역할에 따라 Airflow UI 및 DAG UI의 가시성을 줄일 수 있으며 개별 DAG에 DAG 수준 권한을 할당하는 데 사용할 수 있습니다.
정기적으로 검토합니다. IAM 권한과 역할을 정기적으로 감사하여 과도하거나 사용되지 않는 권한을 식별하고 삭제합니다.
민감한 정보의 전송 및 저장에 주의하세요.
개인 식별 정보 또는 비밀번호와 같은 민감한 정보를 저장하고 전달할 때는 주의해야 합니다. 필요한 경우 Secret Manager를 사용하여 Airflow 연결 및 Airflow 보안 비밀, API 키, 비밀번호, 인증서를 안전하게 저장합니다. 이 정보를 DAG 또는 환경 변수에 저장하지 마세요.
신뢰할 수 있는 사용자에게만 환경 버킷에 대한 IAM 권한을 부여합니다. 가능하면 객체별 권한을 사용하세요. 환경의 서비스 계정에 관한 보안 고려사항에는 환경의 버킷에 액세스할 수 있는 사용자가 환경의 서비스 계정을 대신하여 작업을 실행할 수 있는 여러 가지 방법이 나와 있습니다.
스냅샷에 저장되는 데이터를 숙지하고 신뢰할 수 있는 사용자에게만 환경 스냅샷을 만들고 스냅샷이 저장된 버킷에 액세스할 수 있는 권한을 부여합니다.
모든 Cloud Composer 외부 인터페이스는 기본적으로 암호화를 사용합니다. 외부 제품 및 서비스에 연결할 때는 암호화된 통신 (SSL/TLS)을 사용해야 합니다.