Autorización de proxy de Envoy - AWS App Mesh

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Autorización de proxy de Envoy

La autorización de proxy autoriza al proxy de Envoy que se ejecuta en una tarea de Amazon ECS, en un pod de Kubernetes que se ejecuta en Amazon EKS o que se ejecuta en una instancia de Amazon EC2 a leer la configuración de uno o varios puntos de conexión de malla desde Envoy Management Service de App Mesh. Para las cuentas de clientes que ya tengan Envoys conectados a su punto de conexión de App Mesh antes del 26/04/2021, se requiere autorización de proxy para los nodos virtuales que utilizan seguridad de la capa de transporte (TLS) y para las puertas de enlace virtuales (con o sin TLS). Para las cuentas de clientes que quieran conectar Envoys a su punto de conexión de App Mesh después del 26/04/2021, se requiere la autorización de proxy para todas las funciones de App Mesh. Se recomienda que todas las cuentas de los clientes habiliten la autorización de proxy para todos los nodos virtuales, incluso si no utilizan TLS, para tener una experiencia segura y coherente al utilizar IAM para la autorización de recursos específicos. La autorización de proxy requiere que se especifique el permiso appmesh:StreamAggregatedResources en una política de IAM. La política debe estar asociada a un rol de IAM y dicho rol de IAM debe estar asociado al recurso informático en el que se aloja el proxy.

Cree una política de IAM

Si desea que todos los puntos de conexión de malla de una malla de servicios puedan leer la configuración de todos los puntos de conexión de malla, vaya a la sección Creación del rol de IAM. Si desea limitar los puntos de conexión de malla desde los que se puede leer la configuración por puntos de conexión de malla individuales, debe crear una o más políticas de IAM. Se recomienda limitar los puntos de conexión de malla desde los que se puede leer la configuración a solo el proxy de Envoy que se ejecuta en recursos informáticos específicos. Cree una política de IAM y añada el permiso appmesh:StreamAggregatedResources a la política. El siguiente ejemplo de política permite configurar los nodos virtuales denominados serviceBv1 y serviceBv2 para que se lean en una malla de servicios. No se puede leer la configuración de ningún otro nodo virtual definido en la malla de servicios. Para obtener más información acerca de la creación o edición de políticas de IAM, consulte Creación de políticas de IAM y Editar políticas de 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" ] } ] }

Puede crear varias políticas y que cada una restrinja el acceso a diferentes puntos de conexión de malla.

Creación del rol de IAM

Si desea que todos los puntos de conexión de malla de una malla de servicios puedan leer la configuración de todos los puntos de conexión de malla, solo tiene que crear un rol de IAM. Si desea limitar los puntos de conexión de malla cuya configuración puedan leer los puntos de conexión de malla individuales, debe crear un rol para cada política que creó en el paso anterior. Siga las instrucciones del recurso informático en el que se ejecuta el proxy.

  • Amazon EKS: si quiere usar un único rol, puede usar el rol existente que se creó y asignó a los nodos de trabajo cuando creó el clúster. Para utilizar varios roles, el clúster debe cumplir los requisitos definidos en la sección Habilitar roles de IAM para las cuentas de servicio de su clúster. Cree los roles de IAM y asócielos a las cuentas de servicio de Kubernetes. Para obtener más información, consulte Creación de una política y un rol de IAM para su cuenta de servicio y Especificación de un rol de IAM para su cuenta de servicio.

  • Amazon ECS: seleccione Servicio de AWS, elija Elastic Container Service y, a continuación, elija el caso de uso Tarea de Elastic Container Service al crear su rol de IAM.

  • Amazon EC2: seleccione Servicio de AWS, elija EC2 y, a continuación, elija el caso de uso EC2 al crear su rol de IAM. Esto se aplica tanto si aloja el proxy directamente en una instancia de Amazon EC2 como si se ejecuta en una instancia de Kubernetes.

Para obtener más información acerca de cómo crear un rol de IAM, consulte Creación de un rol para un servicio de AWS.

Asociar una política de IAM

