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.
autenticación de entradas de acceso a Amazon EKS
Amazon EKS admite dos mecanismos para conceder a un principal de IAM el permiso de llamar al clúster Kubernetes API: el legado aws-auth ConfigMap y el más nuevo API de entrada de acceso. Un acceso, becas de entrada. Kubernetes Acceso mediante API a un director de IAM sin necesidad de editar un ConfigMap. AWS Batch puede autenticarse en su clúster a través de cualquiera de los dos mecanismos.
Cuando configuras eksConfiguration.accessEntry.desiredState a ENABLED en un entorno informático, AWS Batch puede administrar la entrada de acceso para ese entorno de procesamiento en el clúster. Ya no es necesario editar manualmente el aws-auth ConfigMap.
Ya sea AWS Batch disposiciones: una entrada de acceso depende de su AWS Batch el entorno informático y la configuración del clúster de Amazon EKS. Para obtener más información, consulte Interacción con el clúster Modo de autenticación.
Valores para accesoEntry.desiredState
El desiredState campo en EksAccessEntry declara el estado de entrada de acceso deseado para el entorno informático. Los valores válidos son los siguientes:
ENABLED-
AWS Batch crea un AWS Batch-entrada de acceso administrado en el clúster para el entorno informático. AWS Batch solo creará un AWS Batch-entrada de acceso administrado si todos los entornos informáticos del clúster están configurados
desiredStateaENABLED(ver Cómo AWS Batch reconcilia Estado deseado en todos los entornos informáticos para obtener más información). DISABLED-
AWS Batch elimina el AWS Batch-entrada de acceso administrado para el clúster. AWS Batch solo borrará un AWS Batch-entrada de acceso administrado si todos los entornos informáticos del clúster están configurados
desiredStateaDISABLED(ver Cómo AWS Batch reconcilia Estado deseado en todos los entornos informáticos para obtener más información). El acceso al clúster se debe configurar a través delaws-authConfigMap. INHERIT_FROM_CLUSTER-
AWS Batch se refiere a la entrada de acceso actual del clúster
status. En un clúster de Amazon EKS cuyo modo de autenticación esAPI, AWS Batch crea y administra una entrada de acceso porque el clúster no tieneaws-authConfigMap al que recurrir. En un clúster cuyo modo de autenticación esCONFIG_MAPoAPI_AND_CONFIG_MAP, AWS Batch no añade ni elimina una entrada de acceso.
El entorno informático también expone un sistema de solo lectura accessEntry.status campo en DescribeComputeEnvironments respuestas. ACTIVE significa que un AWS Batch-la entrada de acceso administrado para el entorno informático existe en el clúster y tiene prioridad sobre la aws-auth ConfigMap. INACTIVE significa que no AWS Batch-la entrada de acceso administrado está presente. Esto puede deberse a desiredState es DISABLED, porque los entornos informáticos que se dirigen al clúster aún no están de acuerdo desiredState, o porque la entrada aún no se ha aprovisionado. Si accessEntry.status es INACTIVE, Usos por lotes aws-auth ConfigMap para acceder al clúster.
nota
Una entrada de acceso informa ACTIVE tan pronto como exista en el clúster, incluso si AWS Batch no ha terminado de asociar la política de acceso que la hace utilizable. Si el estado del entorno informático cambia a INVALID mientras accessEntry.status es ACTIVE, ver La configuración de la entrada de acceso a Amazon EKS está incompleta.
nota
Si omites el accessEntry campo, AWS Batch no graba un desiredState para el entorno informático, y DescribeComputeEnvironments no devuelve ninguno. Con el fin de aprovisionar la entrada de acceso, AWS Batch se comporta como lo hace para INHERIT_FROM_CLUSTER.
Interacción con el clúster Modo de autenticación
¿Cómo AWS Batch se comporta de una manera determinada desiredState depende del modo de autenticación del clúster. La siguiente tabla se aplica a ambos CreateComputeEnvironment y UpdateComputeEnvironment.
Clúster |
Entorno de computación |
Entorno de computación |
Entorno de computación |
|---|---|---|---|
|
Las entradas de acceso no están disponibles en el clúster, por lo que AWS Batch no crea ni elimina ninguna. AWS Batch sigue registrando el valor que especifiques. Tras cambiar el modo de autenticación del clúster, ese valor registrado surtirá efecto la próxima vez |
||
|
AWS Batch compara los valores registrados en los entornos informáticos que comparten el clúster; consulte Cómo AWS Batch reconcilia Estado deseado en todos los entornos informáticos. |
Se conserva el modo de acceso existente. AWS Batch no agrega ni elimina una entrada de acceso. |
|
|
La entrada de acceso se crea y se mantiene en el clúster. |
La solicitud se rechaza. Un clúster en este modo no admite |
La entrada de acceso se crea y se mantiene en el clúster. Cuando el clúster es |
Cómo AWS Batch reconcilia Estado deseado en todos los entornos informáticos
Porque un solo clúster de Amazon EKS puede respaldar varios AWS Batch en entornos informáticos, la configuración de acceso de un clúster es un recurso compartido. AWS Batch por lo tanto, reconcilia, o compara y resuelve, el desiredState valores registrados en esos entornos informáticos.
Cuando el clúster está authenticationMode es API_AND_CONFIG_MAP, AWS Batch compara el desiredState registrado para cada entorno informático en el mismo AWS cuenta y AWS Región a la que se dirige el clúster. AWS Batch usa esta comparación para determinar si se debe agregar o eliminar la entrada de acceso en cada CreateComputeEnvironment o UpdateComputeEnvironment operación que especifica desiredState.
- Todos los entornos de cómputos tienen
desiredState=ENABLED -
AWS Batch crea la entrada de acceso en el clúster.
- Todos los entornos de cómputos tienen
desiredState=DISABLED -
AWS Batch elimina la entrada de acceso del clúster, si existe.
- La grabada
desiredStateno todos los valores coinciden -
AWS Batch conserva el modo de acceso existente. La entrada de acceso no se agrega ni se quita. Esto incluye cualquier combinación de
ENABLED,DISABLED, yINHERIT_FROM_CLUSTER, y también incluye cualquier entorno informático que no tengadesiredStategrabado.
nota
Para hacer la transición de un clúster cuyo modo de autenticación es API_AND_CONFIG_MAP de aws-auth ConfigMap para acceder a la autenticación de entrada, configure desiredState=ENABLED en cada AWS Batch entorno informático que se dirige al clúster. Para hacer la transición hacia atrás, configure desiredState=DISABLED en cada uno de ellos.
Qué AWS Batch crea en tu clúster
AWS Batch crea una entrada de acceso por clúster que cumpla las condiciones anteriores y, a continuación, asocia el AWSBatchClusterPolicy La política de acceso de Amazon EKS a esa entrada de acceso. La entrada de acceso es por clúster y no por entorno informático, por lo que todos AWS Batch los entornos informáticos que se dirigen al mismo clúster la comparten.
nota
La eliminación de un entorno de procesamiento no elimina la entrada de acceso, incluso si es la última AWS Batch entorno de procesamiento en el clúster. Para eliminar un AWS Batch-entrada de acceso administrado, llame UpdateComputeEnvironment con desiredState=DISABLED en cada AWS Batch entorno informático que se dirige al clúster antes de eliminarlo.
Una entrada de acceso no es suficiente por sí sola para ejecutar trabajos en el clúster. Para el Kubernetes los permisos y el acceso a los nodos que debe configurar usted mismo, consulte Configuración de clúster que aún debe proporcionar.
Permisos necesarios
AWS Batch administra la entrada de acceso mediante las credenciales de la identidad de IAM que llama al CreateComputeEnvironment o UpdateComputeEnvironment operación. Esa identidad debe poder realizar las siguientes acciones de Amazon EKS:
-
eks:DescribeCluster -
eks:DescribeAccessEntry -
eks:CreateAccessEntry -
eks:AssociateAccessPolicy -
eks:DeleteAccessEntry
Configure la entrada de acceso
Puede configurar la entrada de acceso en un entorno informático mediante el eksConfiguration.accessEntry campo del CreateComputeEnvironment o UpdateComputeEnvironment API.
Configuración de clúster que aún debe proporcionar
Una entrada de acceso solo controla cómo AWS Batch se autentica en su clúster. No concede AWS Batch la Kubernetes los permisos que necesita para ejecutar sus trabajos y no permite que las instancias que AWS Batch los lanzamientos se unen al clúster. Independientemente del mecanismo de autenticación que utilice, debe seguir configurando las dos opciones siguientes.
importante
Una vez que un AWS Batch-se crea una entrada de acceso administrado para AWS Batch rol vinculado a un servicio en un clúster (accessEntry.status=ACTIVE), tiene prioridad sobre el aws-auth ConfigMap configuración del rol. El ConfigMap entradas para el AWS Batch el rol vinculado al servicio no está utilizado, y AWS Batch en su lugar, se autentica utilizando la entrada de acceso. Para volver a ConfigMap autenticación, establecer desiredState=DISABLED en todos los entornos informáticos que tengan como objetivo el clúster. Esto elimina el AWS Batch-entrada de acceso administrado.
- Kubernetes permisos para el AWS Batch espacio de nombres
-
AWS Batch necesidades Kubernetes permisos para crear y administrar pods en el espacio de nombres que especifiques en
eksConfiguration.kubernetesNamespace. Cree el espacio de nombres y, a continuación, configure esos permisos mediante uno de los métodos siguientes, según su enfoque de autenticación:-
Asociación de políticas de acceso (obligatoria al acceder)
status=ACTIVE) — Cuando configurasdesiredState=ENABLEDen todos los entornos de procesamiento dirigidos a un clúster, AWS Batch crea una entrada de acceso con el nivel de clústerAWSBatchClusterPolicy. A continuación, debe asociar el ámbito del espacio de nombresAWSBatchNamespacePolicyconceder AWS Batch permiso para crear y administrar pods.Una vez que la entrada de acceso llegue
status=ACTIVE, asocie la política de espacio de nombres mediante AWS CLI:$aws eks associate-access-policy \ --cluster-namemy-cluster\ --principal-arnarn:aws:iam::123456789012:role/aws-service-role/batch.amazonaws.com/AWSServiceRoleForBatch\ --policy-arn arn:aws:eks::aws:cluster-access-policy/AWSBatchNamespacePolicy \ --access-scope type=namespace,namespaces=my-aws-batch-namespaceReemplazar
my-aws-batch-namespacecon el valor que especificó eneksConfiguration.kubernetesNamespace.importante
Sin una asociación política que abarque el espacio de nombres, los empleos permanecerán atrapados
RUNNABLEestado. La política a nivel de clúster por sí sola no otorga permisos de administración de pods. -
Kubernetes roles y enlaces de roles (cuando se accede a la entrada)
status=INACTIVE) — Si el AWS Batch-la entrada de acceso administrado no está activa, cree Kubernetes roles y enlaces de roles que otorgan esos permisos, tal como se describe en Paso 2: Prepare su clúster de Amazon EKS para AWS Batch. Esto se hace una vez para cada clúster.nota
Cuando un AWS Batch-la entrada de acceso administrado está activa (
status=ACTIVE), el Kubernetes Se omiten las funciones de RBAC. En su lugar, debe utilizar el método de asociación de políticas de acceso.
AWS Batch no crea estos recursos para usted, y un AWS Batch-la entrada de acceso administrado no los sustituye. Si faltan, el entorno informático aún puede convertirse en
VALIDmientras sus trabajos no se inicien. -
- Acceso al clúster para el rol de instancia de nodo
-
Instancias que AWS Batch lanza, se une al clúster mediante el perfil de instancia que especifique en
computeResources.instanceRole. Esa función necesita su propio acceso al clúster, que es independiente del AWS Batch-entrada de acceso administrada y cuál AWS Batch no se configura.El método de configuración depende del de su clúster
authenticationMode:-
En clústeres cuyos
authenticationModeesCONFIG_MAP— Debes usar elaws-authConfigMap. Las entradas de acceso no se admiten en estos clústeres. -
En clústeres cuyo
authenticationModeesAPI_AND_CONFIG_MAP— El rol de instancia de nodo puede autenticarse mediante cualquiera de losaws-authConfigMap o una entrada de acceso. Si el rol de instancia ya está mapeado en ConfigMap, los nodos se unirán correctamente sin crear una entrada de acceso para el rol. -
En clústeres cuyo
authenticationModeesAPI— Debes crear una entrada de acceso para el rol de instancia de nodo. Elaws-authConfigMap no se usa para la autenticación en estos clústeres.
Para crear una entrada de acceso para la función de instancia de nodo, utilice el AWS CLI:
$aws eks create-access-entry \ --cluster-namemy-cluster\ --principal-arnarn:aws:iam::123456789012:role/my-node-instance-role\ --type EC2_LINUXPara obtener más información, consulte Creación de entradas de acceso en el Guía del usuario de Amazon EKS.
importante
Sin el acceso adecuado al clúster para la función de instancia de nodo, las instancias EC2 no pueden unirse al clúster. Los trabajos permanecerán en
RUNNABLEestado porque no se registra ninguna capacidad en el clúster. -
Elegir entre aws-auth ConfigMap y acceder a las entradas
La autenticación de las entradas de acceso es la ruta recomendada para las nuevas AWS Batch en los entornos informáticos de Amazon EKS, y ofrece las siguientes ventajas:
-
Elimina la necesidad de editar manualmente el
aws-authConfigMap conceder AWS Batch acceso al clúster. -
Proporciona un servicio auditable, API-driven registro de los principales que tienen acceso al clúster.
-
Es obligatorio para los clústeres cuyo
authenticationModeesAPI, que no son compatibles conaws-authConfigMap.
Si tu clúster es authenticationMode es CONFIG_MAP, las entradas de acceso no están disponibles y AWS Batch se autentica a través del aws-auth ConfigMap. Para obtener instrucciones, consulte Compruebe que el aws-auth ConfigMap está configurado correctamente.