

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

# Especificar dados sigilosos com o Systems Manager Parameter Store
<a name="specifying-sensitive-data-parameters"></a>

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.

**Topics**
+ [Considerações ao especificar dados confidenciais usando o Systems Manager Parameter Store](#secrets--parameterstore-considerations)
+ [Permissões do IAM necessárias para AWS Batch segredos](#secrets-iam-parameters)
+ [Injetar dados sigilosos como uma variável de ambiente](#secrets-envvar-parameters)
+ [Injetar dados sigilosos em uma configuração de registro em log](#secrets-logconfig-parameters)
+ [Criar um AWS Systems Manager parâmetro do Parameter Store](#secrets-create-parameter)

## Considerações ao especificar dados confidenciais usando o Systems Manager Parameter Store
<a name="secrets--parameterstore-considerations"></a>

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 atendente 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 atendente e atualizá-la para a versão mais recente, consulte [Atualizando atendente de Contêiner Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html) 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
<a name="secrets-iam-parameters"></a>

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 obter mais informações, consulte [AWS Batch Função de execução do IAM](execution-IAM-role.md).

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](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html) 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:

------
#### [ JSON ]

****  

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

------

## Injetar dados sigilosos como uma variável de ambiente
<a name="secrets-envvar-parameters"></a>

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
<a name="secrets-logconfig-parameters"></a>

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 AWS Systems Manager parâmetro do Parameter Store
<a name="secrets-create-parameter"></a>

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)](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-paramstore-console.html) no *Guia de Usuário AWS Systems Manager *.

**Para criar um parâmetro Parameter Store**

1. Abra o AWS Systems Manager console em [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

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

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

1. Para **Descrição**, digite uma descrição opcional.

1. 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](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-paramstore-about.html) no *Guia de Usuário AWS Systems Manager *.
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. O seguinte é um exemplo de ARN:  

     ```
     arn:aws:kms:us-east-2:123456789012:alias/MyAliasName
     ```
O seguinte é um exemplo de apelido:  

     ```
     alias/MyAliasName
     ```

1. Em **Valor**, digite um valor. Por exemplo, .`MyFirstParameter` Se você escolher **SecureString**, o valor será mascarado exatamente como você o inseriu.

1. Escolha **Criar Parâmetro**.