Sesiones interactivas con IAM - AWS Glue

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.

Sesiones interactivas con IAM

En estas secciones, se describen las consideraciones de seguridad para sesiones interactivas de AWS Glue.

Entidades principales de IAM que se utilizan con sesiones interactivas

Se utilizan dos entidades principales de IAM con sesiones interactivas de AWS Glue.

  • Entidad principal del cliente: la entidad principal del cliente (ya sea un usuario o un rol) autoriza las operaciones de la API para sesiones interactivas de un cliente de AWS Glue configurado con las credenciales basadas en la identidad de la entidad principal. Por ejemplo, esta podría ser un rol de IAM que suele utilizarse para acceder a la consola de AWS Glue. También podría ser un rol que se haya otorgado a un usuario de IAM cuyas credenciales se utilicen para la AWS Command Line Interface, o un cliente de AWS Glue utilizado por el kernel de Jupyter de sesiones interactivas.

  • Runtime role (Rol de tiempo de ejecución): el rol de tiempo de ejecución es un rol de IAM que la entidad principal del cliente pasa a las operaciones de la API de las sesiones interactivas. AWS Glue utiliza este rol para ejecutar instrucciones en la sesión. Por ejemplo, este rol podría ser el que se utiliza para ejecutar trabajos de ETL de AWS Glue.

    Para obtener más información, consulte Configuración de un rol de tiempo de ejecución.

Configuración de una entidad principal del cliente

Debe adjuntar una política de identidad a la entidad principal del cliente para permitirle llamar a la API de sesiones interactivas. Este rol debe tener el acceso iam:PassRole al rol de ejecución que se pasaría a la API de sesiones interactivas, como CreateSession. Por ejemplo, puede adjuntar la política AWSGlueConsoleFullAccessgestionada a un rol de IAM que permita a los usuarios de su cuenta con la política adjunta acceder a todas las sesiones creadas en su cuenta (como el extracto de tiempo de ejecución o el extracto de cancelación).

Si desea proteger su sesión y convertirla en privada solo para determinadas funciones de IAM, como las asociadas al usuario que creó la sesión, puede utilizar el denominado Control de autorización basado en etiquetas de AWS Glue Interactive Session. TagOnCreate Para obtener más información, consulte Haga que su sesión sea privada con TagOnCreate cómo una política gestionada con alcance limitado y basada en etiquetas de propietario puede hacer que su sesión sea privada. TagOnCreate Para obtener más información sobre las políticas basadas en la identidad, consulte las políticas basadas en la identidad para. AWS Glue

Configuración de un rol de tiempo de ejecución

Debe transferir una función de IAM a la operación de la CreateSession API para poder asumir y ejecutar declaraciones en AWS Glue las sesiones interactivas. El rol debe tener los mismos permisos de IAM que los necesarios para ejecutar trabajos típicos de AWS Glue. Por ejemplo, puede crear un rol de servicio mediante la AWSGlueServiceRolepolítica que permite llamar AWS Glue a AWS los servicios en su nombre. Si utiliza la consola de AWS Glue, se creará automáticamente un rol de servicio en su nombre o se utilizará uno existente. También puede crear su propio rol de IAM y adjuntar su propia política de IAM para conceder permisos similares.

Si desea proteger su sesión y hacerla privada solo para el usuario que la creó, puede utilizar el denominado Control de autorización basado en etiquetas de AWS Glue Interactive Session TagOnCreate. Para obtener más información, consulte Haga que su sesión sea privada con TagOnCreate cómo una política gestionada con alcance limitado y basada en etiquetas de propietario puede hacer que su sesión sea privada con. TagOnCreate Para obtener más información sobre políticas basadas en identidad, consulte Políticas basadas en identidades de AWS Glue. Si va a crear el rol de ejecución usted mismo desde la consola de IAM y desea que su servicio sea privado con la TagOnCreate función, siga los pasos que se indican a continuación.

  1. Cree un rol de IAM con el tipo de rol configurado como Glue.

  2. Adjunta esta política AWS Glue gestionada: AwsGlueSessionUserRestrictedServiceRole

  3. Añada el nombre de la política al nombre de la función como prefijo. AwsGlueSessionUserRestrictedServiceRole Por ejemplo, puede crear un rol con el nombre AwsGlueSessionUserRestrictedServiceRole-myrole y adjuntar AWS Glue una política administrada. AwsGlueSessionUserRestrictedServiceRole

  4. Adjunte una política de confianza como la siguiente para permitir que AWS Glue asuma el rol:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "glue.amazonaws.com" ] }, "Action": [ "sts:AssumeRole" ] } ] }

