Autorização do Envoy Proxy - AWS App Mesh

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

Autorização do Envoy Proxy

A autorização de proxy autoriza o proxy Envoy executado em uma tarefa do Amazon ECS, em um pod Kubernetes executado no Amazon EKS ou em execução em uma instância do Amazon EC2 a ler a configuração de um ou mais endpoints de malha do App Mesh Envoy Management Service. Para contas de clientes que já têm Envoys conectados ao endpoint do App Mesh antes de 26/04/2021, a autorização de proxy é necessária para nós virtuais que usam Transport Layer Security (TLS) e para gateways virtuais (com ou sem TLS). Para contas de clientes que desejam conectar os Envoys ao endpoint do App Mesh após 26/04/2021, a autorização de proxy é necessária para todos os recursos do App Mesh. É recomendável que todas as contas de clientes habilitem a autorização de proxy para todos os nós virtuais, mesmo que não usem TLS, para ter uma experiência segura e consistente usando o IAM para autorização de recursos específicos. A autorização do proxy exige que a permissão appmesh:StreamAggregatedResources seja especificada em uma política do IAM. A política deve ser anexada a um perfil do IAM, e esse perfil do IAM deve ser anexado ao recurso computacional no qual você host o proxy.

Criar uma política do IAM

Se quiser que todos os endpoints de malha em uma malha de serviços possam ler a configuração de todos os endpoints de malha, pule para Crie a função do IAM. Se quiser limitar os endpoints de malha a partir dos quais a configuração pode ser lida por endpoints de malha individuais, é necessário criar uma ou mais políticas do IAM. É recomendável limitar os endpoints de malha dos quais a configuração pode ser lida apenas ao proxy Envoy em execução nos recursos computacionais específicos. Crie uma política do IAM e adicione a permissão appmesh:StreamAggregatedResources à política. O exemplo de política a seguir permite a configuração dos nós virtuais nomeados serviceBv1 e serviceBv2 a serem lidos em uma malha de serviços. A configuração não pode ser lida para nenhum outro nó virtual definido na malha de serviços. Para obter mais informações sobre como criar e editar uma política do IAM, consulte Criar política do IAM e Editar política do IAM.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "appmesh:StreamAggregatedResources", "Resource": [ "arn:aws:appmesh:us-east-1:123456789012:mesh/app1/virtualNode/serviceBv1", "arn:aws:appmesh:us-east-1:123456789012:mesh/app1/virtualNode/serviceBv2" ] } ] }

É possível criar várias políticas, sendo que cada política restringe o acesso a diferentes endpoints da malha.

Crie a função do IAM

Se quiser que todos os endpoints de malha em uma malha de serviços possam ler a configuração de todos os endpoints de malha, você só precisa criar um perfil do IAM. Se quiser limitar os endpoints de malha a partir dos quais a configuração pode ser lida por endpoints de malha individuais, é necessário criar um perfil para cada política criada na etapa anterior. Conclua as instruções para o recurso computacional no qual o proxy é executado.

  • Amazon EKS: se quiser usar um único perfil, poderá usar o perfil existente que foi criado e atribuído aos nós de processamento ao criar seu cluster. Para usar vários perfis, seu cluster deve atender aos requisitos definidos em Habilitar funções do IAM para contas de serviço em seu cluster. Crie os perfis do IAM e os associe às contas de serviço do Kubernetes. Para obter mais informações, consulte Criação de um perfil do IAM e política para sua conta de serviço e Especificação de um perfil do IAM para sua conta de serviço.

  • Amazon ECS: selecione serviço da AWS, selecione o Elastic Container Service e, em seguida, selecione o caso de uso da tarefa do Elastic Container Service ao criar seu perfil do IAM.

  • Amazon EC2: selecione serviço da AWS, selecione EC2 e, em seguida , selecione o caso de uso do EC2 ao criar seu perfil do IAM. Isso se aplica se host o proxy diretamente em uma instância do Amazon EC2 ou no Kubernetes em execução em uma instância.

Para obter mais informações sobre como criar um perfil do IAM, consulte Criando um perfil para um serviço AWS.

