As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Configurando uma conexão Apache Airflow usando um segredo AWS Secrets Manager
AWS Secrets Manager é um back-end alternativo compatível com o Apache Airflow em um ambiente Amazon Managed Workflows for Apache Airflow. Este tópico mostra como usar para armazenar com segurança segredos AWS Secrets Manager para variáveis do Apache Airflow e uma conexão do Apache Airflow no Amazon Managed Workflows for Apache Airflow.
nota
-
Você será cobrado pelos segredos que criar. Para obter informações sobre preços, consulte Preços do AWS
. -
AWS O Systems Manager Parameter Store também é suportado como um back-end secreto no Amazon MWAA. Para obter mais informações, consulte a documentação do Amazon Provider Package
.
Sumário
Etapa 1: forneça ao Amazon MWAA permissão para acessar as chaves secretas do Secrets Manager
O perfil de execução do seu ambiente Amazon MWAA precisa de acesso de leitura à chave secreta de entrada em AWS Secrets Manager. A política do IAM a seguir permite acesso de leitura e gravação usando a política AWS gerenciada SecretsManagerReadWrite
Para anexar a política ao seu perfil de execução
-
Abra a página Ambientes
no console do Amazon MWAA. -
Escolha um ambiente.
-
Escolha sua função de execução no painel Permissões.
-
Escolha Anexar políticas.
-
Digite
SecretsManagerReadWrite
no campo de texto Políticas de filtro. -
Escolha Anexar política.
Se você não quiser usar uma política de permissão AWS gerenciada, você pode atualizar diretamente a função de execução do seu ambiente para permitir qualquer nível de acesso aos recursos do Secrets Manager. Por exemplo, a declaração de política a seguir concede acesso de leitura a todos os segredos que você cria em uma AWS região específica no Secrets Manager.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "secretsmanager:GetResourcePolicy", "secretsmanager:GetSecretValue", "secretsmanager:DescribeSecret", "secretsmanager:ListSecretVersionIds" ], "Resource": "arn:aws:secretsmanager:us-west-2:012345678910:secret:*" }, { "Effect": "Allow", "Action": "secretsmanager:ListSecrets", "Resource": "*" } ] }
Etapa 2: crie o back-end do Secrets Manager como uma opção de configuração do Apache Airflow
A seção a seguir descreve como criar uma opção de configuração do Apache Airflow no console Amazon MWAA para o back-end. AWS Secrets Manager Se você estiver usando uma definição de configuração com o mesmo nome em airflow.cfg
, a configuração criada nas etapas a seguir terá precedência e substituirá as definições de configuração.
-
Abra a página Ambientes
no console do Amazon MWAA. -
Escolha um ambiente.
-
Selecione Editar.
-
Escolha Próximo.
-
Escolha Adicionar configuração personalizada no painel Opções de configuração do Airflow. Adicione os seguintes pares de chave-valor:
-
:secrets.backend
airflow.providers.amazon.aws.secrets.secrets_manager.SecretsManagerBackend
-
:secrets.backend_kwargs
Configura o Apache Airflow para strings de conexão e variáveis nos caminhos{"connections_prefix" : "airflow/connections", "variables_prefix" : "airflow/variables"}
airflow/connections/*
eairflow/variables/*
.É possível usar um padrão de pesquisa
para reduzir o número de chamadas de API que o Amazon MWAA faz para o Secrets Manager em seu nome. Se você não especificar um padrão de pesquisa, o Apache Airflow pesquisará todas as conexões e variáveis no back-end configurado. Ao especificar um padrão, você restringe os caminhos possíveis que o Apache Airflow procura. Isso reduz seus custos ao usar o Secrets Manager com o Amazon MWAA. Para especificar um padrão de pesquisa, especifique os parâmetros
connections_lookup_pattern
evariables_lookup_pattern
. Esses parâmetros aceitam uma RegEx string como entrada. Por exemplo, para procurar segredos que comecem comtest
, digite o seguinte parasecrets.backend_kwargs
:{ "connections_prefix": "airflow/connections", "connections_lookup_pattern": "^test", "variables_prefix" : "airflow/variables", "variables_lookup_pattern": "^test" }
nota
Para usar
connections_lookup_pattern
evariables_lookup_pattern
, você deve instalar a versão 7.3.0 ou superior deapache-airflow-providers-amazon
. Para obter mais informações sobre como atualizar os pacotes do provedor para versões mais recentes, consulte Como especificar pacotes de fornecedores mais novos.
-
-
Escolha Salvar.
Etapa três: gerar uma string de URI de AWS conexão do Apache Airflow
Para criar uma string de conexão, use a tecla "Tab" do teclado para adicionar recuo dos pares de chave-valor no objeto Conexãoextra
em sua sessão de shell. A seção a seguir mostra as etapas para gerar uma string de URI de conexão do Apache Airflow
Etapa 4: adicione as variáveis no Secrets Manager
A seção a seguir descreve como criar o segredo para uma variável no Secrets Manager.
Para criar o segredo
-
Abra o console de AWS Secrets Manager
. -
Selecione Armazenar um novo segredo.
-
Selecione Outro tipo de segredo.
-
No painel Especificar os pares de chave/valor a serem armazenados nesse painel secreto, escolha Texto simples.
-
Adicione o valor da variável como Texto simples no formato a seguir.
"
YOUR_VARIABLE_VALUE
"Por exemplo, para especificar um número inteiro:
14
Por exemplo, para especificar uma string:
"mystring"
-
Em Chave de criptografia, escolha uma opção de AWS KMS chave na lista suspensa.
-
Insira um nome no campo de texto para Nome secreto no formato a seguir.
airflow/variables/
YOUR_VARIABLE_NAME
Por exemplo:
airflow/variables/test-variable
-
Escolha Próximo
-
Na página Configurar segredo, no painel Nome e descrição do segredo, faça o seguinte.
-
Em Nome secreto, forneça um nome para seu segredo.
-
(Opcional) Em Descrição, insira uma descrição para o nome do segredo.
Escolha Avançar.
-
-
Em Configurar rotação - opcional, deixe as opções padrão e escolha Avançar.
-
Repita essas etapas no Secrets Manager para quaisquer variáveis adicionais que você queira adicionar.
-
Na página Analisar, analise os detalhes do segredo e escolha Armazenar.
Etapa 5: adicione a conexão no Secrets Manager
A seção a seguir descreve como criar o segredo para o URI da string de conexão no Secrets Manager.
Para criar o segredo
-
Abra o console de AWS Secrets Manager
. -
Selecione Armazenar um novo segredo.
-
Selecione Outro tipo de segredo.
-
No painel Especificar os pares de chave/valor a serem armazenados nesse painel secreto, escolha Texto simples.
-
Adicione a string do URI de conexão como texto simples no formato a seguir.
YOUR_CONNECTION_URI_STRING
Por exemplo:
mysql://288888a0-50a0-888-9a88-1a111aaa0000.a1.us-east-1.airflow.amazonaws.com%2Fhome?role_arn=arn%3Aaws%3Aiam%3A%3A001122332255%3Arole%2Fservice-role%2FAmazonMWAA-MyAirflowEnvironment-iAaaaA®ion_name=us-east-1
Atenção
O Apache Airflow analisa cada um dos valores na string de conexão. Você não deve usar aspas simples nem duplas, ou ele analisará a conexão como uma única string.
-
Em Chave de criptografia, escolha uma opção de AWS KMS chave na lista suspensa.
-
Insira um nome no campo de texto para Nome secreto no formato a seguir.
airflow/connections/
YOUR_CONNECTION_NAME
Por exemplo:
airflow/connections/myconn
-
Escolha Próximo
-
Na página Configurar segredo, no painel Nome e descrição do segredo, faça o seguinte.
-
Em Nome secreto, forneça um nome para seu segredo.
-
(Opcional) Em Descrição, insira uma descrição para o nome do segredo.
Escolha Avançar.
-
-
Em Configurar rotação - opcional, deixe as opções padrão e escolha Avançar.
-
Repita essas etapas no Secrets Manager para quaisquer variáveis adicionais que você queira adicionar.
-
Na página Analisar, analise os detalhes do segredo e escolha Armazenar.
Código de exemplo
-
Saiba como usar a chave secreta para a conexão do Apache Airflow (
myconn
) nesta página usando o código de exemplo em Usando uma chave secreta AWS Secrets Manager para uma conexão Apache Airflow. -
Saiba como usar a chave secreta para a variável do Apache Airflow (
test-variable
) nesta página usando o código de exemplo em Usando uma chave secreta AWS Secrets Manager para uma variável do Apache Airflow.
Recursos
-
Para obter mais informações sobre como configurar segredos do Secrets Manager usando o console e o AWS CLI, consulte Criar um segredo no Guia do AWS Secrets Manager Usuário.
-
Use um script Python para migrar um grande volume de variáveis e conexões do Apache Airflow para o Secrets Manager em Move your Apache Airflow connections and variables to AWS Secrets Manager
(Mova suas conexões e variáveis do Apache Airflow para ).
Próximas etapas
-
Saiba como gerar um token para acessar a interface do Apache Airflow em Como acessar o Apache Airflow.