Para un kernel de Jupyter de sesiones interactivas, puede especificar la clave iam_role en el perfil de la AWS Command Line Interface. Para obtener más información, consulte Configuración de sesiones con ~/.aws/config . Si interactúa con sesiones interactivas mediante un cuaderno de AWS Glue, puede transferir el rol de ejecución en el comando mágico %iam_role en la primera celda que ejecute.

Haga que su sesión sea privada con TagOnCreate

Las sesiones interactivas de AWS Glue son compatibles con el etiquetado y la autorización basada en etiquetas (TBAC) de las sesiones interactivas como recurso con nombre. Además del uso del TBAC TagResource y UntagResource las API, las sesiones AWS Glue interactivas admiten la TagOnCreate función de «etiquetar» una sesión con una etiqueta determinada solo durante la creación de la sesión con CreateSession la operación. Esto también significa que esas etiquetas se eliminarán el DeleteSession, también conocido como. UntagOnDelete

TagOnCreate ofrece un potente mecanismo de seguridad para que su sesión sea privada para el creador de la sesión. Por ejemplo, puede adjuntar una política de IAM con «propietario» RequestTag y un valor de $ {AWS:userID} al cliente principal (como un usuario) para permitir la creación de una sesión solo si en la solicitud se proporciona una etiqueta de «propietario» con un valor coincidente con el ID de usuario de la persona que llama. CreateSession Esta política permite que las sesiones interactivas de AWS Glue puedan crear un recurso de sesión y etiquetar la sesión con la etiqueta userId solo durante la creación de la sesión. Además, puedes limitar el acceso (por ejemplo, a la ejecución de declaraciones) a tu sesión únicamente al creador (también conocido como etiqueta de propietario con el valor $ {aws:userID}) de la sesión adjuntando una política de IAM con la palabra «propietario» ResourceTag al rol de ejecución que hayas transferido durante el proceso CreateSession.

Con el fin de facilitar el uso de la TagOnCreate función para hacer que una sesión sea privada para el creador de la sesión, AWS Glue proporciona políticas gestionadas y funciones de servicio especializadas.

Si desea crear una sesión AWS Glue interactiva utilizando un elemento AssumeRole principal de IAM (es decir, utilizando una credencial vendida asumiendo un rol de IAM) y quiere que la sesión sea privada para el creador, utilice políticas similares a las y, respectivamente. AWSGlueSessionUserRestrictedNotebookPolicyAWSGlueSessionUserRestrictedNotebookServiceRole Estas políticas permiten AWS Glue usar $ {aws:PrincipalTag} para extraer el valor de la etiqueta de propietario. Esto requiere que pases una etiqueta de ID de usuario con el valor $ {aws:UserID} como en la credencial del supuesto rol. SessionTag Consulte Etiquetas de sesión de ID. Si utiliza una instancia de Amazon EC2 con un perfil de instancia que vende la credencial y desea crear una sesión o interactuar con la sesión desde la instancia de Amazon EC2, tendrá que pasar una etiqueta de ID de usuario con el valor $ {aws:userId} como credencial de asunción de rol. SessionTag