Si desea que todos los puntos de conexión de malla de una malla de servicios puedan leer la configuración de todos los puntos de conexión de malla, asocie la política de IAM administrada AWSAppMeshEnvoyAccess al rol de IAM que creó en el paso anterior. Si desea limitar los puntos de conexión de malla cuya configuración puedan leer los puntos de conexión de malla individuales, asocie cada política que haya creado a cada rol que haya creado. Para obtener más información sobre cómo asociar una política de IAM personalizada o administrada a un rol de IAM, consulte Adición de permisos de identidad de IAM.

Asociar un rol de IAM

Asocie cada rol de IAM al recurso informático correspondiente:

  • Amazon EKS: si ha asociado la política al rol asociado a sus nodos de trabajo, puede omitir este paso. Si ha creado roles independientes, asigne cada rol a una cuenta de servicio de Kubernetes independiente y asigne cada cuenta de servicio a una especificación de implementación de un pod de Kubernetes individual que incluya el proxy de Envoy. Para obtener más información, consulte Especificación de un rol de IAM para su cuenta de servicio en la Guía del usuario de Amazon EKS y Configurar cuentas de servicio para pods en la documentación de Kubernetes.

  • Amazon ECS: asocie un rol de tarea de Amazon ECS a la definición de la tarea que incluya el proxy de Envoy. La tarea se puede implementar con el tipo de lanzamiento de EC2 o Fargate. Para obtener más información sobre cómo crear un rol de tarea de Amazon ECS y asociarlo a una tarea, consulte Especificar un rol de IAM para sus tareas.

  • Amazon EC2: el rol de IAM se debe asociar a la instancia de Amazon EC2 que aloja el proxy de Envoy. Para obtener más información sobre cómo asociar un rol a una instancia de Amazon EC2, consulte He creado un rol de IAM y ahora quiero asignarlo a una instancia de EC2.

Confirmar el permiso

Confirme que el permiso appmesh:StreamAggregatedResources está asignado al recurso informático en el que aloja el proxy seleccionando uno de los nombres del servicio de computación.

Amazon EKS

Se puede asignar una política personalizada al rol asignado a los nodos de trabajo, a los pods individuales o a ambos. Sin embargo, se recomienda que asigne la política solo a los pods individuales, de modo que pueda restringir el acceso de los pods individuales a los puntos de conexión de malla individuales. Si la política está asociada al rol asignado a los nodos de trabajo, seleccione la pestaña Amazon EC2 y realice los pasos indicados para sus instancias de nodo de trabajo. Para determinar qué rol de IAM se asigna a un pod de Kubernetes, realice los pasos siguientes.

  1. Consulte los detalles de una implementación de Kubernetes que incluya el pod al que quiere confirmar que está asignada una cuenta de servicio de Kubernetes. El siguiente comando muestra los detalles de una implementación denominada my-deployment.

    kubectl describe deployment my-deployment

    En el resultado devuelto, anote el valor a la derecha de Service Account:. Si no existe una línea que comience por Service Account:, significa que actualmente no hay una cuenta de servicio personalizada de Kubernetes asignada a la implementación. Deberá asignar una. Para obtener más información, consulte Configurar cuentas de servicio de pods en la documentación de Kubernetes.

  2. Consulte los detalles de la cuenta de servicio que obtuvo en el paso anterior. El siguiente comando muestra los detalles de una cuenta de servicio denominada my-service-account.

    kubectl describe serviceaccount my-service-account

    Siempre que la cuenta de servicio de Kubernetes esté asociada a un rol de AWS Identity and Access Management, una de las líneas devueltas tendrá un aspecto similar al del siguiente ejemplo.

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

    En el ejemplo anterior, my-deployment es el nombre del rol de IAM al que está asociada la cuenta de servicio. Si el resultado de la cuenta de servicio no contiene una línea similar a la del ejemplo anterior, significa que la cuenta de servicio de Kubernetes no está asociada a ninguna cuenta de AWS Identity and Access Management y deberá asociarla a una. Para obtener más información, consulte Especificación de un rol de IAM para su cuenta de servicio.

  3. Inicie sesión en la AWS Management Console y abra la consola de IAM en https://console.aws.amazon.com/iam/.

  4. En el panel de navegación izquierdo, seleccione Roles. Seleccione el nombre del rol de IAM que anotó en un paso anterior.

  5. Confirme que aparece en la lista la política personalizada que creó anteriormente o la política administrada AWSAppMeshEnvoyAccess. Si ninguna de las políticas está asociada, deberá asociar una política de IAM al rol de IAM. Si desea asociar una política de IAM personalizada pero no tiene ninguna, debe crear una política de IAM personalizada con los permisos necesarios. Si hay asociada una política de IAM personalizada, selecciónela y confirme que contiene "Action": "appmesh:StreamAggregatedResources". Si no es así, tendrá que añadir ese permiso a su política de IAM personalizada. También puede confirmar que aparece en la lista el Nombre de recurso de Amazon (ARN) adecuado de un punto de conexión de malla específico. Si no aparece ningún ARN, puede editar la política para añadir, eliminar o cambiar los ARN de la lista. Para obtener más información, consulte Editar políticas de IAM y Cree una política de IAM .

  6. Repita los pasos anteriores para cada pod de Kubernetes que contenga el proxy de Envoy.

