

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

# Usar um manifesto para habilitar recursos de recuperação adicionais
<a name="appconfig-agent-how-to-use-additional-features"></a>

AWS AppConfig O agente oferece os seguintes recursos adicionais para ajudá-lo a recuperar configurações para seus aplicativos. 
+ [Configurando o AWS AppConfig Agente para recuperar configurações de várias contas](appconfig-agent-how-to-use-additional-features-multi-account.md): use o AWS AppConfig Agente de uma conta primária ou de *recuperação* Conta da AWS para recuperar dados de configuração de várias contas de fornecedores. 
+ [Configurando o AWS AppConfig Agente para gravar cópias de configuração em disco](appconfig-agent-how-to-use-additional-features-write-to-disk.md): use o AWS AppConfig Agent para gravar dados de configuração em disco. Esse recurso permite que os clientes com aplicações que leem dados de configuração do disco se integrem ao AWS AppConfig.

## Noções básicas sobre manifestos do agente
<a name="appconfig-agent-how-to-use-additional-features-about-manifests"></a>

Para habilitar esses recursos AWS AppConfig do Agente, você cria um manifesto. Manifesto é um conjunto de dados de configuração que você fornece para controlar as ações que o agente pode realizar. Um manifesto é escrito em JSON. Ele contém um conjunto de chaves de nível superior que correspondem às diferentes configurações que você implantou usando. AWS AppConfig

Um manifesto pode incluir várias configurações. Além disso, cada configuração no manifesto pode identificar um ou mais recursos do agente a serem usados na configuração especificada. O conteúdo do manifesto usa o seguinte formato:

```
{
    "application_name:environment_name:configuration_name": {
        "agent_feature_to_enable_1": {
            "feature-setting-key": "feature-setting-value"
        },
        "agent_feature_to_enable_2": {
            "feature-setting-key": "feature-setting-value"
        }
    }
}
```

Veja um exemplo de JSON para um manifesto com duas configurações. A primeira configuração (*MyApp*) não usa nenhum recurso do AWS AppConfig Agente. A segunda configuração (*My2ndApp*) usa a *cópia da configuração de gravação em disco* e os recursos de *recuperação de várias contas*:

```
{
        "MyApp:Test:MyAllowListConfiguration": {},
        
        "My2ndApp:Beta:MyEnableMobilePaymentsFeatureFlagConfiguration": {
            "credentials": {
                "roleArn": "arn:aws:us-west-1:iam::123456789012:role/MyTestRole",
                "roleExternalId": "00b148e2-4ea4-46a1-ab0f-c422b54d0aac",
                "roleSessionName": "AwsAppConfigAgent",
                "credentialsDuration": "2h"
            },
            "writeTo": {
                "path": "/tmp/aws-appconfig/my-2nd-app/beta/my-enable-payments-feature-flag-configuration.json"
            }
        }
    }
```

**Como fornecer um manifesto do agente**  
Você pode armazenar o manifesto como um arquivo em um local onde o AWS AppConfig Agente possa lê-lo. Ou você pode armazenar o manifesto como uma AWS AppConfig configuração e direcionar o agente para ele. Para fornecer um manifesto do agente, é necessário definir uma variável de ambiente `MANIFEST` com um dos seguintes valores:


****  

| Local do manifesto | Valor de variável de ambiente | Caso de uso | 
| --- | --- | --- | 
|  Arquivo  |  arquivo:/path/to/agent-manifest.json  |  Use esse método se o manifesto não mudar com frequência.  | 
|  AWS AppConfig configuração  |  *application-name*:*environment-name*:*configuration-name*  |  Use esse método para atualizações dinâmicas. Você pode atualizar e implantar um manifesto armazenado AWS AppConfig como configuração da mesma forma que armazena outras AWS AppConfig configurações.  | 
|  Variável de ambiente  |  Conteúdo do manifesto (JSON)  |  Use esse método se o manifesto não mudar com frequência. Esse método é útil em ambientes de contêiner em que é mais fácil definir uma variável de ambiente do que expor um arquivo.  | 

