Blog de Amazon Web Services (AWS)

Ciencia de datos como autoservicio usando Amazon SageMaker y AWS Service Catalog

Empresas de todos los tamaños están migrando a la nube de AWS. Los líderes de esos equipos empresariales están buscando una manera segura y económica de proporcionar acceso fácil a Amazon SageMaker para promover la experimentación con la ciencia de los datos y, así, desbloquear las nuevas oportunidades de negocios y cambiar la situación actual. En este blog te mostraremos cómo puedes habilitar la ciencia de datos segura y de autoservicio de manera fácil con Amazon SageMakerAWS Service Catalog y AWS Key Management Service (KMS).

Descripción de la solución

En este blog se explica cómo AWS Service Catalog utiliza una clave preconfigurada de AWS KMS para cifrar los datos en reposo en el volumen de almacenamiento de Machine Learning (ML) que está asociado a la instancia del notebook, sin exponer nunca los detalles complejos e innecesarios a los científicos de datos. El cifrado de volumen de almacenamiento de Machine Learning se garantiza con un producto de AWS Service Catalog preconfigurado creado y administrado por equipos centralizados de seguridad y/o de infraestructura.

Cuando crea endpoints, trabajos de entrenamiento e instancias de notebook de Amazon SageMaker, se puede especificar el ID de la clave de AWS KMS y esa clave se usará para cifrar los volúmenes de almacenamiento de Machine Learning asociados. Puedes especificar un bucket de Amazon S3 para almacenar los resultados de los trabajos de entrenamiento. Este bucket también puede ser cifrado con una clave administrada por AWS KMS. Puedes pasar el ID de la clave de KMS para almacenar los artefactos de modelos en ese bucket de Amazon S3 de los resultados.

Asociando una restricción de lanzamiento de AWS Service Catalog, los desarrolladores y científicos de datos pueden realizar el aprovisionamiento del producto sin necesidad de tener todos los permisos necesarios para desplegar la infraestructura definida en el producto. Esto mejora la seguridad porque permite asignar permisos mínimos o nulos de IAM a desarrolladores o científicos de datos y limita el alcance de los fallos. AWS Service Catalog también permite al equipo centralizado de infraestructura garantizar estándares de configuración en los servicios de AWS, y al mismo tiempo otorga a los equipos de desarrollo la flexibilidad para personalizar los recursos de AWS mediante el uso de parámetros al momento del lanzamiento.

El diagrama abajo se muestra cómo AWS Service Catalog asegura dos flujos de trabajo independientes para los administradores del sistema y para los desarrolladores o científicos de datos que trabajan con Amazon SageMaker.

Diagram

Dependiendo el rol que desempeñe, llevará a cabo tareas diferentes en el flujo de trabajo:

  1. Administrador: crea una plantilla de AWS CloudFormation que despliega la instancia del notebook de Amazon SageMaker.
  2. Administrador: crea una cartera de productos y un producto (la instancia del notebook de Amazon SageMaker) en AWS Service Catalog.
  3. Desarrollador o científico de datos: Identifica y lanza la instancia del notebook de Amazon SageMaker usando el producto de AWS Service Catalog
  4. Administrador (opcional): garantiza que los notebooks estén cifrados con los registros de Amazon CloudWatch y AWS CloudTrail.

Paso 1: Crear una plantilla de AWS CloudFormation

Abra un editor de texto, copie y pegue la siguiente plantilla de CloudFormation y  guárdela como un archivo nuevo.
Reemplaza el ID de la clave de AWS KMS que se utiliza para cifrar el volumen de almacenamiento de Machine Learning que está asociado a la instancia del notebook por el valor de su propia clave de AWS KMS ya aprovisionada en la misma región de AWS.

AWSTemplateFormatVersion: '2010-09-09'
Metadata: 
  License: Apache-2.0
Description: '@Author: Sanjay Garje. AWS CloudFormation Sample Template SageMaker NotebookInstance: This template demonstrates
  the creation of a SageMaker NotebookInstance with encryption. You will be billed for the AWS resources used if you create a stack from
  this template.'