Anexar política do IAM

Se quiser que todos os endpoints de malha em uma malha de serviços possam ler a configuração de todos os endpoints de malha, anexe a política do IAM AWSAppMeshEnvoyAccess gerenciada ao perfil do IAM que você criou na etapa anterior. Se quiser limitar os endpoints de malha a partir dos quais a configuração pode ser lida por endpoints de malha individuais, anexe cada política que você criou a cada perfil criado. Para obter mais informações sobre como anexar uma política do IAM personalizada ou gerenciada a um perfil do IAM, consulte Adicionar permissões de identidade do IAM.

Anexar um perfil do IAM

Anexe cada perfil do IAM ao recurso computacional apropriado:

  • Amazon EKS: se você anexou a política do perfil associado aos seus nós de processamento, pode pular esta etapa. Se criou perfis separados, atribua cada perfil a uma conta de serviço separada do Kubernetes e atribua cada conta de serviço a uma especificação individual de implantação do pod do Kubernetes que inclua o proxy Envoy. Para obter mais informações, consulte Especificação de um perfil do IAM para sua conta de serviço no Guia do usuário do Amazon EKS e Configurar contas de serviço para pods na documentação do Kubernetes.

  • Amazon ECS: anexe uma função de tarefa do Amazon ECS à definição da tarefa que inclui o proxy Envoy. A tarefa pode ser implantada com o tipo de inicialização EC2 ou Fargate. Para obter mais informações sobre como criar uma função de tarefa do Amazon ECS e anexá-la a uma tarefa, consulte Especificando um perfil do IAM para suas tarefas.

  • Amazon EC2: o perfil do IAM deve ser anexado a instância do Amazon EC2 que hospeda o proxy Envoy. Para obter mais informações sobre como anexar uma função a uma instância do Amazon EC2, consulte Criei um perfil do IAM e agora quero atribuí-lo a uma instância do EC2.

Confirmar permissão

Confirme se a permissão appmesh:StreamAggregatedResources foi atribuída ao recurso computacional no qual você host o proxy selecionando um dos nomes do serviço de computação.

Amazon EKS

Uma política personalizada pode ser atribuída à função atribuída aos nós de processamento, aos pods individuais ou a ambos. No entanto, é recomendável atribuir à política somente em pods individuais, para que você possa restringir o acesso de pods individuais a endpoints de malha individuais. Se a política estiver anexada a função atribuída aos nós de processamento, selecione a guia Amazon EC2 e conclua as etapas encontradas lá para suas instâncias de nós de processamento. Para determinar qual perfil do IAM é atribuído a um pod do Kubernetes, conclua as etapas a seguir.

  1. Veja os detalhes de uma implantação do Kubernetes que inclui o pod ao qual você deseja confirmar se uma conta de serviço do Kubernetes estiver atribuída. O comando a seguir exibe os detalhes de uma implantação chamada my-deployment.

    kubectl describe deployment my-deployment

    Na saída retornada, observe o valor à direita de Service Account:. Se uma linha que começa com Service Account: não existir, então uma conta de serviço personalizada do Kubernetes não está atualmente atribuída à implantação. Você precisará atribuir uma. Para obter mais informações, consulte Configurar contas de serviço para pods na documentação do Kubernetes.

  2. Veja os detalhes da conta de serviço retornada na etapa anterior. O comando a seguir exibe os detalhes de uma conta de serviço chamada my-service-account.

    kubectl describe serviceaccount my-service-account

    Desde que a conta de serviço do Kubernetes esteja associada a uma função do AWS Identity and Access Management, uma das linhas retornadas será semelhante ao exemplo a seguir.

    Annotations:         eks.amazonaws.com/role-arn=arn:aws:iam::123456789012:role/my-deployment

    No exemplo anterior, my-deployment é o nome do perfil do IAM ao qual a conta de serviço está associada. Se a saída da conta de serviço não contiver uma linha semelhante ao exemplo acima, a conta de serviço do Kubernetes não está associada a uma conta AWS Identity and Access Management e você precisa associá-la a uma. Para obter mais informações, consulte Especificar uma função do IAM para a conta de serviço.

  3. Faça login no AWS Management Console e abra o console do IAM em https://console.aws.amazon.com/iam/.

  4. No painel de navegação à esquerda, selecione Roles. Selecione o nome do perfil do IAM que você anotou em uma etapa anterior.

  5. Confirme se a política personalizada que criou anteriormente ou a política AWSAppMeshEnvoyAccess gerenciada está listada. Se nenhuma política estiver anexada, anexe uma política do IAM ao perfil do IAM. Se quiser anexar uma política do IAM personalizada, mas não tiver uma, precisará criar uma política do IAM personalizada com as permissões necessárias. Se uma política do IAM personalizada estiver anexada, selecione a política e confirme se ela contém "Action": "appmesh:StreamAggregatedResources". Caso contrário, será preciso adicionar essa permissão à sua política do IAM personalizada. Também é possível confirmar se o nome do recurso da Amazon (ARN) adequado para um endpoint de malha específico está listado. Se nenhum ARNs estiver listado, é possível editar a política para adicionar, remover ou alterar os ARNs listados. Para obter mais informações, consulte Editar políticas do IAM e Criar uma política do IAM .

  6. Repita as etapas anteriores para cada pod do Kubernetes que contém o proxy Envoy.

