Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3
Nesta página, mostramos como configurar restrições de local de recursos para garantir que os dados armazenados pelo Cloud Composer sejam mantidos nos locais especificados.
Como as restrições de local funcionam
As restrições de local são determinadas com base na política da organização aplicada ao projeto em que o ambiente do Cloud Composer é criado. Essa política é atribuída ao projeto ou é herdada da organização.
Com as restrições de localização ativadas, não é possível criar um ambiente em uma região proibida pela política. Se uma região estiver na lista de proibições ou na lista de permissões, não será possível criar ambientes.
Para permitir a criação de
ambientes, a política precisa permitir toda a região,
e não uma zona específica. Por exemplo, a região europe-west3
precisa ser permitida pela política para criar ambientes
do Cloud Composer nessa região.
O Cloud Composer verifica as restrições de localização em:
- Criação do ambiente.
- Upgrade do ambiente, se algum recurso adicional for criado durante a operação.
- Atualização do ambiente, para ambientes mais antigos que não impõem restrições de localização em dependências do Cloud Composer.
Além de verificar as restrições de local, o Cloud Composer faz o seguinte:
- O armazenamento de imagens do Airflow personalizadas pelo usuário em repositórios regionais do Artifact Registry.
- Se a multirregião
US
for explicitamente proibida pela política, o uso do Cloud Build será desativado. Nesse caso, as imagens personalizadas do Airflow do usuário são criadas no seu cluster do GKE.
Instalar uma dependência do Python em um ambiente de IP particular com restrições de local de recursos
Se você definir restrições de local de recursos para o projeto, o Cloud Build não poderá ser usado para instalar pacotes Python. Como consequência, o acesso direto a repositórios na Internet pública é desativado.
Para instalar dependências do Python em um ambiente de IP particular quando as
restrições de local não permitirem a multirregião US
, use
uma das seguintes opções:
Use um servidor proxy na rede VPC para se conectar a um repositório PyPI na rede Internet. Especifique o endereço de proxy no arquivo
/config/pip/pip.conf
no bucket do Cloud Storage.Se a política de segurança permitir acesso à rede VPC a partir de endereços IP externos, configure o Cloud NAT.
Armazene as dependências do Python na pasta
dags
do bucket do Cloud Storage para instalá-las como bibliotecas locais. Essa pode não ser uma boa opção se a árvore de dependência for grande.
Restringir locais para registros do Cloud Composer
Se os registros do Cloud Composer contiverem dados confidenciais, convém redirecionar os registros do Cloud Composer para um bucket regional do Cloud Storage. Para fazer isso, use um coletor de registros. Depois que você redireciona registros para um bucket do Cloud Storage, eles não são enviados para o Cloud Logging.
gcloud
Crie um novo intervalo no Cloud Storage.
gcloud storage buckets create gs://BUCKET_NAME --location=LOCATION
Substitua:
LOCATION
pela região em que o ambiente está localizado;BUCKET_NAME
pelo nome do bucket. Por exemplo,composer-logs-us-central1-example-environment
.
Crie um novo coletor de registros.
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"
Substitua:
ENVIRONMENT_NAME
pelo nome do ambiente;BUCKET_NAME
pelo nome do bucket.LOCATION
pela região em que o ambiente está localizado;
A saída do comando anterior contém o número da conta de serviço. Conceda o papel Criador de objetos do Storage a essa 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
Substitua:
PROJECT_ID
pelo ID do projeto.SA_NUMBER
pelo número da conta de serviço fornecido pelo comandogcloud logging sinks create
na etapa anterior.
Exclua os registros do novo ambiente no Monitoring.
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"
Substitua:
ENVIRONMENT_NAME
pelo nome do ambienteLOCATION
pela região em que o ambiente está localizado;