Parameters:
  NotebookInstanceName:
    AllowedPattern: '[A-Za-z0-9-]{1,63}'
    ConstraintDescription: Maximum of 63 alphanumeric characters. Can include hyphens
      (-), but not spaces. Must be unique within your account in an AWS Region.
    Description: SageMaker Notebook instance name
    MaxLength: '63'
    MinLength: '1'
    Type: String
    Default: 'myNotebook'
  NotebookInstanceType:
    AllowedValues:
      - ml.t2.medium
    ConstraintDescription: Must select a valid notebook instance type.
    Default: ml.t2.medium
    Description: Select Instance type for the SageMaker Notebook
    Type: String
  KMSKeyId:
    Description: AWS KMS key ID used to encrypt data at rest on the ML storage volume attached to notebook instance.
    Type: String
    Default: 'Replace it with your KMSKeyId'
Resources:
  SageMakerRole: 
    Type: AWS::IAM::Role
    Properties:
      AssumeRolePolicyDocument:
        Version: 2012-10-17
        Statement:
          - Effect: Allow
            Principal:
              Service:
                - "sagemaker.amazonaws.com"
            Action:
              - "sts:AssumeRole"
      ManagedPolicyArns:
        - "arn:aws:iam::aws:policy/AmazonSageMakerFullAccess"
        - "arn:aws:iam::aws:policy/AmazonS3FullAccess"
        - "arn:aws:iam::aws:policy/IAMReadOnlyAccess"
  SageMakerNotebookInstance:
    Type: "AWS::SageMaker::NotebookInstance"
    Properties:
      KmsKeyId: !Ref KMSKeyId
      NotebookInstanceName: !Ref NotebookInstanceName
      InstanceType: !Ref NotebookInstanceType 
      RoleArn: !GetAtt SageMakerRole.Arn
Outputs:
  SageMakerNoteBookURL:
    Description: "URL for the newly created SageMaker Notebook Instance"
    Value: !Sub 'https://${AWS::Region}.console.aws.amazon.com/sagemaker/home?region=${AWS::Region}#/notebook-instances/openNotebook/${NotebookInstanceName}'
  SageMakerNoteBookTerminalURL:
    Description: "Terminal access URL for the newly created SageMaker Notebook Instance"
    Value: !Sub 'https://${NotebookInstanceName}.notebook.${AWS::Region}.sagemaker.aws/terminals/1'
  SageMakerNotebookInstanceARN:
    Description: "ARN for the newly created SageMaker Notebook Instance"

Paso 2: Crear una cartera de productos y un producto para crear instancias del notebook de Amazon SageMaker en AWS Service Catalog

Con el fin de ofrecer productos a los usuarios, comience creando una cartera para dichos productos. Para crear una cartera, siga las instrucciones detalladas en la documentación de AWS Service Catalog.

En la página Crear cartera de la consola de AWS Service Catalog, use los siguientes valores para crear la cartera:

  • Nombre de la cartera – ML Portfolio
  • Descripción – Machine Learning Portfolio
  • Propietario – IT

Machine Learning Portfolio

Proporcione detalles de TagOptions para estandarizar los valores de las etiquetas obligatorias.

AWS Service Catalog exige uno de los valores definidos como TagOptions cuando se lanza cualquier producto de la cartera. Para obtener más información, siga los enlaces de la Administración de TagOptions.

Biblioteca de TagOptions

Cree un nuevo producto siguiendo las instrucciones detalladas en la documentación de AWS Service Catalog. En la página de Productos de la consola de AWS Service Catalog, elija Cargar un nuevo producto y use los siguientes valores para crear el producto:

  • Nombre del producto: SageMaker Notebooks
  • Descripción: Notebooks para los científicos de datos
  • Propietario : IT
  • Distribuidor – opcional: Amazon Web Services

En la parte Detalles de la versión, seleccione Usar un archivo de plantilla, seleccione Elegir archivo, ubique el archivo deploy-sagemaker-notebook.template que guardó cuando configuró la plantilla de CloudFormation.

  • Título de la versión: 1.0
  • Descripción: Esta es la versión inicial de la habilitación de SageMaker Notebooks

Continúe y en la parte Detalles de soporte, escriba lo siguiente y, seleccione Revisar:

  • Email de contacto: una dirección de email válida
  • Enlace de soporte: http://it.org/support
  • Descripción de soporte: detalles de soporte para SageMaker Notebooks

En la página Revisar detalles del producto, elija Crear producto.

Revisar detalles del producto

