Seguridad y permisos - Amazon SageMaker

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.

Seguridad y permisos

Cuando consulta datos de Athena o Amazon Redshift, el conjunto de datos consultado se almacena automáticamente en el bucket de S3 SageMaker predeterminado de la región en AWS la que utiliza Studio Classic. Además, cuando exporta un Jupyter Notebook desde Amazon SageMaker Data Wrangler y lo ejecuta, sus flujos de datos, o archivos.flow, se guardan en el mismo depósito predeterminado, con el prefijo data_wrangler_flows.

Para necesidades de seguridad de alto nivel, puede configurar una política de bucket que restrinja los roles que tienen acceso a este bucket de S3 predeterminado. AWS SageMaker Use la siguiente sección para agregar este tipo de política a un bucket de S3. Para seguir las instrucciones de esta página, usa el AWS Command Line Interface (AWS CLI). Para obtener información sobre cómo hacerlo, consulte Configuración de AWS CLI en la Guía del IAM usuario.

Además, debes conceder permisos a cada IAM rol que utilice Data Wrangler para acceder a los recursos necesarios. Si no necesitas permisos detallados para el IAM rol que utilizas para acceder a Data Wrangler, puedes añadir la política IAM gestionada a un IAM rol que utilices para crear tu usuario de Studio Classic. AmazonSageMakerFullAccess Esta política le otorga pleno permiso para usar Data Wrangler. Si necesita permisos más detallados, consulte la sección Otorgue un permiso a un IAM rol para usar Data Wrangler.

Adición de una política de bucket para restringir el acceso a los conjuntos de datos importados a Data Wrangler

Puede agregar una política al bucket de S3 que contenga sus recursos de Data Wrangler mediante una política de bucket de Amazon S3. Entre los recursos que Data Wrangler carga en tu depósito de SageMaker S3 predeterminado en la AWS región en la que utilizas Studio Classic se incluyen los siguientes:

  • Resultados de la consulta de Amazon Redshift. Se almacenan con el prefijo redshift/.

  • Resultados de la consulta de Athena. Se almacenan con el prefijo athena/.

  • Los archivos .flow que se cargan en Amazon S3 al ejecutar un cuaderno de Jupyter exportado que produce Data Wrangler. Se almacenan con el prefijo data_wrangler_flows/.

Utilice el siguiente procedimiento para crear una política de bucket de S3 que pueda añadir para restringir el acceso de los IAM roles a ese bucket. Para obtener información acerca de cómo agregar una política a un bucket de S3, consulte How do I add an S3 Bucket policy?