Por ejemplo, si va a crear una sesión con una credencial AssumeRole principal de IAM y desea que su servicio sea privado con la TagOnCreate función, siga los pasos que se indican a continuación.

  1. Cree un rol de tiempo de ejecución usted mismo desde la consola de IAM. Adjunte esta AwsGlueSessionUserRestrictedNotebookServicefunción de política AWS Glue gestionada y añada el nombre de la política Rol al nombre de la función como prefijo. AwsGlueSessionUserRestrictedNotebookService Por ejemplo, puede crear un rol con el nombre AwsGlueSessionUserRestrictedNotebookServiceRole-myRole y adjuntar AWS Glue un rol de política administrada. AwsGlueSessionUserRestrictedNotebookService

  2. Adjunte una política de confianza como la que aparece a continuación para permitir que AWS Glue asuma el rol anterior.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "glue.amazonaws.com" ] }, "Action": [ "sts:AssumeRole" ] } ] }
  3. Cree otro rol con un prefijo AwsGlueSessionUserRestrictedNotebookPolicyy adjunte la política AWS Glue administrada AwsGlueSessionUserRestrictedNotebookPolicypara que la sesión sea privada. Además de la política gestionada, adjunte la siguiente política en línea para permitir iam: PassRole al rol que creó en el paso 1.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": [ "arn:aws:iam::*:role/AwsGlueSessionUserRestrictedNotebookServiceRole*" ], "Condition": { "StringLike": { "iam:PassedToService": [ "glue.amazonaws.com" ] } } } ] }
  4. Adjunte una política de confianza como la siguiente a la IAM de AWS Glue para asumir el rol.

    { "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": { "Service": [ "glue.amazonaws.com" ] }, "Action": [ "sts:AssumeRole", "sts:TagSession" ] }] }
    nota

    Si lo desea, puede utilizar un único rol (por ejemplo, el rol de bloc de notas) y adjuntar las dos políticas gestionadas anteriores: AwsGlueSessionUserRestrictedNotebookServiceRol y. AwsGlueSessionUserRestrictedNotebookPolicy Adjunte también la política insertada adicional para permitir iam:passrole del rol a AWS Glue. Y, finalmente, adjunte la política de confianza anterior para permitir sts:AssumeRole y sts:TagSession.

AWSGlueSessionUserRestrictedNotebookPolicy

Solo AWSGlueSessionUserRestrictedNotebookPolicy permite crear una sesión AWS Glue interactiva desde un cuaderno si la clave «propietario» y un valor coinciden con el AWS seudónimo del principal (usuario o rol). Para más información, consulte Dónde puede utilizar variables de política. Esta política se adjunta a la entidad principal (usuario o rol) que crea cuadernos de sesión interactiva de AWS Glue desde AWS Glue Studio. Esta política también concede suficiente acceso al cuaderno de AWS Glue Studio para interactuar con los recursos de sesión interactiva de AWS Glue Studio que se crean con el valor de etiqueta de “propietario” que coincide con el ID de usuario de AWS de la entidad principal. Esta política deniega el permiso para cambiar o eliminar la etiqueta de “propietario” de un recurso de sesión de AWS Glue después de crear la sesión.

AWSGlueSessionUserRestrictedNotebookServiceRole

AWSGlueSessionUserRestrictedNotebookServiceRoleProporciona acceso suficiente al AWS Glue Studio cuaderno para interactuar con los recursos de la sesión AWS Glue interactiva que se crean con el valor de la etiqueta «propietario» que coincide con el seudónimo del AWS usuario principal (usuario o rol) del creador del cuaderno. Para más información, consulte Dónde puede utilizar variables de política. Esta política de rol de servicio está asociada al rol que se transfiere por arte de magia a un bloc de notas o que se transfiere como rol de ejecución a la CreateSession API. Esta política también permite crear una sesión interactiva de AWS Glue desde un cuaderno solo si se proporcionan una clave de etiqueta de “propietario” y un valor que coincide con el ID de usuario de AWS de la entidad principal. Esta política deniega el permiso para cambiar o eliminar la etiqueta de “propietario” de un recurso de sesión de AWS Glue después de crear la sesión. Esta política también incluye permisos para escribir y leer desde buckets de Amazon S3, escribir CloudWatch registros y crear y eliminar etiquetas para los recursos de Amazon EC2 utilizados por. AWS Glue

