보안 권장사항

Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3

민감한 데이터를 보호하고 무단 액세스를 방지하려면 Cloud Composer 환경을 보호하는 것이 중요합니다. 이 페이지에서는 네트워크 보안, Identity and Access Management, 암호화, 환경 구성 관리에 대한 권장사항을 포함하여 주요 권장사항을 설명합니다.

Cloud Composer에서 사용할 수 있는 보안 기능에 대한 자세한 내용은 보안 개요를 참고하세요.

버전 제어를 사용하여 환경 구성 및 DAG 관리

Airflow CI/CD 파이프라인의 예시
그림 1. Airflow CI/CD 파이프라인의 예시 (확대하려면 클릭)
  • Terraform을 사용하여 환경을 만듭니다. 이렇게 하면 환경 구성을 저장소에 코드로 저장할 수 있습니다. 이렇게 하면 환경 구성 변경사항이 적용되기 전에 검토할 수 있으며, 권한이 적은 역할을 할당하여 구성을 변경할 권한이 있는 사용자 수를 줄일 수 있습니다.

  • DAG 코드가 저장소에서 검색되도록 CI/CD 파이프라인으로 환경에 DAG를 배포합니다. 이렇게 하면 변경사항이 버전 제어 시스템에 병합되기 전 DAG가 검토 및 승인됩니다. 검토 프로세스 동안 승인자는 DAG가 해당 팀 내에 설정된 보안 기준을 충족하는지 확인합니다. 검토 단계는 환경 버킷의 내용을 수정하는 DAG 배포를 방지하기 위해 중요합니다.

  • Identity and Access Management에서 Identity and Access Management 섹션에 설명된 대로 일반 사용자가 DAG 및 환경 구성에 직접 액세스하지 못하도록 사용 중지합니다.

네트워크 보안

  • 비공개 IP 환경을 사용하여 환경의 클러스터를 실행하는 Airflow 구성요소에 공개 IP 주소가 할당되지 않고 Google의 내부 네트워크를 통해서만 통신되도록 합니다.

  • 엄격한 방화벽 규칙을 구현하여 환경의 클러스터와 주고받는 트래픽을 제어합니다.

  • 환경이 Google Cloud 내에서만 라우팅할 수 있는 IP 주소를 통해 Google API 및 서비스에 액세스하도록 private.googleapis.com 도메인을 통해 Google API 및 서비스에 대한 연결을 구성합니다.

  • 프로젝트 및 환경이 있는 VPC 네트워크의 일반 방화벽 규칙을 검토합니다. 구성 방법에 따라 DAG를 실행하는 Airflow 작업자와 같은 환경의 Airflow 구성요소가 인터넷에 액세스할 수 있습니다.

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)을 사용해야 합니다.

다음 단계