Para obter mais informações sobre a configuração de variáveis para o AWS AppConfig Agent, consulte o tópico relevante para seu caso de uso:
+ [Configurando a extensão do AWS AppConfig Agent Lambda](appconfig-integration-lambda-extensions-config.md)
+ [Usando o AWS AppConfig agente com o Amazon EC2](https://docs.aws.amazon.com/appconfig/latest/userguide/appconfig-integration-ec2.html#appconfig-integration-ec2-configuring)
+ [Usando o AWS AppConfig Agent com o Amazon ECS e o Amazon EKS](https://docs.aws.amazon.com/appconfig/latest/userguide/appconfig-integration-containers-agent.html#appconfig-integration-containers-agent-configuring)

# Configurando o AWS AppConfig Agente para recuperar configurações de várias contas
<a name="appconfig-agent-how-to-use-additional-features-multi-account"></a>

Você pode configurar o AWS AppConfig Agente para recuperar configurações de várias Contas da AWS inserindo substituições de credenciais no manifesto do Agente. AWS AppConfig As *substituições de credenciais* incluem o Amazon Resource Name (ARN) de uma função AWS Identity and Access Management (IAM), um ID da função, um nome de sessão e a duração de quanto tempo o agente pode assumir a função. 

Você insere esses detalhes em uma seção de “credenciais” no manifesto. A seção “credenciais” usa o seguinte formato:

```
{
    "application_name:environment_name:configuration_name": {
        "credentials": {
            "roleArn": "arn:partition:iam::account_ID:role/roleName",
            "roleExternalId": "string",
            "roleSessionName": "string",
            "credentialsDuration": "time_in_hours" 
        }
    }
}
```

Exemplo:

```
{
    "My2ndApp:Beta:MyEnableMobilePaymentsFeatureFlagConfiguration": {
        "credentials": {
            "roleArn": "arn:aws:us-west-1:iam::123456789012:role/MyTestRole",
            "roleExternalId": "00b148e2-4ea4-46a1-ab0f-c422b54d0aac",
            "roleSessionName": "AWSAppConfigAgent",
            "credentialsDuration": "2h" 
        }
    }
}
```

Antes de recuperar uma configuração, o agente lê os detalhes da credencial da configuração no manifesto e, depois, assume o perfil do IAM especificado para essa configuração. É possível especificar um conjunto diferente de substituições de credencial para configurações diferentes em um único manifesto. O diagrama a seguir mostra como o AWS AppConfig Agente, ao ser executado na Conta A (a conta de recuperação), assume funções separadas especificadas para as Contas B e C (as contas do fornecedor) e, em seguida, chama a operação da [GetLatestConfiguration](https://docs.aws.amazon.com/appconfig/2019-10-09/APIReference/API_appconfigdata_GetLatestConfiguration.html)API para recuperar os dados de configuração da AWS AppConfig execução nessas contas:

![\[Como o AWS AppConfig agente trabalha com funções do IAM em partes separadas Contas da AWS.\]](http://docs.aws.amazon.com/pt_br/appconfig/latest/userguide/images/agent multi-account.png)


## Configurar permissões para recuperar dados de configuração das contas fornecedoras
<a name="appconfig-agent-how-to-use-additional-features-multi-account-permission"></a>

AWS AppConfig O agente em execução na conta de recuperação precisa de permissão para recuperar dados de configuração das contas do fornecedor. Você concede permissão ao agente criando uma função AWS Identity and Access Management (IAM) em cada uma das contas do fornecedor. AWS AppConfig O agente na conta de recuperação assume essa função para obter dados das contas do fornecedor. Conclua os procedimentos nesta seção para criar uma política de permissões do IAM, um perfil do IAM e adicionar substituições do agente ao manifesto.

**Antes de começar**  
Colete as informações a seguir antes de criar uma política de permissão e um perfil no IAM.
+ O IDs para cada um Conta da AWS. A conta *de recuperação* é a conta que chamará outras contas para dados de configuração. As contas *fornecedoras* são as contas que fornecerão os dados de configuração à conta de recuperação.
+ O nome da função do IAM usada AWS AppConfig na conta de recuperação. Aqui está uma lista das funções usadas por AWS AppConfig, por padrão:
  + Para o Amazon Elastic Compute Cloud (Amazon EC2) AWS AppConfig , usa a função de instância.
  + Para AWS Lambda, AWS AppConfig usa a função de execução do Lambda.
  + Para o Amazon Elastic Container Service (Amazon ECS) e o Amazon Elastic Kubernetes Service (Amazon EKS), usa a função de contêiner. AWS AppConfig 

  Se você configurou o AWS AppConfig Agente para usar uma função diferente do IAM especificando a variável de `ROLE_ARN` ambiente, anote esse nome.

**Criar a política de permissões**  
Use o procedimento a seguir para criar uma política de permissões usando o console do IAM. Conclua o procedimento em cada um deles Conta da AWS que fornecerá dados de configuração para a conta de recuperação.

**Para criar uma política do IAM**

1. Faça login Console de gerenciamento da AWS na conta de um fornecedor.

1. Abra o console do IAM em [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. No painel de navegação, selecione **Políticas** e, em seguida, **Criar política**.

1. Escolha a opção **JSON**.

1. No **Editor de políticas**, substitua o JSON padrão pela declaração de política a seguir. Atualize cada um *example resource placeholder* com os detalhes da conta do fornecedor.

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "appconfig:StartConfigurationSession",
                   "appconfig:GetLatestConfiguration"
               ],
               "Resource": "arn:aws:appconfig:us-east-1:111122223333:application/vendor_application_ID/environment/vendor_environment_ID/configuration/vendor_configuration_ID"
           }
       ]
   }
   ```

------

   Veja um exemplo abaixo:

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [{
           "Effect": "Allow",
           "Action": [
               "appconfig:StartConfigurationSession",
               "appconfig:GetLatestConfiguration"
           ],
           "Resource": "arn:aws:appconfig:us-east-2:111122223333:application/abc123/environment/def456/configuration/hij789"
       }
      ]
   }
   ```

------

1. Escolha **Próximo**.

1. No campo **Nome da política**, insira um nome.

1. (Opcional) Em **Adicionar tags**, adicione um ou mais pares de chave-valor de tag para organizar, monitorar ou controlar o acesso para essa política.

1. Selecione **Criar política**. O sistema retorna para a página **Policies (Políticas)**.

1. Repita esse procedimento em cada uma delas Conta da AWS que fornecerá dados de configuração para a conta de recuperação.

**Crie o perfil do IAM.**  
Use o procedimento a seguir para criar um perfil do IAM usando o console do IAM. Conclua o procedimento em cada um deles Conta da AWS que fornecerá dados de configuração para a conta de recuperação.

**Para criar um perfil do IAM**

1. Faça login Console de gerenciamento da AWS na conta de um fornecedor.

1. Abra o console do IAM em [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. No painel de navegação, selecione **Perfis** e, depois, **Criar política**.

1. Em **Tipo de entidade confiável**, escolha **Conta da AWS**.

1. Na seção **Conta da AWS**, escolha **Outra Conta da AWS**.

1. No campo **ID da conta**, insira o ID da conta de recuperação.

1. (Opcional) Como prática recomendada de segurança para esse perfil assumido, selecione **Exigir ID externo** e insira uma string.

1. Escolha **Próximo**.

1. Na página **Adicionar permissões**, use o campo **Pesquisar** para localizar a política criada no procedimento anterior. Marque a caixa de seleção ao lado do nome. 

1. Escolha **Próximo**.

1. Em **Nome do perfil**, insira um nome.

1. (Opcional) Em **Description (Descrição)**, insira uma descrição.

1. Em **Etapa 1: selecionar entidades confiáveis**, selecione **Editar**. Substitua a política de confiança JSON padrão pela política a seguir. Atualize cada um *example resource placeholder* com as informações da sua conta de recuperação.

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Principal": {
                   "AWS": "arn:aws:iam::111122223333:role/appconfig_role_in_retrieval_account"
               },
               "Action": "sts:AssumeRole"
           }
       ]
   }
   ```

------

1. (Opcional) em **Tags**, adicione um ou mais pares de valores tag-chave para organizar, monitorar ou controlar acesso para essa função.

1. Selecione **Create role** (Criar função). O sistema faz com que você retorne para a página **Roles**.

1. Procure o perfil que você acabou de criar. Escolha-o. Na seção **ARN**, copie o ARN. Você especificará essas informações no próximo procedimento.

**Adicionar substituições de credencial ao manifesto**  
Depois de criar perfil do IAM em sua conta fornecedora, atualize o manifesto na conta de recuperação. Especificamente, adicione o bloco de credenciais e o ARN do perfil do IAM para recuperar dados de configuração da conta fornecedora. Veja o formato JSON:

```
{
    "vendor_application_name:vendor_environment_name:vendor_configuration_name": {
        "credentials": {
            "roleArn": "arn:partition:iam::vendor_account_ID:role/name_of_role_created_in_vendor_account",
            "roleExternalId": "string",
            "roleSessionName": "string",
            "credentialsDuration": "time_in_hours" 
        }
    }
}
```

Exemplo:

```
{
    "My2ndApp:Beta:MyEnableMobilePaymentsFeatureFlagConfiguration": {
        "credentials": {
            "roleArn": "arn:aws:us-west-1:iam::123456789012:role/MyTestRole",
            "roleExternalId": "00b148e2-4ea4-46a1-ab0f-c422b54d0aac",
            "roleSessionName": "AwsAppConfigAgent",
            "credentialsDuration": "2h" 
        }
    }
}
```

**Confirmar se a recuperação de várias contas está funcionando**  
Você pode validar se esse agente é capaz de recuperar dados de configuração de várias contas revisando os registros do AWS AppConfig agente. O log de nível `INFO` dos dados iniciais recuperados para “`YourApplicationName`:`YourEnvironmentName`:`YourConfigurationName`” é o melhor indicador de recuperações bem-sucedidas. Se as recuperações estiverem falhando, você deverá ver um log de nível `ERROR` indicando o motivo da falha. Aqui está um exemplo de recuperação bem-sucedida de uma conta fornecedora:

```
[appconfig agent] 2023/11/13 11:33:27 INFO AppConfig Agent 2.0.x
[appconfig agent] 2023/11/13 11:33:28 INFO serving on localhost:2772
[appconfig agent] 2023/11/13 11:33:28 INFO retrieved initial data for 'MyTestApplication:MyTestEnvironment:MyDenyListConfiguration' in XX.Xms
```

# Configurando o AWS AppConfig Agente para gravar cópias de configuração em disco
<a name="appconfig-agent-how-to-use-additional-features-write-to-disk"></a>

Você pode configurar o AWS AppConfig Agente para armazenar automaticamente uma cópia de uma configuração em disco em texto simples. Esse recurso permite que os clientes com aplicações que leem dados de configuração do disco se integrem ao AWS AppConfig.

Esse recurso não foi projetado para ser usado como um recurso de backup de configuração. AWS AppConfig Agent não lê os arquivos de configuração copiados no disco. Se você quiser fazer backup das configurações em disco, consulte as variáveis de `PRELOAD_BACKUP` ambiente `BACKUP_DIRECTORY` e de [uso do agente com o Amazon EC2 ou AWS AppConfig Uso do AWS AppConfig agente com o Amazon](https://docs.aws.amazon.com/appconfig/latest/userguide/appconfig-integration-ec2.html#appconfig-integration-ec2-configuring) [ECS e o Amazon](https://docs.aws.amazon.com/appconfig/latest/userguide/appconfig-integration-containers-agent.html#appconfig-integration-containers-agent-configuring) EKS.

**Atenção**  
Observe as seguintes informações importantes sobre esse recurso:  
As configurações salvas em disco são armazenadas em *texto simples* e são legíveis. Não habilite esse recurso para configurações que incluam dados confidenciais. 
Esse recurso faz gravações no disco local. Use o princípio de privilégio mínimo para permissões do sistema de arquivos. Para obter mais informações, consulte [Implemente o acesso de privilégio mínimo](appconfig-security.md#appconfig-security-least-privilege-access).

**Como habilitar a gravação de cópia de configuração em disco**

1. Edite o manifesto.

1. Escolha a configuração que você AWS AppConfig deseja gravar no disco e adicione um `writeTo` elemento. Exemplo:

   ```
   {
       "application_name:environment_name:configuration_name": {
           "writeTo": {
               "path": "path_to_configuration_file"
           }
       }
   }
   ```

   Exemplo:

   ```
   {
       "MyTestApp:MyTestEnvironment:MyNewConfiguration": {
           "writeTo": {
               "path": "/tmp/aws-appconfig/mobile-app/beta/enable-mobile-payments"
           }
       }
   }
   ```

1. Salve as alterações. O arquivo configuration.json será atualizado sempre que novos dados de configuração forem implantados.

**Confirmar se a cópia de gravação da configuração em disco está funcionando**  
Você pode validar se cópias de uma configuração estão sendo gravadas em disco examinando os registros do AWS AppConfig agente. A entrada de `INFO` registro com a frase “INFO escreveu a configuração '*application*:*environment*:*configuration*' para*file\$1path*" indica que o AWS AppConfig Agente grava cópias da configuração no disco.

Exemplo:

```
[appconfig agent] 2023/11/13 11:33:27 INFO AppConfig Agent 2.0.x
[appconfig agent] 2023/11/13 11:33:28 INFO serving on localhost:2772
[appconfig agent] 2023/11/13 11:33:28 INFO retrieved initial data for 'MobileApp:Beta:EnableMobilePayments' in XX.Xms
[appconfig agent] 2023/11/13 17:05:49 INFO wrote configuration 'MobileApp:Beta:EnableMobilePayments' to /tmp/configs/your-app/your-env/your-config.json
```