Para configurar una política de bucket en el bucket de S3 que almacena sus recursos de Data Wrangler:
  1. Configure uno o más IAM roles a los que desee que puedan acceder a Data Wrangler.

  2. Abra un intérprete de comandos o símbolo del sistema. Para cada rol que cree, reemplace role-name por el nombre del rol y ejecute lo siguiente:

    $ aws iam get-role --role-name role-name

    En la respuesta, verá una cadena RoleId que comienza con AROA. Copie esta cadena.

  3. Añada la siguiente política al depósito SageMaker predeterminado de la AWS región en la que utilice Data Wrangler. Reemplazar region con la AWS región en la que se encuentra el depósito, y account-id con tu ID AWS de cuenta. Sustituya userId s empezando por AROAEXAMPLEID por el IDs de cualquier AWS rol al que desee conceder permiso para usar Data Wrangler.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Principal": "*", "Action": "s3:*", "Resource": [ "arn:aws:s3:::sagemaker-region-account-id/data_wrangler_flows/", "arn:aws:s3:::sagemaker-region-account-id/data_wrangler_flows/*", "arn:aws:s3:::sagemaker-region-account-id/athena", "arn:aws:s3:::sagemaker-region-account-id/athena/*", "arn:aws:s3:::sagemaker-region-account-id/redshift", "arn:aws:s3:::sagemaker-region-account-id/redshift/*" ], "Condition": { "StringNotLike": { "aws:userId": [ "AROAEXAMPLEID_1:*", "AROAEXAMPLEID_2:*" ] } } } ] }

Creación de una lista de permisos para Data Wrangler

Cada vez que un usuario comienza a ejecutar Data Wrangler desde la interfaz de usuario de Amazon SageMaker Studio Classic, llama a la interfaz de programación de aplicaciones (API) para crear una SageMaker aplicación Data Wrangler.

Es posible que su organización no otorgue a sus usuarios permisos para realizar esas API llamadas de forma predeterminada. Para conceder permisos, debe crear y adjuntar una política a las IAM funciones del usuario mediante la siguiente plantilla de políticas: Ejemplo de lista de permisos de Data Wrangler.

nota

El ejemplo de política anterior solo permite a sus usuarios acceder a la aplicación Data Wrangler.

Para obtener información sobre la creación de una política, consulte Creación de políticas en la JSON pestaña. Al crear una política, copie y pegue la JSON política del ejemplo de lista de permitidos de Data Wrangler en la JSONpestaña.

importante

Elimine cualquier IAM política que impida a los usuarios ejecutar las siguientes operaciones:

Si no elimina las políticas, es posible que los usuarios sigan afectados por ellas.

Después de crear la política con la plantilla, adjúntela a las IAM funciones de los usuarios. Para obtener información sobre cómo adjuntar una política, consulte Añadir permisos de IAM identidad (consola).

Otorgue un permiso a un IAM rol para usar Data Wrangler

Puede conceder un permiso a un IAM rol para usar Data Wrangler con la política de gestión generalIAM,. AmazonSageMakerFullAccess Se trata de una política general que incluye los permisos necesarios para utilizar todos los SageMaker servicios. Esta política otorga a un IAM usuario acceso total a Data Wrangler. Debe tener en cuenta lo siguiente si utiliza AmazonSageMakerFullAccess para conceder acceso a Data Wrangler:

  • Si importa datos de Amazon Redshift, el nombre del Usuario de la base de datos debe tener el prefijo sagemaker_access.

  • Esta política administrada solo otorga permiso para acceder a los buckets con uno de los siguientes nombres: SageMaker, SageMaker, sagemaker o aws-glue. Si quieres usar Data Wrangler para importar desde un bucket de S3 sin estas frases en el nombre, consulta la última sección de esta página para obtener información sobre cómo conceder permiso a una IAM entidad para acceder a tus buckets de S3.

Si tiene necesidades de alta seguridad, puede adjuntar las políticas de esta sección a una IAM entidad para conceder los permisos necesarios para usar Data Wrangler.

Si tiene conjuntos de datos en Amazon Redshift o Athena que IAM un rol necesita importar desde Data Wrangler, debe añadir una política a esa entidad para acceder a estos recursos. Las siguientes políticas son las más restrictivas que puede utilizar para conceder permiso a un IAM rol para importar datos de Amazon Redshift y Athena.

Para obtener información sobre cómo asociar una política personalizada a un IAM rol, consulte Administración de IAM políticas en la Guía del IAM usuario.

Ejemplo de política para conceder acceso a la importación de un conjunto de datos de Athena

La siguiente política supone que el IAM rol tiene permiso para acceder al depósito de S3 subyacente donde se almacenan los datos mediante una IAM política independiente.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "athena:ListDataCatalogs", "athena:ListDatabases", "athena:ListTableMetadata", "athena:GetQueryExecution", "athena:GetQueryResults", "athena:StartQueryExecution", "athena:StopQueryExecution" ], "Resource": [ "*" ] }, { "Effect": "Allow", "Action": [ "glue:CreateTable" ], "Resource": [ "arn:aws:glue:*:*:table/*/sagemaker_tmp_*", "arn:aws:glue:*:*:table/sagemaker_featurestore/*", "arn:aws:glue:*:*:catalog", "arn:aws:glue:*:*:database/*" ] }, { "Effect": "Allow", "Action": [ "glue:DeleteTable" ], "Resource": [ "arn:aws:glue:*:*:table/*/sagemaker_tmp_*", "arn:aws:glue:*:*:catalog", "arn:aws:glue:*:*:database/*" ] }, { "Effect": "Allow", "Action": [ "glue:GetDatabases", "glue:GetTable", "glue:GetTables" ], "Resource": [ "arn:aws:glue:*:*:table/*", "arn:aws:glue:*:*:catalog", "arn:aws:glue:*:*:database/*" ] }, { "Effect": "Allow", "Action": [ "glue:CreateDatabase", "glue:GetDatabase" ], "Resource": [ "arn:aws:glue:*:*:catalog", "arn:aws:glue:*:*:database/sagemaker_featurestore", "arn:aws:glue:*:*:database/sagemaker_processing", "arn:aws:glue:*:*:database/default", "arn:aws:glue:*:*:database/sagemaker_data_wrangler" ] } ] }

Ejemplo de política para conceder acceso a la importación de un conjunto de datos de Amazon Redshift

La siguiente política concede permiso para configurar una conexión de Amazon Redshift con Data Wrangler mediante usuarios de bases de datos que tengan el prefijo sagemaker_access en el nombre. Para conceder el permiso de conexión mediante usuarios de bases de datos adicionales, agregue entradas adicionales bajo "Resources" en la siguiente política. La siguiente política supone que el IAM rol tiene permiso para acceder al depósito de S3 subyacente donde se almacenan los datos mediante una IAM política independiente, si corresponde.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "redshift-data:ExecuteStatement", "redshift-data:DescribeStatement", "redshift-data:CancelStatement", "redshift-data:GetStatementResult", "redshift-data:ListSchemas", "redshift-data:ListTables" ], "Resource": [ "*" ] }, { "Effect": "Allow", "Action": [ "redshift:GetClusterCredentials" ], "Resource": [ "arn:aws:redshift:*:*:dbuser:*/sagemaker_access*", "arn:aws:redshift:*:*:dbname:*" ] } ] }

