Especificando dados sigilosos usando Systems Manager Parameter Store - AWS Batch

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

Especificando dados sigilosos usando Systems Manager Parameter Store

Com AWS Batch, você pode injetar dados confidenciais em seus contêineres armazenando seus dados confidenciais nos parâmetros do AWS Systems Manager Parameter Store e, em seguida, referenciando-os na definição do contêiner.

Considerações para especificar dados confidenciais usando Systems Manager Parameter Store

As informações a seguir devem ser consideradas ao especificar dados confidenciais para contêineres usando parâmetros Systems Manager Parameter Store.

  • Esse recurso exige que sua instância de contêiner tenha a versão 1.23.0 ou posterior do agente de contêiner. Recomendamos usar a versão mais recente do atendente de contêiner. Para mais informações sobre como verificar a versão do agente e atualizá-la para a mais recente, consulte Atualizando Atendente de Contêiner Amazon ECS no Guia do Desenvolvedor Amazon Elastic Container Service.

  • Os dados confidenciais são injetados no contêiner do seu trabalho o mesmo for iniciado. Caso o segredo ou parâmetro Parameter Store seja posteriormente atualizado ou alternado, o contêiner não receberá o valor atualizado automaticamente. Você deve iniciar uma nova tarefa para forçar seu início com segredos atualizados.

Permissões do IAM necessárias para AWS Batch segredos

Para este atributo, você precisa possuir a função de execução e referenciá-la em sua definição de trabalho. Isso permite que o agente de contêineres do Amazon ECS extraia os AWS Systems Manager recursos necessários. Para ter mais informações, consulte AWS Batch função de execução do IAM.

Para fornecer acesso aos AWS Systems Manager parâmetros do Parameter Store que você cria, adicione manualmente as seguintes permissões como uma política embutida à função de execução. Para mais informações, consulte Adicionando e Removendo Políticas do IAM no Guia de usuário do IAM.

  • ssm:GetParameters–-Obrigatório se fizer referência a um parâmetro Systems Manager Parameter Store em uma definição de tarefa.

  • secretsmanager:GetSecretValue–-Obrigatório se fizer referência a um segredo Secrets Manager diretamente, ou se o parâmetro Systems Manager Parameter Store fizer referência a um segredo Secrets Manager em uma definição de tarefa.

  • kms:Decrypt–-obrigatório somente se o segredo usar uma chave personalizada KMS e não a chave padrão. O ARN da chave personalizada deve ser adicionado como recurso.

O exemplo de política alinhada a seguir adiciona as permissões necessárias:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:GetParameters", "secretsmanager:GetSecretValue", "kms:Decrypt" ], "Resource": [ "arn:aws:ssm:<region>:<aws_account_id>:parameter/<parameter_name>", "arn:aws:secretsmanager:<region>:<aws_account_id>:secret:<secret_name>", "arn:aws:kms:<region>:<aws_account_id>:key/<key_id>" ] } ] }

Injetando dados confidenciais como variável de ambiente

Em sua definição de contêiner, especifique secrets com o nome da variável de ambiente a ser definida no contêiner e o ARN completo do parâmetro Systems Manager Parameter Store contendo os dados sigilosos a serem apresentados.

A seguir, trecho de uma definição de tarefa mostrando formato ao referenciar um parâmetro Systems Manager Parameter Store. Se o parâmetro Systems Manager Parameter Store existir na mesma Região da tarefa sendo iniciada, você poderá usar o ARN completo ou nome do parâmetro. Se o parâmetro existir em uma Região diferente, o ARN completo deverá ser especificado.

{ "containerProperties": [{ "secrets": [{ "name": "environment_variable_name", "valueFrom": "arn:aws:ssm:region:aws_account_id:parameter/parameter_name" }] }] }

Injetando dados confidenciais em uma configuração de log

Em sua definição de contêiner, ao especificar logConfiguration, você poderá especificar secretOptions com o nome da opção de registro de log a ser definida no contêiner e o ARN completo do parâmetro Systems Manager Parameter Store contendo os dados confidenciais a serem apresentados.

Importante

Se o parâmetro Systems Manager Parameter Store existir na mesma Região da tarefa sendo iniciada, você poderá usar o ARN completo ou nome do parâmetro. Se o parâmetro existir em uma Região diferente, o ARN completo deverá ser especificado.

A seguir, trecho de uma definição de tarefa mostrando formato ao referenciar um parâmetro Systems Manager Parameter Store.

{ "containerProperties": [{ "logConfiguration": [{ "logDriver": "fluentd", "options": { "tag": "fluentd demo" }, "secretOptions": [{ "name": "fluentd-address", "valueFrom": "arn:aws:ssm:region:aws_account_id:parameter/parameter_name" }] }] }] }

Criando um AWS Systems Manager parâmetro do Parameter Store

Você pode usar o AWS Systems Manager console para criar um parâmetro do Systems Manager Parameter Store para seus dados confidenciais. Para mais informações, consulte Demonstração: Crie e Use um Parâmetro em um Comando (Console) no AWS Systems Manager Guia de Usuário.

Para criar um parâmetro Parameter Store
  1. Abra o AWS Systems Manager console em https://console.aws.amazon.com/systems-manager/.

  2. No painel de navegação, escolha Parameter Store, Criar Parâmetro.

  3. Para Nome, digite uma hierarquia e nome de parâmetro. Por exemplo, digite test/database_password.

  4. Para Descrição, digite uma descrição opcional.

  5. Em Tipo, escolha Cadeia de caracteres StringList, ou SecureString.

    nota
    • Se você escolher SecureString, o campo ID da chave KMS será exibido. Se não fornecer o ID da chave KMS, o ARN da chave KMS, um apelido ou apelido ARN, o sistema usará alias/aws/ssm. Essa é a chave KMS padrão para o Systems Manager. Para evitar o uso dessa chave, escolha uma personalizada. Para mais informações, consulte Use Parâmetros de Strings Seguros no AWS Systems Manager Guia de uUsuário.

    • Ao criar um parâmetro de string seguro no console usando o parâmetro key-id com um apelido personalizado de chave KMS ou apelido ARN, você deve especificar o prefixo alias/ antes do apelido. A seguir, um exemplo de ARN:

      arn:aws:kms:us-east-2:123456789012:alias/MyAliasName

      A seguir, um exemplo de apelido:

      alias/MyAliasName
  6. Em Valor, digite um valor. Por exemplo, MyFirstParameter. Se você escolher SecureString, o valor será mascarado exatamente como você o inseriu.

  7. Escolha Criar Parâmetro.