Agregue el producto “SageMaker Notebooks” a una cartera de productos existente.

Seleccione Agregar un producto a la cartera.

Seleccione SageMaker Notebooks y, luego Agregar un producto a la cartera.

Lista de productos

Agregue el usuario final que necesita tener acceso a esta cartera de productos siguiendo los pasos que se mencionan aquí.

Paso 3: Iniciar sesión como un científico de datos o un desarrollador para lanzar el producto

Inicie sesión como usuario final científico de datos y seleccione Productos.

Seleccione Lanzar producto.

Lista de Productos

Lanzamiento del producto

Provea la información solicitada por los Parámetros.

Parametros

AWS Service Catalog completa automáticamente el TagOptions con la etiqueta Cost Center obligatoria.

Etiquetas

Las etiquetas son una funcionalidad muy poderosa que puede utilizar para optimizar los costos. Por ejemplo, puede escribir una función de AWS Lambda que detenga todas las instancias del notebook de Amazon SageMaker etiquetadas como ‘dev’ a las 18:00 h e iniciarlas de nuevo a las 8:00 h todos los días. Además, puede escribir una función de Lambda para mantenerlas detenidas durante los fines de semana. ¡Eso es optimizar costos! Aquí puede encontrar un ejemplo.

Revise todos los parámetros y seleccione Lanzar producto.

Se lanza el producto y su estado es “En progreso de cambio”. Después de que el estado cambie a “Disponible”

Detalles del Producto

Vaya a SageMaker Notebooks, donde debería ver el notebook que acaba de aprovisionar.

Instancia del producto

Seleccione el nombre del notebook para poder ver los detalles.

Configuracion del producto

Paso 4: Realizar la validación con la consola de AWS CloudTrail para asegurarse de que la clave de AWS KMS se utilice durante la creación de las instancias de bloc de notas

Logs

detalles del log

Conclusión

Los clientes pertenecientes a empresas de todos los tamaños solicitaron la habilitación con autoservicio de un entorno de Machine Learning para los científicos de datos que ofrezca el nivel adecuado de gobernabilidad. En este blog mostramos cómo AWS Service Catalog ahora ofrece una manera fácil de aplicar la gobernabilidad y la seguridad en el aprovisionamiento de notebooks de Amazon SageMaker. Con el uso de AWS Service Catalog, los administradores de Cloud pueden definir el nivel adecuado de controles y aplicar el cifrado de los datos junto con las etiquetas que se administran de forma centralizada para cualquier servicio de AWS utilizado por varios grupos de trabajo. Al mismo tiempo, los científicos de datos pueden lograr el autoservicio y mayor seguridad con solo lanzar una instancia del notebook de Amazon SageMaker a través de AWS Service Catalog.

Sobre los autores

Vebhhav SinghVebhhav (Veb) Singh es arquitecto de soluciones sénior en AWS radicado en San Francisco. Veb trabaja con algunos de los grandes clientes estratégicos de AWS. Le encanta jugar con la tecnología y encontrar soluciones simples para resolver problemas complejos. Veb es un apasionado de la hidroponía. Gracias a AWS IoT, la informática sin servidor y el Machine Learning, ha creado un invernadero completamente automatizado con más de 20 microcontroladores. En su invernadero, las verduras de hoja verde y las fresas están disponibles durante todo el año. Le encanta viajar con su familia a nuevos destinos todos los años.
Sanjay GarjeSanjay Garje lidera el desarrollo empresarial técnico de la región oeste de EE. UU. para AWS Service Catalog y AWS Control Tower. Sanjay es un líder tecnológico apasionado que se siente orgulloso de poder ayudar a los clientes en su traspaso a la nube de AWS, enseñándoles cómo pueden transformar el negocio y los resultados tecnológicos. En su tiempo libre, Sanjay disfruta de correr, aprender nuevas cosas, enseñar las tecnologías de Cloud y de big data en SJSU, además de viajar a nuevos destinos con su familia.
Oscar CarrasqueroOscar Carrasquero es un arquitecto de soluciones especialista en AWS Marketplace y Control Services viviendo en Alemania. Se apasiona por la tecnología y disfruta la combinación de negocio y tecnología para ofrecer soluciones a problemas reales. Fuera del trabajo pasa la mayoría de su tiempo con su familia.