Convertir la sesión en privada con políticas de usuarios

Puede adjuntar las AWSGlueSessionUserRestrictedPolicyfunciones de IAM asociadas a cada uno de los usuarios de su cuenta para evitar que creen una sesión únicamente con una etiqueta de propietario cuyo valor coincida con su propio $ {aws:userId}. En lugar de utilizar las AWSGlueSessionUserRestrictedNotebookPolicyy, AWSGlueSessionUserRestrictedNotebookServiceRoledebe utilizar políticas similares a las y, respectivamente. AWSGlueSessionUserRestrictedPolicyAWSGlueSessionUserRestrictedServiceRole Para obtener más información, consulte Uso de políticas basadas en identidad. Esta política reduce el ámbito de acceso a una sesión solo al creador, también conocido como ${aws:userId} del usuario que creó la sesión con la etiqueta de propietario que contiene su propio ${aws:userId}. Si ha creado el rol de ejecución usted mismo mediante la consola de IAM siguiendo los pasos descritos anteriormenteConfiguración de un rol de tiempo de ejecución, además de adjuntar la política AwsGlueSessionUserRestrictedPolicygestionada, adjunte también la siguiente política integrada a cada uno de los usuarios de su cuenta iam:PassRole para permitir el rol de ejecución que creó anteriormente.

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": [ "arn:aws:iam::*:role/AwsGlueSessionUserRestrictedServiceRole*" ], "Condition": { "StringLike": { "iam:PassedToService": [ "glue.amazonaws.com" ] } } }] }

AWSGlueSessionUserRestrictedPolicy

Solo permite crear una sesión AWS Glue interactiva mediante la CreateSession API si se AWSGlueSessionUserRestrictedPolicyproporciona una clave de etiqueta («propietario») y un valor que coincidan con su ID AWS de usuario. Esta política de identidad se adjunta al usuario que invoca la CreateSession API. Esta política también permite interactuar con los recursos de sesión interactiva de AWS Glue que se crearon con una etiqueta de “propietario” y un valor que coincide con el ID de usuario de AWS. Esta política deniega el permiso para cambiar o eliminar la etiqueta de “propietario” de un recurso de sesión de AWS Glue después de crear la sesión.

AWSGlueSessionUserRestrictedServiceRole

AWSGlueSessionUserRestrictedServiceRoleProporciona acceso completo a todos los AWS Glue recursos, excepto a las sesiones, y permite a los usuarios crear y usar solo las sesiones interactivas asociadas al usuario. Esta política también incluye otros permisos que necesita AWS Glue para administrar los recursos de Glue en otros servicios de AWS. La política también permite agregar etiquetas a recursos de AWS Glue en otros servicios de AWS.

Consideraciones respecto de la política de IAM

Las sesiones interactivas son recursos de IAM en AWS Glue. Debido a que son recursos de IAM, el acceso a una sesión y la interacción con la misma se rigen por las políticas de IAM. Según las políticas de IAM adjuntadas a una entidad principal del cliente o rol de ejecución configurado por un administrador, una entidad principal del cliente (usuario o rol) podrá crear nuevas sesiones e interactuar con las suyas y con otras.

Si un administrador ha incorporado una política de IAM AWSGlueServiceRole que permita el acceso a todos AWS Glue los recursos de esa cuenta, el director del cliente podrá colaborar entre sí. AWSGlueConsoleFullAccess Por ejemplo, un usuario podrá interactuar con las sesiones creadas por otros usuarios si las políticas lo permiten.

Si desea configurar una política que se adapte a sus necesidades específicas, consulte la documentación de IAM sobre la configuración de los recursos de una política. Por ejemplo, para aislar las sesiones que pertenecen a un usuario, puede utilizar la TagOnCreate función compatible con las sesiones AWS Glue interactivas. Consulte Haga que su sesión sea privada con TagOnCreate .

Las sesiones interactivas permiten limitar la creación de sesiones en función de determinadas condiciones de la VPC. Consulte Políticas que controlan la configuración mediante claves de condición.