Amazon ECS
  1. En la consola de Amazon ECS, elija Definiciones de tareas.

  2. Seleccione su tarea de Amazon ECS.

  3. En la página Nombre de la definición de tarea, seleccione la definición de la tarea.

  4. En la página Definición de tarea, seleccione el enlace del nombre del rol de IAM que está a la derecha de Rol de tarea. Si un rol de IAM no aparece en la lista, debe crear un rol de IAM y asociarlo a su tarea actualizando la definición de la tarea.

  5. En la página Resumen, en la pestaña Permisos, confirme que aparece la política personalizada que creó anteriormente o la política administrada AWSAppMeshEnvoyAccess. Si ninguna de las dos políticas está asociada, deberá asociar una política de IAM al rol de IAM. Si desea asociar una política de IAM personalizada pero no tiene ninguna, deberá crear la política de IAM personalizada. Si hay asociada una política de IAM personalizada, selecciónela y confirme que contiene "Action": "appmesh:StreamAggregatedResources". Si no es así, tendrá que añadir ese permiso a su política de IAM personalizada. También puede confirmar que aparece en la lista el Nombre de recurso de Amazon (ARN) adecuado de los puntos de conexión de una malla específica. Si en la lista no aparece ningún ARN, puede editar la política para añadir, eliminar o cambiar los ARN de la lista. Para obtener más información, consulte Editar políticas de IAM y Cree una política de IAM .

  6. Repita los pasos anteriores para cada definición de tarea que contenga el proxy de Envoy.

Amazon EC2
  1. En la consola de Amazon EC2, seleccione Instancias en el panel de navegación de la izquierda.

  2. Seleccione una de las instancias que aloje el proxy de Envoy.

  3. En la pestaña Descripción, seleccione el enlace del nombre del rol de IAM que está a la derecha del rol de IAM. Si un rol de IAM no aparece en la lista, deberá crear un rol de IAM.

  4. En la página Resumen, en la pestaña Permisos, confirme que aparece la política personalizada que creó anteriormente o la política administrada AWSAppMeshEnvoyAccess. Si ninguna de las dos políticas está asociada, deberá asociar la política de IAM al rol de IAM. Si desea asociar una política de IAM personalizada pero no tiene ninguna, deberá crear la política de IAM personalizada. Si hay asociada una política de IAM personalizada, selecciónela y confirme que contiene "Action": "appmesh:StreamAggregatedResources". Si no es así, tendrá que añadir ese permiso a su política de IAM personalizada. También puede confirmar que aparece en la lista el Nombre de recurso de Amazon (ARN) adecuado de los puntos de conexión de una malla específica. Si en la lista no aparece ningún ARN, puede editar la política para añadir, eliminar o cambiar los ARN de la lista. Para obtener más información, consulte Editar políticas de IAM y Cree una política de IAM .

  5. Repita los pasos anteriores para cada instancia en la que aloje el proxy de Envoy.