EMR de Amazon se complace en anunciar la integración con Amazon Simple Storage Service (Amazon S3) Access Grants que simplifica la administración de permisos de Amazon S3 y le permite imponer el acceso granular a escala. Con esta integración, puede escalar el acceso a Amazon S3 basado en trabajos para trabajos de Apache Spark en todas las opciones de implementación de Amazon EMR y aplicar el acceso granular a Amazon S3 para una mejor postura de seguridad.
En esta publicación, analizaremos algunos escenarios diferentes sobre cómo utilizar las subvenciones de acceso de Amazon S3. Antes de comenzar a recorrer la integración de Amazon EMR y Amazon S3 Access Grants, instalaremos y configuraremos S3 Access Grants. Luego, usaremos el Formación en la nube de AWS plantilla a continuación para crear un Amazon EMR en Amazon Elastic Compute Cloud (Amazon EC2) Clúster, una aplicación EMR Serverless y dos roles de trabajo diferentes.
Después de la configuración, ejecutaremos algunos escenarios sobre cómo puede utilizar Amazon EMR con S3 Access Grants. Primero, ejecutaremos un trabajo por lotes en EMR en Amazon EC2 para importar datos CSV y convertirlos a Parquet. En segundo lugar, utilizaremos Amazon EMR Studio con una aplicación interactiva EMR Serverless para analizar los datos. Finalmente, mostraremos cómo configurar el acceso entre cuentas para las subvenciones de acceso de Amazon S3. Muchos clientes utilizan diferentes cuentas en su organización e incluso fuera de ella para compartir datos. Las concesiones de acceso de Amazon S3 facilitan la concesión de acceso entre cuentas a sus datos, incluso cuando se filtran por diferentes prefijos.
Además de esta publicación, puede obtener más información sobre las subvenciones de acceso de Amazon S3 en Ampliación del acceso a datos con subvenciones de acceso de Amazon S3.
Requisitos previos
Antes de iniciar la pila de AWS CloudFormation, asegúrese de tener lo siguiente:
- Una cuenta de AWS que proporciona acceso a los servicios de AWS
- La última versión de la interfaz de línea de comandos de AWS (CLI de AWS)
- Una gestión de acceso e identidad de AWS (IAM de AWS) usuario con una clave de acceso y una clave secreta para configurar la CLI de AWS y permisos para crear un rol de IAM, políticas de IAM y pilas en AWS CloudFormation
- Una segunda cuenta de AWS si desea probar la funcionalidad entre cuentas
Tutorial
Cree recursos con AWS CloudFormation
Para utilizar las subvenciones de acceso de Amazon S3, necesitará un clúster con Amazon EMR 6.15.0 o posterior. Para obtener más información, consulte la documentación sobre el uso de concesiones de acceso de Amazon S3 con un Clúster de Amazon EMR, un Amazon EMR en el clúster EKS, Y un Aplicación sin servidor de Amazon EMR. A los efectos de esta publicación, asumiremos que tiene dos tipos diferentes de usuarios de acceso a datos en su organización: ingenieros analíticos con acceso de lectura y escritura a los datos en el depósito y analistas de negocios con acceso de solo lectura. Utilizaremos dos funciones diferentes de AWS IAM, pero también puede conectar su propio proveedor de identidad directamente al IAM Identity Center si lo desea.
Aquí está la arquitectura de esta primera parte. La pila de AWS CloudFormation crea los siguientes recursos de AWS:
- Una pila de nube privada virtual (VPC) con subredes públicas y privadas para usar con EMR Studio, tablas de rutas y puerta de enlace de traducción de direcciones de red (NAT).
- Un depósito de Amazon S3 para artefactos de EMR, como archivos de registro, código Spark y cuadernos de Jupyter.
- Un depósito de Amazon S3 con datos de muestra para usar con concesiones de acceso a S3.
- Un clúster de Amazon EMR configurado para usar roles de tiempo de ejecución y subvenciones de acceso S3.
- Una aplicación sin servidor de Amazon EMR configurada para utilizar concesiones de acceso de S3.
- Un Amazon EMR Studio donde los usuarios pueden iniciar sesión y crear cuadernos de espacio de trabajo con la aplicación EMR Serverless.
- Usaremos dos roles de AWS IAM para ejecutar nuestros trabajos de EMR: uno para Amazon EC2 con acceso de escritura y otro para Serverless con acceso de lectura.
- Una función de AWS IAM que utilizarán las concesiones de acceso de S3 para acceder a los datos del depósito (es decir, la función que se utilizará al registrar una ubicación con las concesiones de acceso de S3. Las concesiones de acceso de S3 utilizan esta función para crear credenciales temporales).
Para comenzar, complete los siguientes pasos:
- Elija la pila de lanzamiento:
- Acepte los valores predeterminados y seleccione Reconozco que esta plantilla puede crear recursos de IAM.
La pila de AWS CloudFormation tarda aproximadamente entre 10 y 15 minutos en completarse. Una vez terminada la pila, vaya a la pestaña de salidas donde encontrará la información necesaria para los siguientes pasos.
Crear recursos de subvenciones de acceso de Amazon S3
Primero, vamos a crear recursos de subvenciones de acceso de Amazon S3 en nuestra cuenta. Creamos una instancia de S3 Access Grants, una ubicación de S3 Access Grants que hace referencia a nuestro depósito de datos creado por la pila de AWS CloudFormation al que solo puede acceder nuestra función AWS IAM del depósito de datos, y otorgamos diferentes niveles de acceso a nuestros roles de lector y escritor.
Para crear los recursos necesarios de subvenciones de acceso de S3, utilice los siguientes comandos de la AWS CLI como usuario administrativo y reemplace cualquiera de los campos entre las flechas con el resultado de su pila de CloudFormation.
A continuación, creamos una nueva ubicación de S3 Access Grants. ¿Qué es una ubicación? Amazon S3 Access Grants funciona vendiendo credenciales de AWS IAM con acceso limitado a un prefijo S3 particular. Una ubicación de concesiones de acceso de S3 se asociará con un rol de AWS IAM a partir del cual se crearán estas sesiones temporales.
En nuestro caso, limitaremos el rol de AWS IAM al depósito creado con nuestra pila de AWS CloudFormation y daremos acceso al rol del depósito de datos creado por la pila. Vaya a la pestaña de resultados para buscar los valores que desea reemplazar con el siguiente fragmento de código:
Nota la AccessGrantsLocationId
valor en la respuesta. Lo necesitaremos para los próximos pasos en los que explicaremos la creación de las concesiones de acceso S3 necesarias para limitar el acceso de lectura y escritura a su depósito.
- Para el usuario de lectura/escritura, utilice
s3-control create-access-grant
para permitir el acceso de READWRITE al prefijo “salida/*”: - Para el usuario leído, utilice
s3control create-access-grant
nuevamente para permitir solo acceso de LECTURA al mismo prefijo:
Escenario de demostración 1: Amazon EMR en EC2 Spark Job para generar datos de Parquet
Ahora que hemos configurado nuestros entornos de Amazon EMR y hemos otorgado acceso a nuestros roles a través de concesiones de acceso S3, es importante tener en cuenta que los dos roles de AWS IAM para nuestro clúster EMR y nuestra aplicación sin servidor EMR tienen una política de IAM que solo permite el acceso a nuestro depósito de artefactos EMR. No tienen acceso IAM a nuestro depósito de datos S3 y, en su lugar, utilizan concesiones de acceso S3 para obtener credenciales de corta duración limitadas al depósito y al prefijo. Específicamente, los roles se otorgan s3:GetDataAccess y s3:GetDataAccessGrantsInstanceForPrefix
permisos para solicitar acceso a través de la instancia específica de S3 Access Grants creada en nuestra región. Esto le permite administrar fácilmente su acceso a S3 en un solo lugar de una manera granular y de gran alcance que mejora su postura de seguridad. Combinando concesiones de acceso a S3 con roles laborales en EMR en Amazon Elastic Kubernetes Service (Amazon EKS) y EMR Serverless, así como roles de tiempo de ejecución para los pasos de Amazon EMR A partir de EMR 6.7.0, puede administrar fácilmente el control de acceso para trabajos o consultas individuales. Las subvenciones de acceso a S3 están disponibles en EMR 6.15.0 y versiones posteriores. Primero ejecutemos un trabajo de Spark en EMR en EC2 como nuestro ingeniero analítico para convertir algunos datos de muestra en Parquet.
Para ello, utilice el código de muestra proporcionado en convertidor.py. Descargue el archivo y cópielo en el EMR_ARTIFACTS_BUCKET
creado por la pila de AWS CloudFormation. Enviaremos nuestro trabajo con la función ReadWrite AWS IAM. Tenga en cuenta que para el clúster de EMR, configuramos las concesiones de acceso de S3 para recurrir a la función de IAM si las concesiones de acceso de S3 no proporcionan el acceso. El DATA_WRITER_ROLE
tiene acceso de lectura al depósito de artefactos de EMR a través de una política de IAM para que pueda leer nuestro script. Como antes, reemplace todos los valores con el <>
símbolos de la Salidas pestaña de su pila de CloudFormation.
Una vez finalizado el trabajo, deberíamos ver algunos datos de Parquet en s3://<DATA_BUCKET>/output/weather-data/
. Puede ver el estado del trabajo en el pasos pestaña del consola EMR.
Escenario de demostración 2: EMR Studio con una aplicación interactiva EMR Serverless para analizar datos
Ahora sigamos adelante, iniciemos sesión en EMR Studio y nos conectemos a su aplicación EMR Serverless con la función de tiempo de ejecución ReadOnly para analizar los datos del escenario 1. Primero, debemos habilitar el punto final interactivo en su aplicación Serverless.
- Seleccione EMRStudioURL existentes Pestaña de salidas de su pila de AWS CloudFormation.
- Seleccione Aplicaciones bajo el Sin servidor sección en el lado izquierdo.
- Seleccione EMRBlog aplicación, entonces la la columna Acción menú desplegable, y Configure.
- Ampliar la opción Punto final interactivo sección y asegúrese de que Habilitar punto final interactivo está chequeado.
- Desplázate hacia abajo y haz clic Configurar aplicación para guardar los cambios.
- De vuelta en la página de Aplicaciones, seleccione EMRBlog aplicación, entonces la Iniciar aplicación del botón.
A continuación, crea un nuevo espacio de trabajo en nuestro Studio.
- Elige Espacios de trabajo en el lado izquierdo, luego el Crear espacio de trabajo del botón.
- Ingrese un nombre de espacio de trabajo, deje los valores predeterminados restantes y elija Crear espacio de trabajo.
- Después de crear el espacio de trabajo, debería iniciarse en una nueva pestaña en unos segundos.
Ahora conecte su espacio de trabajo a su aplicación EMR Serverless.
- Seleccione Computación EMR botón en el lado izquierdo como se muestra en el siguiente código.
- Elige EMR sin servidor como tipo de cálculo.
- Elija el EMRBlog aplicación y el rol de tiempo de ejecución que comienza con EMRBlog.
- Elige Adjuntar. La ventana se actualizará y podrá abrir una nueva. PySpark cuaderno y sígalo a continuación. Para ejecutar el código usted mismo, descargue el Cuaderno AccessGrantsReadOnly.ipynb y cárguelo en su espacio de trabajo usando el Agregar archivo/s botón en el explorador de archivos.
Hagamos una lectura rápida de los datos.
Haremos un recuento simple (*):
También puede ver que si intentamos escribir datos en la ubicación de salida, obtenemos un error de Amazon S3.
Si bien también puede otorgar acceso similar a través de políticas de AWS IAM, las concesiones de acceso de Amazon S3 pueden ser útiles para situaciones en las que su organización ha superado la administración del acceso a través de IAM, desea asignar concesiones de acceso de S3 a los principales o roles del Centro de identidad de IAM, o ha utilizado previamente EMR. Asignaciones de roles del sistema de archivos (EMRFS). Las credenciales de S3 Access Grants también son temporales y brindan un acceso más seguro a sus datos. Además, como se muestra a continuación, el acceso entre cuentas también se beneficia de la simplicidad de S3 Access Grants.
Escenario de demostración 3: acceso entre cuentas
Uno de los otros patrones de acceso más comunes es el acceso a datos entre cuentas. Este patrón se ha vuelto cada vez más común con la aparición de la malla de datos, donde los productores y consumidores de datos están descentralizados en diferentes cuentas de AWS.
Anteriormente, el acceso entre cuentas requería la configuración de acciones complejas de roles entre cuentas y proveedores de credenciales personalizados al configurar su trabajo de Spark. Con S3 Access Grants, sólo necesitamos hacer lo siguiente:
- Cree un rol de trabajo de Amazon EMR y un clúster en una segunda cuenta de consumidor de datos
- La cuenta del productor de datos otorga acceso a la cuenta del consumidor de datos con una nueva política de recursos de instancia
- La cuenta del productor de datos crea una concesión de acceso para el puesto de trabajo del consumidor de datos.
¡Y eso es! Si tiene una segunda cuenta a mano, continúe e implemente esta pila de AWS CloudFormation en la cuenta del consumidor de datos, para crear una nueva aplicación EMR Serverless y función de trabajo. Si no, simplemente síganos a continuación. La pila de AWS CloudFormation debería terminar de crearse en menos de un minuto. A continuación, sigamos adelante y otorguemos a nuestro consumidor de datos acceso a la instancia de S3 Access Grants en nuestra cuenta de productor de datos.
- Reemplaza
<DATA_PRODUCER_ACCOUNT_ID>
y<DATA_CONSUMER_ACCOUNT_ID>
con los ID de cuenta de AWS de 12 dígitos pertinentes. - Es posible que también deba cambiar la región en el comando y la política.
- Y luego otorgue acceso de LECTURA a la carpeta de salida de nuestra función de trabajo EMR Serverless en la cuenta del consumidor de datos.
Ahora que hemos hecho eso, podemos leer los datos en la cuenta del consumidor de datos desde el depósito en la cuenta del productor de datos. Simplemente ejecutaremos un simple COUNT(*)
de nuevo. Reemplace la <APPLICATION_ID>
, <DATA_CONSUMER_JOB_ROLE>
y <DATA_CONSUMER_LOG_BUCKET>
con los valores de la pestaña Salidas en la pila de AWS CloudFormation creada en su segunda cuenta.
Y reemplazar <DATA_PRODUCER_BUCKET>
con el cubo de tu primera cuenta.
Espere a que el trabajo alcance un estado completo y luego obtenga el registro de salida estándar de su depósito, reemplazando el <APPLICATION_ID>
, <JOB_RUN_ID>
del trabajo anterior, y <DATA_CONSUMER_LOG_BUCKET>
.
Si está en una máquina basada en Unix y tiene pistolas instalado, entonces puede usar el siguiente comando como su usuario administrativo.
Tenga en cuenta que este comando solo utiliza políticas de roles de AWS IAM, no concesiones de acceso de Amazon S3.
De lo contrario, puede utilizar el obtener-panel-para-ejecutar-trabajo comando y abra la URL resultante en su navegador para ver los registros de salida estándar del controlador en la pestaña Ejecutores de la interfaz de usuario de Spark.
Limpiar
Para evitar incurrir en costos futuros por recursos de ejemplos en sus cuentas de AWS, asegúrese de seguir los siguientes pasos:
- Debe eliminar manualmente el espacio de trabajo de Amazon EMR Studio creado en la primera parte de la publicación.
- Vacíe los depósitos de Amazon S3 creados por las pilas de AWS CloudFormation
- Asegúrese de eliminar las concesiones de acceso a Amazon S3, las políticas de recursos y la ubicación de las concesiones de acceso a S3 creadas en los pasos anteriores utilizando el
delete-access-grant
,delete-access-grants-instance-resource-policy
,delete-access-grants-location
ydelete-access-grants-instance
comandos. - Elimine las pilas de AWS CloudFormation creadas en cada cuenta
Comparación con el mapeo de roles de AWS IAM
En 2018, EMR introdujo el mapeo de roles de EMRFS como una forma de proporcionar autorización a nivel de almacenamiento mediante la configuración de EMRFS con múltiples roles de IAM. Si bien era efectivo, el mapeo de roles requería administrar usuarios o grupos localmente en su clúster de EMR, además de mantener las asignaciones entre esas identidades y sus roles de IAM correspondientes. En combinación con roles de tiempo de ejecución en EMR en EC2 y roles laborales para EMR en EKS y EMR sin servidor, ahora es más fácil otorgar acceso a sus datos en S3 directamente al director relevante por trabajo.
Conclusión
En esta publicación, le mostramos cómo configurar y utilizar las subvenciones de acceso de Amazon S3 con Amazon EMR para administrar fácilmente el acceso a datos para sus cargas de trabajo de Amazon EMR. Con S3 Access Grants y EMR, puede configurar fácilmente el acceso a los datos en S3 para identidades de IAM o utilizar su directorio corporativo en IAM Identity Center como fuente de identidad. Las concesiones de acceso S3 son compatibles con EMR en EC2, EMR en EKS y EMR Serverless a partir de la versión 6.15.0 de EMR.
Aprender más, consulte las subvenciones de acceso a S3 y Documentación EMR ¡Y no dudes en hacer cualquier pregunta en los comentarios!
Acerca del autor.
Damon Cortesi es un defensor principal de los desarrolladores de Amazon Web Services. Crea herramientas y contenido para ayudar a facilitar la vida de los ingenieros de datos. Cuando no está trabajando duro, todavía crea canales de datos y divide registros en su tiempo libre.
- Distribución de relaciones públicas y contenido potenciado por SEO. Consiga amplificado hoy.
- PlatoData.Network Vertical Generativo Ai. Empodérate. Accede Aquí.
- PlatoAiStream. Inteligencia Web3. Conocimiento amplificado. Accede Aquí.
- PlatoESG. Carbón, tecnología limpia, Energía, Ambiente, Solar, Gestión de residuos. Accede Aquí.
- PlatoSalud. Inteligencia en Biotecnología y Ensayos Clínicos. Accede Aquí.
- Fuente: https://aws.amazon.com/blogs/big-data/use-amazon-emr-with-s3-access-grants-to-scale-spark-access-to-amazon-s3/
- :posee
- :es
- :no
- :dónde
- $ UP
- 1
- 10
- 100
- 107
- 11
- 1232
- 15%
- 20
- 2018
- 500
- 7
- 8
- a
- Nuestra Empresa
- arriba
- de la máquina
- Gestión de Acceso
- Acceso a los datos
- accesible
- el acceso
- Mi Cuenta
- Cuentas
- reconocer
- a través de
- la columna Acción
- acciones
- adición
- dirección
- administrativo
- defensor
- de nuevo
- adelante
- Todos
- permitir
- permite
- a lo largo de
- también
- Amazon
- Amazon EC2
- Servicio Amazon Elastic Kubernetes
- EMR de Amazon
- Amazon Web Services
- an
- Analistas
- Analytics
- analizar
- y
- Anunciar
- Otra
- cualquier
- APACHE
- Apache Spark
- Aplicación
- aplicaciones
- aproximadamente
- arquitectura
- somos
- AS
- contacta
- asociado
- asumir
- At
- autorización
- Hoy Disponibles
- evitar
- AWS
- Formación en la nube de AWS
- Atrás
- base
- BE
- a las que has recomendado
- antes
- Comienzo
- a continuación
- beneficios
- mejores
- entre
- cada navegador
- construye
- pero
- .
- by
- PUEDEN
- case
- Reubicación
- el cambio
- Cambios
- comprobado
- Elige
- clic
- cliente
- Soluciones
- Médico
- código
- combinación
- combinar
- Algunos
- completar
- Completado
- integraciones
- Calcular
- configurado
- Configurando
- Contacto
- consumidor
- Clientes
- contenido
- continue
- control
- convertir
- Sector empresarial
- Correspondiente
- Precio
- Para crear
- creado
- crea
- Creamos
- Referencias
- personalizado
- Clientes
- datos
- acceso a los datos
- Descentralizado
- Predeterminado
- por defecto
- desplegar
- despliegue
- Developer
- una experiencia diferente
- directamente
- do
- documentación
- hecho
- DE INSCRIPCIÓN
- descargar
- conductor
- e
- cada una
- más fácil
- pasan fácilmente
- de forma sencilla
- efecto
- Eficaz
- aparición
- habilitar
- Punto final
- hacer cumplir
- ingeniero
- certificados
- Mejora
- garantizar
- ambientes
- error
- Éter (ETH)
- Incluso
- ejemplos
- ejecutar
- Otoño
- Moda
- sentir
- pocos
- Terrenos
- Archive
- archivos
- filtración
- Finalmente
- Encuentre
- acabado
- Nombre
- seguir
- siguiendo
- Gratis
- Desde
- futuras
- puerta
- generar
- obtener
- Donar
- Go
- va
- tiene
- conceder
- concedido
- subvenciones
- Grupo procesos
- Grupo
- práctico
- Difícil
- Tienen
- he
- ayuda
- altamente
- su
- Colmena
- Cómo
- Como Hacer
- HTML
- HTTPS
- i
- AMI
- ID
- identidades
- Identidad
- Gestión de identidad y acceso.
- ids
- if
- importar
- importante
- in
- cada vez más
- INSTRUMENTO individual
- información
- ejemplo
- integración
- interactivo
- Interfaz
- dentro
- Introducido
- IT
- Trabajos
- Empleo
- jpg
- solo
- Clave
- Kubernetes
- luego
- más reciente
- lanzamiento
- APRENDE:
- Abandonar
- como
- LIMITE LAS
- línea
- Vidas
- localmente
- Ubicación
- log
- Inicie sesión
- máquina
- el mantenimiento de
- para lograr
- gestionan
- Management
- administrar
- a mano
- muchos
- mapa
- cartografía
- Puede..
- malla
- minuto
- minutos
- más,
- múltiples
- debe
- nombre
- necesario
- ¿ Necesita ayuda
- del sistema,
- Nuevo
- Next
- no
- nota
- cuaderno
- ordenadores portátiles
- ahora
- of
- on
- una vez
- ONE
- , solamente
- habiertos
- Opciones
- or
- solicite
- organización
- Otro
- "nuestr
- salida
- salidas
- afuera
- EL DESARROLLADOR
- página
- parte
- particular
- Patrón de Costura
- .
- permiso
- permisos
- Colocar
- Platón
- Inteligencia de datos de Platón
- PlatónDatos
- satisfecho
- políticas
- política
- Publicación
- previamente
- Director de la escuela
- directores
- privada
- productor
- Productores
- proporcionar
- previsto
- proveedor
- los proveedores
- proporciona un
- proporcionando
- público
- propósito
- consultas
- Preguntas
- Búsqueda
- en comunicarse
- Leer
- Testimoniales
- se refiere
- región
- registrarse
- ,
- restante
- reemplazar
- solicita
- Requisitos
- Recurso
- Recursos
- respuesta
- resultante
- Función
- También soy miembro del cuerpo docente de World Extreme Medicine (WEM) y embajadora europea de igualdad para The Transformational Travel Council (TTC). En mi tiempo libre, soy una incansable aventurera, escaladora, patrona de día, buceadora y defensora de la igualdad de género en el deporte y la aventura. En XNUMX, fundé Almas Libres, una ONG nacida para involucrar, educar y empoderar a mujeres y niñas a través del deporte urbano, la cultura y la tecnología.
- Ruta
- Ejecutar
- corre
- mismo
- Guardar
- Escala
- guión
- escenarios
- alcance
- guión
- Segundo
- segundos
- Secreto
- Sección
- seguro
- EN LINEA
- ver
- selecciona
- Sin servidor
- de coches
- Servicios
- sesiones
- set
- pólipo
- Configure
- Compartir
- tienes
- Mostrar
- mostró
- mostrado
- lado
- similares
- sencillos
- sencillez
- simplifica
- circunstancias
- retazo
- So
- algo
- Fuente
- Spark
- soluciones y
- específicamente
- escisiones
- SQL
- montón
- Stacks
- fundó
- Comience a
- comienza
- Estado
- Posicionamiento
- Estado
- pasos
- Sin embargo
- STORAGE
- estudio
- enviar
- subredes
- comercial
- Soportado
- seguro
- te
- ¡Prepárate!
- toma
- plantilla
- temporal
- test
- esa
- La
- su
- luego
- Estas
- ellos
- así
- aquellos
- A través de esta formación, el personal docente y administrativo de escuelas y universidades estará preparado para manejar los recursos disponibles que derivan de la diversidad cultural de sus estudiantes. Además, un mejor y mayor entendimiento sobre estas diferencias y similitudes culturales permitirá alcanzar los objetivos de inclusión previstos.
- equipo
- a
- Traducción
- try
- dos
- tipo
- tipos
- ui
- bajo
- Enlance
- utilizan el
- usado
- Usuario
- usuarios
- usos
- usando
- utilizar
- propuesta de
- Valores
- versión
- vía
- Ver
- Virtual
- caminar
- a pie
- quiere
- Camino..
- we
- Tiempo
- web
- servicios web
- WELL
- ¿
- Que es
- cuando
- que
- mientras
- seguirá
- ventana
- Actividades:
- funciona
- escribir
- escritor
- yaml
- año
- Usted
- tú
- a ti mismo
- zephyrnet