Configure restrições de localização de recursos

Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1

Esta página mostra como configurar restrições de localização de recursos para que os seus dados armazenados pelo Cloud Composer sejam mantidos nas localizações que especificar.

Como funcionam as restrições de localização

As restrições de localização do Cloud Composer são determinadas com base na política organizacional aplicada ao projeto onde o ambiente do Cloud Composer é criado. Esta política é atribuída no projeto ou é herdada da organização.

Com as restrições de localização ativadas, não é possível criar um ambiente numa região proibida pela política. Se uma região estiver na lista de recusa ou não estiver na lista de permissão, não pode criar ambientes nesta região.

Para permitir a criação de ambientes, a política tem de permitir toda a região e não uma zona específica dentro desta região. Por exemplo, a região europe-west3 tem de ser permitida pela política para criar ambientes do Cloud Composer nesta região.

O Cloud Composer verifica as restrições de localização nos seguintes locais:

  • Criação de ambientes.
  • Atualização do ambiente, se forem criados recursos adicionais durante a operação.
  • Atualização do ambiente para ambientes mais antigos que não aplicam restrições de localização nas dependências do Cloud Composer.

Além de verificar as restrições de localização, o Cloud Composer faz o seguinte:

  • Armazena imagens do Airflow personalizadas pelo utilizador em repositórios regionais do Artifact Registry. Por exemplo, estas imagens são criadas quando instala imagens PyPI personalizadas no seu ambiente.
  • Se a US multirregião for explicitamente proibida pela política, a utilização do Cloud Build é desativada. Neste caso, as imagens do Airflow personalizadas pelo utilizador são criadas no cluster do seu ambiente.

Instale uma dependência do Python num ambiente de IP privado com restrições de localização de recursos

Se definir restrições de localização de recursos para o seu projeto, não é possível usar o Cloud Build para instalar pacotes Python. Consequentemente, o acesso direto aos repositórios na Internet pública é desativado.

Para instalar dependências do Python num ambiente de IP privado quando as suas restrições de localização não permitem a US multirregião, use uma das seguintes opções:

  • Usar um repositório PyPI privado alojado na sua rede VPC.

  • Use um servidor proxy na sua rede VPC para se ligar a um repositório do PyPI na Internet pública. Especifique o endereço do proxy no ficheiro /config/pip/pip.conf no contentor do Cloud Storage.

  • Se a sua política de segurança permitir o acesso à sua rede VPC a partir de endereços IP externos, pode configurar o Cloud NAT.

  • Armazene as dependências do Python na pasta dags no contentor do Cloud Storage para as instalar como bibliotecas locais. Esta pode não ser uma boa opção se a árvore de dependências for grande.

Restrinja as localizações dos registos do Cloud Composer

Se os seus registos do Cloud Composer contiverem dados confidenciais, recomendamos que redirecione os registos do Cloud Composer para um contentor do Cloud Storage regional. Para o fazer, use um destinatário de registos. Depois de redirecionar os registos para um contentor do Cloud Storage, os registos não são enviados para o Cloud Logging.

gcloud

  1. Crie um novo contentor do Cloud Storage.

    gcloud storage buckets create gs://BUCKET_NAME --location=LOCATION
    

    Substituir:

    • LOCATION com a região onde o ambiente está localizado.
    • BUCKET_NAME com o nome do contentor. Por exemplo, composer-logs-us-central1-example-environment.
  2. Crie um novo destino de registo.

    gcloud logging sinks create \
    composer-log-sink-ENVIRONMENT_NAME \
    storage.googleapis.com/BUCKET_NAME \
    --log-filter "resource.type=cloud_composer_environment AND \
    resource.labels.environment_name=ENVIRONMENT_NAME AND \
    resource.labels.location=LOCATION"
    

    Substituir:

    • ENVIRONMENT_NAME com o nome do ambiente.
    • BUCKET_NAME com o nome do contentor.
    • LOCATION com a região onde o ambiente está localizado.
  3. O resultado do comando anterior contém o número da conta de serviço. Conceda a função Criador de objetos de armazenamento a esta conta de serviço:

    gcloud projects add-iam-policy-binding PROJECT_ID \
    --member="serviceAccount:SA_NUMBER@gcp-sa-logging.iam.gserviceaccount.com" \
    --role='roles/storage.objectCreator' \
    --condition=None
    

    Substituir:

    • PROJECT_ID com o ID do projeto.
    • SA_NUMBER com o número da conta de serviço fornecido pelo comando gcloud logging sinks create no passo anterior.
  4. Exclua os registos do seu ambiente do Registo.

    gcloud logging sinks update _Default \
    --add-exclusion name=ENVIRONMENT_NAME-exclusion,filter=\
    "resource.type=cloud_composer_environment AND \
    resource.labels.environment_name=ENVIRONMENT_NAME AND \
    resource.labels.location=LOCATION"
    

    Substituir:

    • ENVIRONMENT_NAME com o nome do ambiente.
    • LOCATION com a região onde o ambiente está localizado.

O que se segue?