La seguridad en la nube en AWS es la máxima prioridad. Estudio Amazon SageMaker ofrece varios mecanismos para proteger sus datos y código mediante la integración con los servicios de seguridad de AWS como Gestión de identidades y accesos de AWS (ESTOY), Servicio de administración de claves de AWS (AWS KMS), o aislamiento de red con Nube privada virtual de Amazon (VPC de Amazon).
Los clientes en industrias altamente reguladas, como los servicios financieros, pueden configurar Studio solo en VPC para habilitar el aislamiento de la red y deshabilitar el acceso a Internet desde las notebooks de Studio. Puede usar la integración de IAM con Studio para controlar qué usuarios tienen acceso a recursos como notebooks de Studio, el IDE de Studio o Amazon SageMaker trabajos de formación.
Un caso de uso popular es restringir el acceso al IDE de Studio solo a usuarios dentro de un rango de CIDR de red específico o una VPC designada. Puede lograr esto implementando Políticas de SageMaker basadas en identidad de IAM y adjuntando esas políticas a los usuarios o grupos de IAM que requieren esos permisos. Sin embargo, el dominio de SageMaker debe configurarse con Modo de autenticación de IAM, porque las políticas basadas en identidad de IAM no se admiten en Inicio de sesión único de AWS (SSO) modo de autenticación.
Muchos clientes usan AWS SSO para habilitar el control centralizado de la identidad de la fuerza laboral y brindar una experiencia de inicio de sesión de usuario uniforme. Esta publicación muestra cómo implementar este caso de uso manteniendo las capacidades de AWS SSO para acceder a Studio.
Resumen de la solución
Cuando configura un dominio de SageMaker en modo de solo VPC y especifica las subredes y los grupos de seguridad, SageMaker crea interfaces de red elásticas (ENI) que están asociados con sus grupos de seguridad en las subredes especificadas. Los ENI permiten que sus contenedores de capacitación se conecten a recursos en su VPC.
En este modo, el acceso directo a Internet desde las computadoras portátiles está completamente deshabilitado y todo el tráfico se enruta a través de un ENI en su VPC privada. Esto también incluye el tráfico de los widgets e interfaces de la interfaz de usuario de Studio, como la gestión de experimentos, el piloto automático y el monitor de modelos, a sus respectivas API de back-end de SageMaker. AWS recomienda utilizar el modo de solo VPC para ejercer un control detallado sobre el acceso a la red de Studio.
El primer desafío es que, aunque Studio se implementa sin conexión a Internet, aún se puede acceder a Studio IDE desde cualquier lugar, suponiendo que se tenga acceso a la Consola de administración de AWS y Studio se otorga a una entidad principal de IAM. Esta situación no es aceptable si desea aislar completamente Studio de una red pública y contener todas las comunicaciones dentro de una VPC privada estrictamente controlada.
Para abordar este desafío y deshabilitar cualquier acceso a Studio IDE excepto desde una VPC designada o un rango CIDR, puede usar el CrearPresignedDomainUrl API de SageMaker. El rol o el usuario de IAM que se utiliza para llamar a esta API define los permisos para acceder a Studio. Ahora puede usar políticas basadas en identidad de IAM para implementar la configuración de acceso deseada. Por ejemplo, para habilitar el acceso solo desde una VPC designada, agregue la siguiente condición a la política de IAM, asociada con un principal de IAM, que se utiliza para generar una URL de dominio prefirmada:
Para habilitar el acceso solo desde un punto de enlace o puntos de enlace de la VPC designados, especifique la siguiente condición:
Utilice la siguiente condición para restringir el acceso desde un rango CIDR designado:
El segundo desafío es que el control de acceso basado en IAM solo funciona cuando el dominio de SageMaker está configurado en el modo de autenticación de IAM; no puede usarlo cuando el dominio de SageMaker se implementa en modo AWS SSO. La siguiente sección muestra cómo abordar estos desafíos e implementar un control de acceso basado en IAM con acceso de AWS SSO a Studio.
Descripción de la arquitectura
Studio se publica como una aplicación SAML, que se asigna a un perfil de usuario específico de SageMaker Studio. Los usuarios pueden acceder cómodamente a Studio directamente desde el portal de AWS SSO, como se muestra en la siguiente captura de pantalla.
La solución se integra con un aplicación SAML 2.0 personalizada como mecanismo para activar la autenticación de usuario para Studio. Requiere que la aplicación SAML personalizada esté configurada con el Puerta de enlace API de Amazon URL de punto final como su Servicio de consumidor de aserción (ACS), y necesita atributos de mapeo que contengan el ID de usuario de AWS SSO, así como el ID de dominio de SageMaker.
El extremo de API Gateway llama a un AWS Lambda función que analiza la respuesta SAML para extraer el ID de dominio y el ID de usuario y usarlos para generar una URL prefirmada por Studio. La función Lambda finalmente realiza una redirección a través de una respuesta HTTP 302 para iniciar sesión en el usuario en Studio.
Una política de IAM controla el entorno de red desde el que los usuarios de Studio pueden iniciar sesión, lo que incluye las condiciones de restricción, como se describe en la sección anterior. Esta política de IAM se adjunta a la función de Lambda. La política de IAM contiene un permiso para llamar al sagemaker:CreatePresignedDomainURL
API solo para un perfil de usuario específico:
El siguiente diagrama muestra la arquitectura de la solución.
La solución implementa un dominio de SageMaker en su VPC privada y Extremos de VPC para acceder a Studio, el tiempo de ejecución de SageMaker y la API de SageMaker a través de una conexión privada sin necesidad de una puerta de enlace a Internet. Los puntos de enlace de la VPC están configurados con DNS privado habilitado (PrivateDnsEnabled=True
) para asociar un zona hospedada privada con su VPC. Esto permite que Studio acceda a la API de SageMaker utilizando el nombre de DNS público predeterminado. api.sagemaker.<Region>.amazonaws.com
resuelto en la dirección IP privada del punto de enlace en lugar de usar la URL del punto de enlace de la VPC.
Debe agregar puntos de enlace de VPC a su VPC si desea acceder a cualquier otro servicio de AWS como Servicio de almacenamiento simple de Amazon (Amazon S3), Registro de contenedores elásticos de Amazon (Amazon ECR), Servicio de token de seguridad de AWS (AWS STS), Formación en la nube de AWSo Compromiso de código de AWS.
Puede controlar completamente los permisos utilizados para generar la URL prefirmada y cualquier otra llamada API con políticas de IAM adjuntas al rol de ejecución de la función Lambda o controlar el acceso a cualquier servicio de AWS utilizado a través de Políticas de puntos de enlace de VPC. Para ver ejemplos del uso de políticas de IAM para controlar el acceso a la API de Studio y SageMaker, consulte Controle el acceso a la API de SageMaker mediante políticas basadas en identidad.
Aunque la solución requiere que el dominio de Studio se implemente en modo IAM, permite que AWS SSO se use como mecanismo para que los usuarios finales inicien sesión en Studio.
Las siguientes subsecciones contienen descripciones detalladas de los principales componentes de la solución.
API Gateway
El extremo de API Gateway actúa como el destino de la URL de ACS de la aplicación configurada en la aplicación SAML 2.0 personalizada. El punto final es privado y tiene un recurso llamado /saml
y un método POST con solicitud de integración configurado como proxy Lambda. La solución utiliza un punto de enlace de la VPC con una configuración com.amazonaws.<region>.execute-api
Nombre de DNS para llamar a este punto de enlace de API desde dentro de la VPC.
SSO de AWS
Una aplicación SAML 2.0 personalizada está configurada con la URL del punto final de API Gateway https:/{ restapi-id}.execute-api.amazonaws.com/saml
como su URL de ACS de aplicación, y utiliza asignaciones de atributos con los siguientes requisitos:
- Identificador de usuario:
- Atributo de usuario en la aplicación - nombre de usuario
- Atributo de usuario de Maps en AWS SSO –
${user:AD_GUID}
- Identificador de ID de dominio de SageMaker:
- Atributo de usuario en la aplicación –
domain-id
- Atributo de usuario de Maps en AWS SSO – ID de dominio para la instancia de Studio
- Atributo de usuario en la aplicación –
La aplicación implementa el control de acceso para un usuario de AWS SSO mediante el aprovisionamiento de un perfil de usuario de Studio con el nombre igual al ID de usuario de AWS SSO.
función lambda
La solución configura una función Lambda como punto de invocación para API Gateway /saml
recurso. La función analiza el SAMLResponse
enviado por AWS SSO, extrae el domain-id
así como el nombre de usuario, y llama al createPresignedDomainUrl
API de SageMaker para recuperar la URL y el token de Studio y redirigir al usuario para que inicie sesión mediante una respuesta HTTP 302. La función Lambda tiene una política de IAM específica adjunta a su rol de ejecución que permite que sagemaker:createPresignedDomainUrl
acción solo cuando se solicita desde un rango de CIDR de red específico usando el VpcSourceIp
condición.
La función Lambda no tiene ninguna lógica para validar la respuesta SAML, por ejemplo, para comprobar una firma. Sin embargo, debido a que el punto final de API Gateway que actúa como ACS es privado o solo interno, no es obligatorio para este entorno de prueba de concepto.
Implementar la solución
El Repositorio GitHub proporciona el código fuente completo para la solución integral.
Para implementar la solución, debe tener permisos de administrador (o usuario avanzado) para una cuenta de AWS e instalar el Interfaz de línea de comandos de AWS (AWS CLI) y CLI de SAM de AWS y mínimo 3.8 Python.
La solución admite la implementación en tres regiones de AWS: eu-west-1
, eu-central-1
y us-east-1
. Asegúrese de seleccionar una de estas regiones para la implementación.
Para comenzar a probar la solución, debe completar los siguientes pasos de implementación de la solución Archivo README de GitHub:
- Configure AWS SSO si no lo tiene configurado.
- Implemente la solución mediante la aplicación SAM.
- Cree una nueva aplicación SAML 2.0 personalizada.
Después de completar los pasos de implementación, puede continuar con la prueba de la solución.
Prueba la solución
La solución simula dos casos de uso para demostrar el uso de las políticas basadas en identidad de AWS SSO y SageMaker:
- Caso de uso positivo – Un usuario accede a Studio desde un rango de CIDR designado a través de un punto de enlace de la VPC
- caso de uso negativo – Un usuario accede a Studio desde una dirección IP pública
Para probar estos casos de uso, la solución creó tres Nube informática elástica de Amazon (Amazon EC2) instancias:
- Anfitrión privado – Una instancia EC2 de Windows en una subred privada que puede acceder a Studio (su entorno seguro local)
- host bastión – Una instancia EC2 Linux en la subred pública utilizada para establecer un túnel SSH en el host privado en la red privada
- Anfitrión público – Una instancia EC2 de Windows en una subred pública para demostrar que el usuario no puede acceder a Studio desde una dirección IP no autorizada
Pruebe el acceso a Studio desde una red autorizada
Siga estos pasos para realizar la prueba:
- Para acceder a la instancia EC2 de Windows en la red privada, ejecute el comando proporcionado como el valor de la clave de salida SAM
TunnelCommand
. Asegúrese de que la clave privada del par de claves especificado en el parámetro esté en el directorio desde donde se ejecuta el comando del túnel SSH. El comando crea un Túnel SSH desde la computadora local enlocalhost:3389
a la instancia EC2 de Windows en la red privada. Consulte el siguiente código de ejemplo: - En su computadora de escritorio o portátil local, abra una nueva conexión RDP (por ejemplo, usando Microsoft Remote Desktop) usando
localhost
como host remoto de destino. Esta conexión se canaliza a través del host bastión a la instancia privada de Windows EC2. Usa el nombre de usuarioAdministrator
y contraseña de la salida de la pilaSageMakerWindowsPassword
. - Abra el navegador web Firefox desde el escritorio remoto.
- Navegue e inicie sesión en el portal de AWS SSO con las credenciales asociadas con el nombre de usuario que especificó como el
ssoUserName
parámetro. - Elija el Demostración segura de SageMaker Aplicación de AWS SSO desde el portal de AWS SSO.
Será redirigido al IDE de Studio en una nueva ventana del navegador.
Pruebe el acceso a Studio desde una red no autorizada
Ahora siga estos pasos para simular el acceso desde una red no autorizada:
- Abra una nueva conexión RDP en la IP proporcionada en el
SageMakerWindowsPublicHost
Salida SAML. - Abra el navegador web Firefox desde el escritorio remoto.
- Navegue e inicie sesión en el portal de AWS SSO utilizando las credenciales asociadas con el nombre de usuario que se especificó como el
ssoUserName
parámetro. - Elija el Demostración segura de SageMaker Aplicación de AWS SSO desde el portal de AWS SSO.
Esta vez recibe un mensaje de acceso no autorizado.
Limpiar
Para evitar cargos, debe eliminar todos los recursos proporcionados por la solución y creados manualmente de su cuenta de AWS. Siga las instrucciones en la solución Archivo README.
Conclusión
Demostramos que al introducir una capa de autenticación de middleware entre el usuario final y Studio, podemos controlar el entorno desde el que el usuario puede acceder a Studio y bloquear explícitamente todos los demás entornos no autorizados.
Para reforzar aún más la seguridad, puede agregar una política de IAM a un rol de usuario para evitar el acceso a Studio desde la consola. Si utiliza Organizaciones de AWS, puede implementar lo siguiente política de control de servicios para las unidades organizativas o las cuentas que necesitan acceso a Studio:
Aunque la solución descrita en esta publicación utiliza API Gateway y Lambda, puede explorar otras formas, como una instancia EC2 con un rol de instancia usando el mismo flujo de trabajo de validación de permisos que se describe o incluso un sistema independiente para manejar la autenticación y autorización del usuario y generar una URL prefirmada por Studio.
Seguí leyendo
Asegurar el acceso a Studio es un tema de investigación activo, y hay otras publicaciones relevantes sobre enfoques similares. Consulte las siguientes publicaciones en el Blog de aprendizaje automático de AWS para obtener más información sobre otros servicios y arquitecturas que puede utilizar:
Acerca de los autores
Jerónimo Bachelet es arquitecto de soluciones en Amazon Web Services. Le encanta ayudar a los clientes a obtener el máximo valor de AWS para lograr sus objetivos comerciales. Jerome tiene más de 10 años de experiencia trabajando con soluciones de seguridad y protección de datos. Además de estar en la nube, Jerome disfruta de los viajes y el tiempo de calidad con su esposa y sus 2 hijas en el área de Ginebra, Suiza.
Yevgueniy Ilyin es arquitecto de soluciones en AWS. Tiene más de 20 años de experiencia trabajando en todos los niveles de desarrollo de software y arquitectura de soluciones y ha utilizado lenguajes de programación desde COBOL y Assembler hasta .NET, Java y Python. Desarrolla y codifica soluciones nativas en la nube con un enfoque en big data, análisis e ingeniería de datos.
- '
- "
- 100
- 7
- 9
- Nuestra Empresa
- de la máquina
- Mi Cuenta
- la columna Acción
- lector activo
- dirección
- Todos
- Amazon
- Amazon EC2
- Amazon SageMaker
- Amazon Web Services
- Analytics
- abejas
- API
- Aplicación
- arquitectura
- Reservada
- Autenticación
- autorización
- piloto automático
- AWS
- "Ser"
- Big Data
- Blog
- cada navegador
- llamar al
- cases
- Reto
- retos
- cargos
- Soluciones
- nativo de la nube
- código
- Comunicación
- Calcular
- Configuración
- conexión
- Conectividad
- Consola
- consumidor
- Envase
- Contenedores
- Referencias
- Clientes
- datos
- protección de datos
- seguridad de datos
- Desarrollo
- dns
- No
- efecto
- Punto final
- Ingeniería
- Entorno
- ejemplo
- ejecución
- Haz ejercicio
- experience
- experimento
- Extractos
- Finalmente
- financiero
- servicios financieros
- Firefox
- Nombre
- Focus
- seguir
- ser completados
- función
- generar
- gif
- Cómo
- Como Hacer
- HTTPS
- AMI
- Identidad
- implementar
- implementación
- industrias
- integración
- Internet
- IP
- Dirección IP
- solo
- IT
- Java
- Empleo
- acuerdo
- Clave
- Idiomas
- APRENDE:
- aprendizaje
- línea
- Linux
- local
- máquina de aprendizaje
- Management
- Microsoft
- modelo
- red
- del sistema,
- Acceso a la red
- ordenadores portátiles
- Ofertas
- habiertos
- Otro
- Contraseña
- políticas
- política
- Popular
- Portal
- Artículos
- industria
- Director de la escuela
- privada
- clave privada
- Mi Perfil
- Programación
- lenguajes de programación
- prueba
- prueba de concepto
- proteger
- Protección
- proporcionar
- proporciona un
- apoderado
- público
- Python
- calidad
- distancia
- reorientar
- Requisitos
- la investigación
- Recurso
- Recursos
- respuesta
- Ejecutar
- sabio
- EN LINEA
- Servicios
- servicio
- set
- similares
- sencillos
- Software
- Desarrollo de software ad-hoc
- Soluciones
- comienzo
- Posicionamiento
- STORAGE
- Soportado
- soportes
- Suiza
- te
- Target
- test
- Pruebas
- 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
- ficha
- tráfico
- Formación
- ui
- usuarios
- propuesta de
- Virtual
- web
- navegador web
- servicios web
- ventanas
- dentro de
- sin
- flujo de trabajo
- Empleados
- funciona
- años