Otorgar a los usuarios acceso a Amazon EMR en EKS - Amazon EMR

Otorgar a los usuarios acceso a Amazon EMR en EKS

Para cualquier acción que lleve a cabo en Amazon EMR en EKS, necesita el permiso de IAM correspondiente. Debe crear una política de IAM que le permita llevar a cabo acciones de Amazon EMR en EKS y adjuntar la política al usuario o rol de IAM que utilice.

En este tema se proporcionan los pasos para crear una política nueva y adjuntarla a un usuario. También cubre los permisos básicos que necesita para configurar su entorno de Amazon EMR en EKS. Le recomendamos que perfeccione los permisos para recursos específicos siempre que sea posible en función de las necesidades de su empresa.

Crear una nueva política de IAM y adjuntarla a un usuario en la consola de IAM

Crear una política de IAM nueva
  1. Inicie sesión en Consola de administración de AWS y abra la consola IAM en https://console.aws.amazon.com/iam/.

  2. En el panel de navegación izquierdo de la consola de IAM elija Políticas.

  3. En la página Políticas, seleccione Crear una política.

  4. En la ventana Crear política, vaya a la pestaña Editar JSON. Cree un documento de política con una o más instrucciones JSON, tal como se muestra en los ejemplos que siguen a este procedimiento. A continuación, seleccione Revisar política.

  5. En la pantalla Review Policy (Revisar política), escriba su Policy Name (Nombre de política); por ejemplo, AmazonEMROnEKSPolicy. Ingrese una descripción opcional y, a continuación, elija Crear política.

Adjuntar la política a un usuario o rol
  1. Inicie sesión en la Consola de administración de AWS y abra la consola de IAM en https://console.aws.amazon.com/iam/

  2. En el panel de navegación, seleccione Políticas.

  3. En la lista de políticas, seleccione la casilla situada junto a la política creada en la sección anterior. Puede utilizar el menú Filtro y el cuadro de búsqueda para filtrar la lista de políticas.

  4. Seleccione Policy actions (Acciones de la política) y, a continuación, Attach (Adjuntar).

  5. Elija el usuario o rol al que adjuntar la política. Puede utilizar el menú Filtro y el cuadro de búsqueda para filtrar la lista entidades principales. Después de seleccionar el usuario o rol al que adjuntará la política, seleccione Adjuntar política.

Permisos para administrar clústeres virtuales

Para administrar los clústeres virtuales de su cuenta de AWS, cree una política de IAM con los siguientes permisos. Estos permisos le permiten crear, enumerar, describir y eliminar clústeres virtuales de su cuenta de AWS.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iam:CreateServiceLinkedRole" ], "Resource": [ "*" ], "Condition": { "StringLike": { "iam:AWSServiceName": "emr-containers.amazonaws.com" } }, "Sid": "AllowIAMCreateservicelinkedrole" }, { "Effect": "Allow", "Action": [ "emr-containers:CreateVirtualCluster", "emr-containers:ListVirtualClusters", "emr-containers:DescribeVirtualCluster", "emr-containers:DeleteVirtualCluster" ], "Resource": [ "*" ], "Sid": "AllowEMRCONTAINERSCreatevirtualcluster" } ] }

Amazon EMR está integrado con la administración de acceso a clústeres (CAM) de Amazon EKS, por lo que puede automatizar la configuración de las políticas AuthN y AuthZ necesarias para ejecutar trabajos de Amazon EMR Spark en los espacios de nombres de los clústeres de Amazon EKS. Para llevar a cabo esto, debe tener los siguientes permisos:

{ "Effect": "Allow", "Action": [ "eks:CreateAccessEntry" ], "Resource": "arn:<AWS_PARTITION>:eks:<AWS_REGION>:<AWS_ACCOUNT_ID>:cluster/<EKS_CLUSTER_NAME>" }, { "Effect": "Allow", "Action": [ "eks:DescribeAccessEntry", "eks:DeleteAccessEntry", "eks:ListAssociatedAccessPolicies", "eks:AssociateAccessPolicy", "eks:DisassociateAccessPolicy" ], "Resource": "arn:<AWS_PARTITION>:eks:<AWS_REGION>:<AWS_ACCOUNT_ID>:access-entry/<EKS_CLUSTER_NAME>/role/<AWS_ACCOUNT_ID>/AWSServiceRoleForAmazonEMRContainers/*" }

Para obtener más información, consulte Automatización de la habilitación del acceso a clústeres de Amazon EMR en EKS.

Cuando la operación CreateVirtualCluster se invoca por primera vez desde una cuenta de AWS, también necesita los permisos CreateServiceLinkedRole para crear el rol vinculado al servicio de Amazon EMR en EKS. Para obtener más información, consulte Uso de roles vinculados a servicios para Amazon EMR en EKS.

Permisos para enviar trabajos

Para enviar trabajos en los clústeres virtuales de su cuenta de AWS, cree una política de IAM con los siguientes permisos. Estos permisos le permiten iniciar, enumerar, describir y cancelar la ejecución de trabajos para todos los clústeres virtuales de su cuenta. Debería considerar la posibilidad de agregar permisos para enumerar o describir los clústeres virtuales, lo que le permitirá comprobar el estado del clúster virtual antes de enviar los trabajos.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "emr-containers:StartJobRun", "emr-containers:ListJobRuns", "emr-containers:DescribeJobRun", "emr-containers:CancelJobRun" ], "Resource": [ "*" ], "Sid": "AllowEMRCONTAINERSStartjobrun" } ] }

Permisos de depuración y supervisión

Para acceder a los registros enviados a Amazon S3 y CloudWatch, o para ver los registros de eventos de la aplicación en la consola de Amazon EMR, cree una política de IAM con los siguientes permisos. Le recomendamos que perfeccione los permisos para recursos específicos siempre que sea posible en función de las necesidades de su empresa.

importante

Si no ha creado ningún bucket de Amazon S3, debe agregar el permiso s3:CreateBucket a la instrucción de política. Si no ha creado ningún grupo de registros, debe agregar logs:CreateLogGroup a la instrucción de política.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "emr-containers:DescribeJobRun", "elasticmapreduce:CreatePersistentAppUI", "elasticmapreduce:DescribePersistentAppUI", "elasticmapreduce:GetPersistentAppUIPresignedURL" ], "Resource": [ "*" ], "Sid": "AllowEMRCONTAINERSDescribejobrun" }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:ListBucket" ], "Resource": [ "*" ], "Sid": "AllowS3Getobject" }, { "Effect": "Allow", "Action": [ "logs:Get*", "logs:DescribeLogGroups", "logs:DescribeLogStreams" ], "Resource": [ "*" ], "Sid": "AllowLOGSGet" } ] }

Para obtener más información sobre cómo configurar una ejecución de trabajo para enviar registros a Amazon S3 y CloudWatch, consulte Configurar una ejecución de trabajo para usar registros de S3 y Configurar una ejecución de trabajo para usar Registros de CloudWatch.