Política para conceder acceso a un bucket de S3

Si su conjunto de datos está almacenado en Amazon S3, puede conceder un permiso de IAM rol para acceder a este bucket con una política similar a la siguiente. Este ejemplo otorga acceso programático de lectura y escritura al bucket denominado test.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": ["s3:ListBucket"], "Resource": ["arn:aws:s3:::test"] }, { "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:DeleteObject" ], "Resource": ["arn:aws:s3:::test/*"] } ] }

Para importar datos de Athena y Amazon Redshift, debe conceder IAM un permiso de rol para acceder a los siguientes prefijos en el bucket de Amazon S3 predeterminado en AWS la región donde se utiliza el Data Wrangler:,. athena/ redshift/ Si aún no existe un bucket de Amazon S3 predeterminado en la AWS región, también debes conceder permiso al IAM rol para crear un bucket en esta región.

Además, si quieres que el IAM rol pueda usar las opciones de exportación de trabajos de Amazon SageMaker Feature Store, Pipelines y Data Wrangler, debes conceder acceso al prefijo data_wrangler_flows/ de este grupo.

Data Wrangler utiliza los prefijos athena/ y redshift/ para almacenar los archivos de vista previa y conjuntos de datos importados. Para obtener más información, consulte Almacenamiento de datos importados.

Data Wrangler usa el prefijo data_wrangler_flows/ para almacenar archivos .flow cuando ejecuta un cuaderno de Jupyter exportado desde Data Wrangler. Para obtener más información, consulte Exportar.

Utilice una política similar a la siguiente para conceder los permisos descritos en los párrafos anteriores.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject" ], "Resource": [ "arn:aws:s3:::sagemaker-region-account-id/data_wrangler_flows/", "arn:aws:s3:::sagemaker-region-account-id/data_wrangler_flows/*", "arn:aws:s3:::sagemaker-region-account-id/athena", "arn:aws:s3:::sagemaker-region-account-id/athena/*", "arn:aws:s3:::sagemaker-region-account-id/redshift", "arn:aws:s3:::sagemaker-region-account-id/redshift/*" ] }, { "Effect": "Allow", "Action": [ "s3:CreateBucket", "s3:ListBucket" ], "Resource": "arn:aws:s3:::sagemaker-region-account-id" }, { "Effect": "Allow", "Action": [ "s3:ListAllMyBuckets", "s3:GetBucketLocation" ], "Resource": "*" } ] }

También puede acceder a los datos de su bucket de Amazon S3 desde otra AWS cuenta especificando el bucket de Amazon S3URI. Para ello, la IAM política que concede acceso al depósito de Amazon S3 de la otra cuenta debe utilizar una política similar a la del siguiente ejemplo, en la que BucketFolder se encuentra el directorio específico del depósito del usuarioUserBucket. Esta política debe añadirse al usuario que conceda acceso a su bucket a otro usuario.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject", "s3:PutObjectAcl" ], "Resource": "arn:aws:s3:::UserBucket/BucketFolder/*" }, { "Effect": "Allow", "Action": [ "s3:ListBucket" ], "Resource": "arn:aws:s3:::UserBucket", "Condition": { "StringLike": { "s3:prefix": [ "BucketFolder/*" ] } } } ] }

El usuario que accede al bucket (no el propietario del bucket) debe agregar a su usuario una política similar a la del siguiente ejemplo. Tenga en cuenta que AccountX y TestUser a continuación se refieren al propietario del bucket y a su usuario, respectivamente.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::AccountX:user/TestUser" }, "Action": [ "s3:GetObject", "s3:PutObject", "s3:PutObjectAcl" ], "Resource": [ "arn:aws:s3:::UserBucket/BucketFolder/*" ] }, { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::AccountX:user/TestUser" }, "Action": [ "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::UserBucket" ] } ] }

Ejemplo de política para conceder acceso al uso de SageMaker Studio

Usa una política como la siguiente para crear un rol de IAM ejecución que se pueda usar para configurar una instancia de Studio Classic.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sagemaker:CreatePresignedDomainUrl", "sagemaker:DescribeDomain", "sagemaker:ListDomains", "sagemaker:DescribeUserProfile", "sagemaker:ListUserProfiles", "sagemaker:*App", "sagemaker:ListApps" ], "Resource": "*" } ] }

Snowflake y Data Wrangler

Todos los permisos de AWS los recursos se administran mediante el IAM rol asociado a la instancia de Studio Classic. El administrador de Snowflake administra los permisos específicos de Snowflake, ya que puede conceder permisos y privilegios detallados a cada usuario de Snowflake. Esto incluye bases de datos, esquemas, tablas, almacenes y objetos de integración de almacenamiento. Debe asegurarse de que los permisos correctos estén configurados fuera de Data Wrangler.

Tenga en cuenta que el COPY INTO Amazon S3 comando Snowflake mueve los datos de Snowflake a Amazon S3 a través de la Internet pública de forma predeterminada, pero los datos en tránsito se protegen mediante. SSL Los datos en reposo de Amazon S3 se cifran conSSE, KMS utilizando la opción predeterminada AWS KMS key.

Con respecto al almacenamiento de credenciales de Snowflake, Data Wrangler no almacena las credenciales de los clientes. Data Wrangler usa Secrets Manager para almacenar las credenciales en un secreto y rota los secretos como parte de un plan de seguridad basado en las prácticas recomendadas. El administrador de Snowflake o Studio Classic debe asegurarse de que el rol de ejecución del científico de datos en Studio Classic cuente con permiso para trabajar con GetSecretValue el secreto que almacena las credenciales. Si ya está asociada a la función de ejecución de Studio Classic, la AmazonSageMakerFullAccess política tiene los permisos necesarios para leer los secretos creados por Data Wrangler y los secretos creados siguiendo la convención de nomenclatura y etiquetado de las instrucciones anteriores. Se debe conceder acceso por separado a los secretos que no sigan las convenciones. Recomendamos usar Secrets Manager para evitar compartir las credenciales a través de canales no seguros; sin embargo, tenga en cuenta que un usuario que haya iniciado sesión puede recuperar la contraseña de texto sin formato iniciando una terminal o un bloc de notas Python en Studio Classic y, a continuación, invocando las llamadas API desde el Secrets Manager. API

Cifrado de datos con AWS KMS

En Data Wrangler, puede descifrar archivos cifrados y agregarlos a su flujo de Data Wrangler. También puede cifrar el resultado de las transformaciones utilizando una AWS KMS clave predeterminada o una que usted proporcione.

Puede importar archivos si tienen:

  • cifrado del servidor

  • SSE- KMS como tipo de cifrado

Para descifrar el archivo e importarlo a un flujo de Data Wrangler, debe añadir el usuario de SageMaker Studio Classic que está utilizando como usuario clave.

La siguiente captura de pantalla muestra un rol de usuario de Studio Classic agregado como usuario clave. Consulte IAMFunciones para acceder a los usuarios en el panel izquierdo para realizar este cambio.

La sección Usuarios clave de la consola.

Configuración de claves administradas por el cliente de Amazon S3 para el almacenamiento de datos importados de Data Wrangler

De forma predeterminada, Data Wrangler usa buckets de Amazon S3 que tienen la siguiente convención de nomenclatura: sagemaker-region-account number. Por ejemplo, si su número de cuenta es 111122223333 y está utilizando Studio Classic en us-east-1, sus conjuntos de datos importados se almacenan con la siguiente convención de nomenclatura:. sagemaker-us-east-1-111122223333

En las siguientes instrucciones se explica cómo configurar una clave administrada por el cliente para el bucket de Amazon S3 predeterminado.

  1. Para habilitar el cifrado del lado del servidor y configurar una clave administrada por el cliente para su bucket de S3 predeterminado, consulte Uso del cifrado. KMS

  2. Tras seguir el paso 1, navegue hasta su AWS KMS . AWS Management Console Busque la clave gestionada por el cliente que seleccionó en el paso 1 del paso anterior y añada el rol de Studio Classic como usuario clave. Para ello, siga las instrucciones de Allows key users to use a customer managed key.

Cifrado de los datos que exporta

Puede cifrar los datos que exporte mediante uno de los métodos siguientes:

  • Especificar que su bucket de Amazon S3 tiene un uso de objetosSSE: KMS cifrado.

  • Especificar una AWS KMS clave para cifrar los datos que exporta desde Data Wrangler.

En la página Exportar datos, especifique un valor para el ID de AWS KMS clave o. ARN

Para obtener más información sobre el uso de AWS KMS claves, consulte Protección de datos mediante el cifrado del lado del servidor con AWS KMS claves almacenadas en AWSAWS Key Management Service (SSE-KMS).

AppFlow Permisos de Amazon

Al realizar una transferencia, debe especificar un IAM rol que tenga permisos para realizar la transferencia. Puedes usar el mismo IAM rol que tiene permisos para usar Data Wrangler. De forma predeterminada, el IAM rol que utilizas para acceder a Data Wrangler es el. SageMakerExecutionRole

El IAM rol debe tener los siguientes permisos:

  • Permisos para Amazon AppFlow

  • Permisos para acceder al catálogo AWS Glue de datos

  • Permisos AWS Glue para descubrir las fuentes de datos disponibles

Cuando realizas una transferencia, Amazon AppFlow almacena los metadatos de la transferencia en el catálogo AWS Glue de datos. Data Wrangler usa los metadatos del catálogo para determinar si están disponibles para consultarlos e importarlos.

Para añadir permisos a Amazon AppFlow, añade la política AmazonAppFlowFullAccess AWS gestionada al IAM rol. Para obtener más información sobre cómo añadir políticas, consulta Añadir o eliminar permisos de IAM identidad.

Si va a transferir datos a Amazon S3, también debe asociar la siguiente política.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "s3:GetBucketTagging", "s3:ListBucketVersions", "s3:CreateBucket", "s3:ListBucket", "s3:GetBucketPolicy", "s3:PutEncryptionConfiguration", "s3:GetEncryptionConfiguration", "s3:PutBucketTagging", "s3:GetObjectTagging", "s3:GetBucketOwnershipControls", "s3:PutObjectTagging", "s3:DeleteObject", "s3:DeleteBucket", "s3:DeleteObjectTagging", "s3:GetBucketPublicAccessBlock", "s3:GetBucketPolicyStatus", "s3:PutBucketPublicAccessBlock", "s3:PutAccountPublicAccessBlock", "s3:ListAccessPoints", "s3:PutBucketOwnershipControls", "s3:PutObjectVersionTagging", "s3:DeleteObjectVersionTagging", "s3:GetBucketVersioning", "s3:GetBucketAcl", "s3:PutObject", "s3:GetObject", "s3:GetAccountPublicAccessBlock", "s3:ListAllMyBuckets", "s3:GetAnalyticsConfiguration", "s3:GetBucketLocation" ], "Resource": "*" } ] }

Para añadir AWS Glue permisos, añada la política AWSGlueConsoleFullAccess gestionada al IAM rol. Para obtener más información sobre AWS Glue los permisos con Amazon AppFlow, consulta [link-to-appflow-page].

Amazon AppFlow necesita acceder AWS Glue a Data Wrangler para que puedas importar los datos que has transferido. Para conceder AppFlow acceso a Amazon, añade la siguiente política de confianza al IAM rol.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:root", "Service": [ "appflow.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }

Para mostrar los AppFlow datos de Amazon en Data Wrangler, añade la siguiente política al IAM rol:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "glue:SearchTables", "Resource": [ "arn:aws:glue:*:*:table/*/*", "arn:aws:glue:*:*:database/*", "arn:aws:glue:*:*:catalog" ] } ] }

Uso de configuraciones de ciclo de vida en Data Wrangler

Puede que tengas una EC2 instancia de Amazon configurada para ejecutar aplicaciones de Kernel Gateway, pero no la aplicación Data Wrangler. Las aplicaciones Kernel Gateway proporcionan acceso al entorno y a los núcleos que se utilizan para ejecutar los ordenadores portátiles y terminales de Studio Classic. La aplicación Data Wrangler es la aplicación de interfaz de usuario que ejecuta Data Wrangler. EC2Las instancias de Amazon que no son instancias de Data Wrangler requieren una modificación en las configuraciones de su ciclo de vida para ejecutar Data Wrangler. Las configuraciones del ciclo de vida son scripts de shell que automatizan la personalización del entorno de Amazon SageMaker Studio Classic.

Para obtener más información acerca de las configuraciones del ciclo de vida, consulte Utilice las configuraciones del ciclo de vida para personalizar Studio Classic.

La configuración del ciclo de vida predeterminada de la instancia no admite el uso de Data Wrangler. Puede realizar las siguientes modificaciones en la configuración predeterminada para poder usar Data Wrangler con su instancia.

#!/bin/bash set -eux STATUS=$( python3 -c "import sagemaker_dataprep" echo $? ) if [ "$STATUS" -eq 0 ]; then echo 'Instance is of Type Data Wrangler' else echo 'Instance is not of Type Data Wrangler' # Replace this with the URL of your git repository export REPOSITORY_URL="https://github.com/aws-samples/sagemaker-studio-lifecycle-config-examples.git" git -C /root clone $REPOSTIORY_URL fi

Puede guardar el script como lifecycle_configuration.sh.

Debe adjuntar la configuración del ciclo de vida a su dominio o perfil de usuario de Studio Classic. Para obtener más información acerca de la creación y asociación de un configuración de ciclo de vida, consulte Creación y asociación de una configuración del ciclo de vida.

Las siguientes instrucciones muestran cómo adjuntar una configuración de ciclo de vida a un dominio o perfil de usuario de Studio Classic.

Es posible que se produzcan errores al crear o asociar una configuración de ciclo de vida. Para obtener información acerca de la solución de errores de configuración de ciclo de vida, consulte KernelGateway fallo de la aplicación.