Recursos adicionais de recuperação - AWS AppConfig

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

Recursos adicionais de recuperação

AWS AppConfig O agente oferece os seguintes recursos adicionais para ajudá-lo a recuperar configurações para seus aplicativos.

  • Recuperação de várias contas: 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.

  • Gravar cópia da configuração em disco: use o AWS AppConfig Agente para gravar dados de configuração em disco. Esse recurso permite que os clientes com aplicativos que leem dados de configuração do disco se integrem AWS AppConfig.

Sobre manifestos de agentes

Para habilitar esses recursos AWS AppConfig do Agente, você cria um manifesto. Um 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" } } }

Aqui está 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: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 de 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, você deve definir uma variável de MANIFEST ambiente com um dos seguintes valores:

Localização do manifesto Valor da variável de ambiente Caso de uso

Arquivo

arquivo: /path/to/agent-manifest.json

Use esse método se seu manifesto não mudar com frequência.

AWS AppConfig configuração

nome do aplicativo: nome do ambiente: nome da configuração

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 seu 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:

Recuperação de várias contas

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: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, em seguida, assume a função do IAM especificada para essa configuração. Você pode especificar um conjunto diferente de substituições de credenciais 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 API de GetLatestConfiguração 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.

Configure permissões para recuperar dados de configuração das contas do fornecedor

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, uma função do IAM e adicionar substituições de agente ao manifesto.

Antes de começar

Colete as informações a seguir antes de criar uma política de permissão e uma função no IAM.

  • Os IDs de cada um Conta da AWS. A conta de recuperação é a conta que chamará outras contas para obter dados de configuração. As contas do fornecedor são as contas que fornecerão os dados de configuração para a 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.

Crie 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 AWS Management Console na conta de um fornecedor.

  2. Abra o console do IAM em https://console.aws.amazon.com/iam/.

  3. No painel de navegação, escolha Políticas e, em seguida, Criar política.

  4. Escolha a opção JSON.

  5. No editor de políticas, substitua o JSON padrão pela seguinte declaração de política. Atualize cada exemplo de espaço reservado de recurso com detalhes da conta do fornecedor.

    { "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "appconfig:StartConfigurationSession", "appconfig:GetLatestConfiguration" ], "Resource": "arn:partition:appconfig:region:vendor_account_ID:application/vendor_application_ID/environment/vendor_environment_ID/configuration/vendor_configuration_ID" } ] }

    Veja um exemplo abaixo:

    { "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" } ] }
  6. Selecione Next (Próximo).

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

  8. (Opcional) Em Adicionar tags, adicione um ou mais pares de valores de chave de tag para organizar, rastrear ou controlar o acesso a essa política.

  9. Escolha Criar política. O sistema retorna para a página Policies (Políticas).

  10. 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 uma função 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 AWS Management Console na conta de um fornecedor.

  2. Abra o console IAM em https://console.aws.amazon.com/iam/.

  3. No painel de navegação, escolha Funções e, em seguida, escolha Criar política.

  4. Em Tipo de Entidade Confiável, escolha Conta da AWS.

  5. Na Conta da AWSseção, escolha Outro Conta da AWS.

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

  7. (Opcional) Como prática recomendada de segurança para essa função assumida, escolha Exigir ID externa e insira uma string.

  8. Selecione Next (Próximo).

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

  10. Selecione Next (Próximo).

  11. Em Nome do perfil, insira um nome.

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

  13. Para Etapa 1: Selecionar entidades confiáveis, escolha Editar. Substitua a política de confiança padrão do JSON pela política a seguir. Atualize cada exemplo de espaço reservado de recurso com informações da sua conta de recuperação.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::retrieval_account_ID:role/appconfig_role_in_retrieval_account" }, "Action": "sts:AssumeRole" } ] }
  14. (Opcional) em Tags, adicione um ou mais pares de valores tag-chave para organizar, monitorar ou controlar acesso para essa função.

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

  16. Pesquise a função que você acabou de criar. Escolha-o. Na seção ARN, copie o ARN. Você especificará essas informações no próximo procedimento.

Adicione substituições de credenciais ao manifesto

Depois de criar a função do IAM em sua conta de fornecedor, atualize o manifesto na conta de recuperação. Especificamente, adicione o bloco de credenciais e o ARN da função do IAM para recuperar dados de configuração da conta do fornecedor. Aqui está 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:us-west-1:iam::123456789012:role/MyTestRole", "roleExternalId": "00b148e2-4ea4-46a1-ab0f-c422b54d0aac", "roleSessionName": "AwsAppConfigAgent", "credentialsDuration": "2h" } } }
Valide 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 registro INFO de nível dos dados iniciais recuperados para 'YourApplicationName:YourEnvironmentName:YourConfigurationName' é o melhor indicador para recuperações bem-sucedidas. Se as recuperações estiverem falhando, você deverá ver um registro de ERROR nível indicando o motivo da falha. Aqui está um exemplo de uma recuperação bem-sucedida de uma conta de fornecedor:

[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

Gravar cópia da configuração em disco

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 aplicativos que leem dados de configuração do disco se integrem AWS AppConfig.

Esse recurso não foi projetado para ser usado como um recurso de backup de configuração. AWS AppConfig O agente não lê os arquivos de configuração copiados para o 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 ECS e o Amazon 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 podem ser lidas por humanos. Não habilite esse recurso para configurações que incluam dados confidenciais.

  • Esse recurso grava no disco local. Use o princípio do privilégio mínimo para permissões do sistema de arquivos. Para ter mais informações, consulte Implemente o acesso de privilégio mínimo.

Para habilitar a configuração de gravação, copie em disco
  1. Edite o manifesto.

  2. 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" } } }
  3. Salve as alterações. O arquivo configuration.json será atualizado sempre que novos dados de configuração forem implantados.

Valide se a cópia da configuração de gravação no 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 'aplicativo: ambiente: configuração' em file_path" 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