Amazon ECS
  1. No console do Amazon ECS, escolha Definições de tarefas.

  2. Selecione sua tarefa do Amazon ECS.

  3. Na página Nome da definição da tarefa, selecione sua definição de tarefa.

  4. Na página Definição da tarefa, selecione o link do nome do perfil do IAM que está à direita da Função da tarefa. Se um perfil do IAM não estiver listado, é preciso criar um perfil do IAM e anexá-lo à sua tarefa atualizando a definição da tarefa.

  5. Na página Resumo, na guia Permissões, confirme se a política personalizada criada anteriormente ou a política gerenciada AWSAppMeshEnvoyAccess está listada. Se nenhuma política estiver anexada, anexe uma política do IAM ao perfil do IAM. Se quiser anexar uma política personalizada do IAM, mas não tiver uma, precisará criar a política do IAM personalizada. Se uma política do IAM personalizada estiver anexada, selecione a política e confirme se ela contém "Action": "appmesh:StreamAggregatedResources". Caso contrário, será preciso adicionar essa permissão à sua política do IAM personalizada. Você também pode confirmar se o nome do recurso da Amazon (ARN) adequado para um endpoint de malha específico está listado. Se nenhum ARNs estiver listado, é possível editar a política para adicionar, remover ou alterar os ARNs listados. Para obter mais informações, consulte Editar políticas do IAM e Criar uma política do IAM .

  6. Repita as etapas anteriores para cada definição de tarefa que contém o proxy Envoy.

Amazon EC2
  1. No console do Amazon EC2, selecione Instâncias no painel de navegação à esquerda.

  2. Selecione uma de suas instâncias que hospeda o proxy Envoy.

  3. Na guia Descrição, selecione o link do nome do perfil do IAM que está à direita do perfil do IAM. Se um perfil do IAM não estiver listado, é preciso criar um perfil do IAM.

  4. Na página Resumo, na guia Permissões, confirme se a política personalizada criada anteriormente ou a política gerenciada AWSAppMeshEnvoyAccess está listada. Se nenhuma política estiver anexada, anexe a política do IAM ao perfil do IAM. Se quiser anexar uma política personalizada do IAM, mas não tiver uma, precisará criar a política do IAM personalizada. Se uma política do IAM personalizada estiver anexada, selecione a política e confirme se ela contém "Action": "appmesh:StreamAggregatedResources". Caso contrário, será preciso adicionar essa permissão à sua política do IAM personalizada. Você também pode confirmar se o nome do recurso da Amazon (ARN) adequado para um endpoint de malha específico está listado. Se nenhum ARNs estiver listado, é possível editar a política para adicionar, remover ou alterar os ARNs listados. Para obter mais informações, consulte Editar políticas do IAM e Criar uma política do IAM .

  5. Repita as etapas anteriores para cada instância em que você host o proxy Envoy.