Especificar dados sigilosos com o Systems Manager Parameter Store
Com AWS Batch, você pode injetar dados confidenciais nos seus contêineres, ao armazená-los nos parâmetros AWS Systems Manager Parameter Store e fazer referência a eles na definição do contêiner.
Tópicos
Considerações ao especificar dados confidenciais usando o 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 atributo exige que a instância de contêiner tenha versão 1.23.0 ou acima 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 versão mais recente, consulte Atualizando Agente 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 obrigatórias requeridas do IAM para segredos AWS Batch
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êiner Amazon ECS puxe os recursos AWS Systems Manager necessários. Para mais informações, consulte Perfil de execução do IAM do AWS Batch.
Para acesso aos parâmetros AWS Systems Manager Parameter Store criados, adicione manualmente as permissões a seguir como política alinhada à 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:
Injetar dados sigilosos como uma 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.
O seguinte é um 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" }] }] }
Injetar dados sigilosos em uma configuração de registro em 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.
O seguinte é um 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" }] }] }] }
Criar um parâmetro AWS Systems Manager Parameter Store
Você pode usar o console do AWS Systems Manager para criar um parâmetro 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 Guia de Usuário AWS Systems Manager.
Para criar um parâmetro Parameter Store
-
Abra o console AWS Systems Manager em https://console.aws.amazon.com/systems-manager/
. -
No painel de navegação, escolha Parameter Store, Criar Parâmetro.
-
Para Nome, digite uma hierarquia e nome de parâmetro. Por exemplo, digite
test/database_password. -
Para Descrição, digite uma descrição opcional.
-
Para Tipo, escolha String, StringList ou SecureString.
nota
-
Se escolher SecureString, o campo ID KMS Key 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 Guia de Usuário AWS Systems Manager. -
Ao criar um parâmetro de string seguro no console usando o parâmetro
key-idcom um apelido personalizado de chave KMS ou apelido ARN, você deve especificar o prefixoalias/antes do apelido. O seguinte é um exemplo de ARN:arn:aws:kms:us-east-2:123456789012:alias/MyAliasNameO seguinte é um exemplo de apelido:
alias/MyAliasName
-
-
Em Valor, digite um valor. Por exemplo,
MyFirstParameter. Caso escolhea SecureString, o valor será mascarado exatamente conforme digitado. -
Escolha Criar Parâmetro.