Armazenar dados de configuração sigilosos no AWS Secrets Manager - Amazon EMR

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á.

Armazenar dados de configuração sigilosos no AWS Secrets Manager

A Amazon EMR descreve e lista API as operações que emitem dados de configuração personalizados (como DescribeCluster eListInstanceGroups) em texto simples. A Amazon EMR se integra AWS Secrets Manager para que você possa armazenar seus dados no Secrets Manager e usar o segredo ARN em suas configurações. Dessa forma, você não passa dados de configuração confidenciais para a Amazon EMR em texto sem formatação e os expõe ao ambiente externo. APIs Se você indicar que um par de valores-chave contém um ARN para um segredo armazenado no Secrets Manager, a Amazon EMR recupera esse segredo ao enviar dados de configuração para o cluster. A Amazon EMR não envia a anotação quando usa o externo APIs para exibir a configuração.

Criar um segredo

Para criar um segredo, siga as instruções em Criação de um segredo do AWS Secrets Manager no Guia do usuário do AWS Secrets Manager . Na Etapa 3, você deve escolher o campo Texto sem formatação para inserir o valor sigiloso.

Observe que, embora o Secrets Manager permita que um segredo contenha até 65536 bytes, a Amazon EMR limita o tamanho combinado da chave de propriedade (excluindo a anotação) e o valor secreto recuperado a 1024 caracteres.

Conceda EMR à Amazon acesso para recuperar o segredo

A Amazon EMR usa uma função IAM de serviço para provisionar e gerenciar clusters para você. A função de serviço da Amazon EMR define as ações permitidas para a Amazon EMR quando ela provisiona recursos e executa tarefas de nível de serviço que não são executadas no contexto de uma EC2 instância da Amazon em execução em um cluster. Para obter mais informações sobre funções de serviço, consulte Função de serviço para Amazon EMR (EMRfunção) e Personalizar IAM funções.

Para permitir que EMR a Amazon recupere o valor secreto do Secrets Manager, adicione a seguinte declaração de política à sua EMR função na Amazon ao iniciar seu cluster.

{ "Sid":"AllowSecretsRetrieval", "Effect":"Allow", "Action":"secretsmanager:GetSecretValue", "Resource":[ "arn:aws:secretsmanager:<region>:<aws-account-id>:secret:<secret-name>" ] }

Se você criar o segredo com uma chave gerenciada pelo cliente AWS KMS key, também deverá adicionar kms:Decrypt permissão à EMR função da Amazon para a chave que você usa. Para obter mais informações, consulte Controle de acesso e autenticação para o AWS Secrets Manager no Manual do usuário do AWS Secrets Manager .

Usar o segredo em uma classificação de configuração

Você pode adicionar a EMR.secret@ anotação a qualquer propriedade de configuração para indicar que seu par de valores-chave contém um ARN para um segredo armazenado no Secrets Manager.

O exemplo a seguir mostra como fornecer um segredo ARN em uma classificação de configuração:

{ "Classification":"core-site", "Properties":{ "presto.s3.access-key":"<sensitive-access-key>", "EMR.secret@presto.s3.secret-key":"arn:aws:secretsmanager:<region>:<aws-account-id>:secret:<secret-name>" } }

Quando você cria seu cluster e envia sua configuração anotada, a Amazon EMR valida as propriedades de configuração. Se sua configuração for válida, a Amazon EMR retira a anotação da configuração e recupera o segredo do Secrets Manager para criar a configuração real antes de aplicá-la ao cluster:

{ "Classification":"core-site", "Properties":{ "presto.s3.access-key":"<sensitive-access-key>", "presto.s3.secret-key":"<my-secret-key-retrieved-from-Secrets-Manager>" } }

Quando você chama uma ação comoDescribeCluster, a Amazon EMR retorna a configuração atual do aplicativo no cluster. Se uma propriedade de configuração do aplicativo estiver marcada como contendo um segredoARN, a configuração do aplicativo retornada pela DescribeCluster chamada conterá o valor ARN e não o segredo. Isso garante que o valor do segredo seja visível somente no cluster:

{ "Classification":"core-site", "Properties":{ "presto.s3.access-key":"<sensitive-access-key>", "presto.s3.secret-key":"arn:aws:secretsmanager:<region>:<aws-account-id>:secret:<secret-name>" } }

Atualizar o valor do segredo

A Amazon EMR recupera o valor secreto de uma configuração anotada sempre que o grupo de instâncias anexado estiver iniciando, reconfigurando ou redimensionando. É possível usar o Secrets Manager para modificar o valor de um segredo utilizado na configuração de um cluster em execução. Ao fazer isso, você pode enviar uma solicitação de reconfiguração para cada grupo de instâncias que deve receber o valor atualizado. Para obter mais informações sobre como reconfigurar um grupo de instâncias e o que considerar ao fazer isso, consulte Reconfigurar um grupo de instâncias de um cluster em execução.