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
importante
Aviso de fin de soporte: el 30 de septiembre de 2026, AWS suspenderemos el soporte para AWS App Mesh. Después del 30 de septiembre de 2026, ya no podrás acceder a la AWS App Mesh consola ni a AWS App Mesh los recursos. Para obtener más información, visita esta entrada de blog Migración desde AWS App Mesh a Amazon ECS Service Connect
La autorización de proxy autoriza al proxy de Envoy que se ejecuta en una ECS tarea de Amazon, en un pod de Kubernetes que se ejecuta en Amazon EKS o que se ejecuta en una EC2 instancia de Amazon a leer la configuración de uno o más puntos de enlace de malla desde el servicio de administración de App Mesh Envoy. Para las cuentas de clientes que ya tenían Envoys conectado a su terminal App Mesh antes del 26 de abril de 2021, se requiere autorización de proxy para los nodos virtuales que utilizan Transport Layer Security (TLS) y para las pasarelas 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 mediante IAM proxy para todos los nodos virtuales, incluso si no los utilizanTLS, a fin de disponer de una experiencia segura y coherente al utilizar la autorización de recursos específicos. La autorización de proxy requiere que el appmesh:StreamAggregatedResources
permiso esté especificado en una IAM política. La política debe estar asociada a una IAM función y esa IAM función debe estar asociada al recurso informático en el que se aloja el proxy.
Cree una IAM política
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 Crear un IAM rol. Si desea limitar los puntos finales de malla desde los que se puede leer la configuración por puntos finales de malla individuales, debe crear una o más IAM políticas. 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 IAM política y añada el appmesh:StreamAggregatedResources
permiso 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 sobre cómo crear o editar una IAM política, consulte Creación de IAM políticas y Edición de IAM políticas.
{
"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.
Crear un IAM rol
Si desea que todos los puntos finales de malla de una malla de servicio puedan leer la configuración de todos los puntos finales de malla, solo tiene que crear un IAM rol. 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 quieres usar un solo rol, puedes usar el rol existente que se creó y asignó a los nodos de trabajo cuando creaste tu clúster. Para utilizar varios roles, el clúster debe cumplir los requisitos definidos en la sección Habilitar los IAM roles para las cuentas de servicio en el clúster. Crea los IAM roles y asócialos a las cuentas de servicio de Kubernetes. Para obtener más información, consulte Crear un IAM rol y una política para su cuenta de servicio y Especificar un IAM rol para su cuenta de servicio.
-
Amazon ECS: selecciona el AWS servicio, selecciona Elastic Container Service y, a continuación, selecciona el caso de uso de Elastic Container Service Task al crear tu IAM rol.
-
Amazon EC2: selecciona el AWS servicio, selecciona y EC2, a continuación, selecciona el caso de EC2uso al crear el IAM rol. Esto se aplica tanto si alojas el proxy directamente en una EC2 instancia de Amazon como en Kubernetes que se ejecuta en una instancia.
Para obtener más información sobre cómo crear un IAM rol, consulta Cómo crear un rol para un servicio. AWS
Adjuntar IAM política
Si desea que todos los puntos de enlace de malla de una malla de servicio puedan leer la configuración de todos los puntos de enlace de malla, asocie la IAM política AWSAppMeshEnvoyAccess
administrada al IAM rol 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 adjuntar una IAM política personalizada o administrada a un IAM rol, consulte Agregar IAM permisos de identidad.
Adjuntar rol IAM
Adjunte cada IAM función al recurso informático correspondiente:
-
Amazon EKS: si has adjuntado la política a la función asociada a tus nodos de trabajo, puedes saltarte 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, consulta Especificar un IAM rol para tu cuenta de servicio en la Guía del EKS usuario de Amazon y Configurar cuentas de servicio para pods
en la documentación de Kubernetes. -
Amazon ECS: adjunta un rol de ECS tarea de Amazon a la definición de tarea que incluye el proxy de Envoy. La tarea se puede implementar con el tipo de lanzamiento Fargate EC2 o Fargate. Para obtener más información sobre cómo crear un rol de Amazon ECS Task y adjuntarlo a una tarea, consulte Especificar un IAM rol para sus tareas.
-
Amazon EC2: la IAM función debe estar asociada a la EC2 instancia de Amazon que aloja el proxy de Envoy. Para obtener más información sobre cómo asociar un rol a una EC2 instancia de Amazon, consulta He creado un IAM rol y ahora quiero asignarlo a una EC2 instancia
.
Confirmación del 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.
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 a la función asignada a los nodos de trabajo, seleccione la EC2 pestaña Amazon y complete los pasos que se encuentran allí para las instancias de los nodos de trabajo. Para determinar qué IAM función se asigna a un pod de Kubernetes, complete los siguientes pasos.
-
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 porService 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 podsen la documentación de Kubernetes. -
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 AWS Identity and Access Management rol, 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
se muestra el nombre del IAM rol 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, entonces la cuenta de servicio de Kubernetes no está asociada a ninguna AWS Identity and Access Management cuenta y debes asociarla a una. Para obtener más información, consulta Especificar un IAM rol para tu cuenta de servicio. Inicie sesión en AWS Management Console y abra la IAM consola en https://console.aws.amazon.com/iam/
. -
En el panel de navegación izquierdo, seleccione Roles. Seleccione el nombre del IAM rol que anotó en el paso anterior.
-
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, IAMasocie una política al IAM rol. Si desea adjuntar una IAM política personalizada pero no tiene ninguna, debe crear una IAM política personalizada con los permisos necesarios. Si hay una IAM política personalizada adjunta, selecciónela y confirme que la contiene"Action": "appmesh:StreamAggregatedResources"
. Si no es así, tendrá que añadir ese permiso a su IAM política personalizada. También puedes confirmar que aparece el nombre de recurso de Amazon (ARN) correspondiente a un punto final de malla específico. ARNsSi no aparece ninguno, puedes editar la política para añadir, eliminar o cambiar lo que aparece en la listaARNs. Para obtener más información, consulte Editar IAM políticas yCree una IAM política. -
Repita los pasos anteriores para cada pod de Kubernetes que contenga el proxy de Envoy.