

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.

# Guía de instalación
<a name="scheduled-notebook-installation"></a>

A continuación, se proporciona información sobre lo que necesita instalar para utilizar Notebook Jobs en su entorno. JupyterLab 

**Para Amazon SageMaker Studio y Amazon SageMaker Studio Lab**

Si tu portátil está en Amazon SageMaker Studio o Amazon SageMaker Studio Lab, no necesitas realizar ninguna instalación adicional: SageMaker Notebook Jobs está integrado en la plataforma. Para configurar los permisos necesarios para Studio, consulte [Configuración de políticas y permisos para Studio](scheduled-notebook-policies-studio.md).

**Para los cuadernos de Jupyter locales**

Si desea utilizar SageMaker Notebook Jobs para su JupyterLab entorno local, debe realizar una instalación adicional.

Para instalar SageMaker Notebook Jobs, complete los siguientes pasos:

1. Instale Python 3. Para obtener más información, consulte [Installing Python 3 and Python Packages](https://www.codecademy.com/article/install-python3).

1. Instale JupyterLab la versión 4 o superior. Para obtener más información, consulta la [documentación JupyterLab del SDK](https://jupyterlab.readthedocs.io/en/stable/getting_started/installation.html).

1. Instale el AWS CLI. Para obtener más información, consulte [Instalar o actualizar la última versión de la AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html).

1. Instale dos conjuntos de permisos. El usuario de IAM necesita permisos para enviar trabajos a SageMaker AI y, una vez enviados, el propio trabajo del bloc de notas asume una función de IAM que necesita permisos para acceder a los recursos en función de las tareas del trabajo.

   1. Si aún no se ha creado un usuario de IAM, consulte [Creación de un usuario de IAM en su cuenta de AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_create.html).

   1. Si aún no ha creado su rol de trabajo del cuaderno, consulte [Creación de un rol para delegar permisos a un usuario de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user.html).

   1. Adjunte los permisos y la política de confianza necesarios para asociarlos a su usuario y rol. Para obtener step-by-step instrucciones y detalles sobre los permisos, consulte. [Instalación de políticas y permisos para los entornos locales de Jupyter](scheduled-notebook-policies-other.md)

1. Genere AWS las credenciales para el usuario de IAM recién creado y guárdelas en el archivo de credenciales (\$1/.aws/credentials) de su entorno. JupyterLab Puede hacerlo con el comando de la CLI `aws configure`. Para obtener instrucciones, consulte la sección sobre *establecer y ver los ajustes de configuración mediante comandos* en [Opciones de los archivos de configuración y credenciales](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html).

1. (opcional) De forma predeterminada, la extensión del programador utiliza una imagen de Docker de SageMaker IA prediseñada con Python 2.0. Cualquier kernel que no sea el predeterminado y que se utilice en el cuaderno debe instalarse en el contenedor. Si desea ejecutar su cuaderno en un contenedor o en una imagen de Docker, debe crear una imagen de Amazon Elastic Container Registry (Amazon ECR). Para obtener información sobre cómo insertar una imagen de Docker en un Amazon ECR, consulte [Inserción de una imagen de Docker](https://docs.aws.amazon.com/AmazonECR/latest/userguide/docker-push-ecr-image.html).

1. Añade la JupyterLab extensión para SageMaker Notebook Jobs. Puede añadirlo a su JupyterLab entorno con el comando:`pip install amazon_sagemaker_jupyter_scheduler`. Es posible que deba reiniciar su servidor Jupyter con el comando: `sudo systemctl restart jupyter-server`.

1. Comience JupyterLab con el comando:`jupyter lab`.

1. Compruebe que el widget de trabajos del cuaderno (![\[Blue icon of a calendar with a checkmark, representing a scheduled task or event.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/icons/notebook-schedule.png)) aparezca en la barra de tareas de su cuaderno de Jupyter.

# Configuración de políticas y permisos para Studio
<a name="scheduled-notebook-policies-studio"></a>

Deberá instalar las políticas y los permisos adecuados antes de programar la primera ejecución del cuaderno. A continuación, se proporcionan instrucciones para configurar los siguientes permisos:
+ Relaciones de confianza del rol de ejecución de trabajos
+ Permisos de IAM adicionales asociados al rol de ejecución de trabajos
+ (opcional) La política de AWS KMS permisos para usar una clave KMS personalizada

**importante**  
Si su AWS cuenta pertenece a una organización que cuenta con políticas de control de servicios (SCP), sus permisos efectivos son la intersección lógica entre lo que permiten sus políticas de usuario SCPs y rol de IAM y lo que permiten. Por ejemplo, si la SCP de su organización especifica que solo puede acceder a los recursos de `us-east-1` y `us-west-1`, y sus políticas solo le permiten acceder a los recursos de `us-west-1` y`us-west-2`, en última instancia, solo podrá acceder a los recursos de `us-west-1`. Si quieres ejercer todos los permisos permitidos en tus políticas de rol y usuario, las de tu organización SCPs deberían concederte el mismo conjunto de permisos que tus propias políticas de usuario y rol de IAM. Para obtener información acerca de cómo determinar las solicitudes permitidas, consulte [Cómo determinar si se una solicitud se permite o se deniega dentro de una cuenta](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html#policy-eval-denyallow).

**Relaciones de confianza**

Para modificar las relaciones de confianza, siga los pasos siguientes:

1. Abra la [consola de IAM](https://console.aws.amazon.com/iam/).

1. En el panel izquierdo, seleccione **Roles**.

1. Busque el rol de ejecución de trabajos para el trabajo del cuaderno y elija el nombre del rol. 

1. Seleccione la pestaña **Relaciones de confianza**.

1. Elija **Editar la política de confianza**.

1. Copie y pegue la siguiente política:

------
#### [ JSON ]

****  

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

------

1. Elija **Actualizar política**.

## Permisos de IAM adicionales
<a name="scheduled-notebook-policies-add"></a>

Es posible que tenga que incluir permisos de IAM adicionales en las siguientes situaciones:
+ Los roles de trabajo del cuaderno y los roles de ejecución de Studio son diferentes
+ Debe acceder a los recursos de Amazon S3 a través de un punto de conexión de VPC de S3
+ Desea utilizar una clave de KMS personalizada para cifrar los buckets de Amazon S3 de entrada y salida

El siguiente análisis proporciona las políticas que necesita para cada caso.

### Permisos necesarios si los roles de trabajo del cuaderno y los roles de ejecución de Studio son diferentes
<a name="scheduled-notebook-policies-add-diffrole"></a>

El siguiente fragmento de código JSON es un ejemplo de política que debe agregar a los roles de trabajo del cuaderno y de ejecución de Studio si no utiliza el rol de ejecución de Studio como rol de trabajo del cuaderno. Revise y modifique esta política si necesita restringir aún más los privilegios.

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Effect":"Allow",
         "Action":"iam:PassRole",
         "Resource":"arn:aws:iam::*:role/*",
         "Condition":{
            "StringLike":{
               "iam:PassedToService":[
                  "sagemaker.amazonaws.com",
                  "events.amazonaws.com"
               ]
            }
         }
      },
      {
         "Effect":"Allow",
         "Action":[
            "events:TagResource",
            "events:DeleteRule",
            "events:PutTargets",
            "events:DescribeRule",
            "events:PutRule",
            "events:RemoveTargets",
            "events:DisableRule",
            "events:EnableRule"
         ],
         "Resource":"*",
         "Condition":{
            "StringEquals":{
               "aws:ResourceTag/sagemaker:is-scheduling-notebook-job":"true"
            }
         }
      },
      {
         "Effect":"Allow",
         "Action":[
            "s3:CreateBucket",
            "s3:PutBucketVersioning",
            "s3:PutEncryptionConfiguration"
         ],
         "Resource":"arn:aws:s3:::sagemaker-automated-execution-*"
      },
      {
            "Sid": "S3DriverAccess",
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket",
                "s3:GetObject",
                "s3:GetBucketLocation"
            ],
            "Resource": [
                "arn:aws:s3:::sagemakerheadlessexecution-*"
            ]
      },
      {
         "Effect":"Allow",
         "Action":[
            "sagemaker:ListTags"
         ],
         "Resource":[
            "arn:aws:sagemaker:*:*:user-profile/*",
            "arn:aws:sagemaker:*:*:space/*",
            "arn:aws:sagemaker:*:*:training-job/*",
            "arn:aws:sagemaker:*:*:pipeline/*"
         ]
      },
      {
         "Effect":"Allow",
         "Action":[
            "sagemaker:AddTags"
         ],
         "Resource":[
            "arn:aws:sagemaker:*:*:training-job/*",
            "arn:aws:sagemaker:*:*:pipeline/*"
         ]
      },
      {
         "Effect":"Allow",
         "Action":[
            "ec2:DescribeDhcpOptions",
            "ec2:DescribeNetworkInterfaces",
            "ec2:DescribeRouteTables",
            "ec2:DescribeSecurityGroups",
            "ec2:DescribeSubnets",
            "ec2:DescribeVpcEndpoints",
            "ec2:DescribeVpcs",
            "ecr:BatchCheckLayerAvailability",
            "ecr:BatchGetImage",
            "ecr:GetDownloadUrlForLayer",
            "ecr:GetAuthorizationToken",
            "s3:ListBucket",
            "s3:GetBucketLocation",
            "s3:GetEncryptionConfiguration",
            "s3:PutObject",
            "s3:DeleteObject",
            "s3:GetObject",
            "sagemaker:DescribeApp",
            "sagemaker:DescribeDomain",
            "sagemaker:DescribeUserProfile",
            "sagemaker:DescribeSpace",
            "sagemaker:DescribeStudioLifecycleConfig",
            "sagemaker:DescribeImageVersion",
            "sagemaker:DescribeAppImageConfig",
            "sagemaker:CreateTrainingJob",
            "sagemaker:DescribeTrainingJob",
            "sagemaker:StopTrainingJob",
            "sagemaker:Search",
            "sagemaker:CreatePipeline",
            "sagemaker:DescribePipeline",
            "sagemaker:DeletePipeline",
            "sagemaker:StartPipelineExecution"
         ],
         "Resource":"*"
      }
   ]
}
```

------

### Permisos necesarios para acceder a los recursos de Amazon S3 a través de un punto de conexión de VPC de S3
<a name="scheduled-notebook-policies-add-vpc"></a>

Si ejecutas SageMaker Studio en modo de VPC privada y accedes a S3 a través del punto de enlace de VPC de S3, puedes añadir permisos a la política de puntos de enlace de VPC para controlar a qué recursos de S3 se puede acceder a través del punto de enlace de VPC. Agregue los siguientes permisos a su política de puntos de conexión de VPC. Puede modificar la política si necesita restringir aún más los permisos; por ejemplo, puede proporcionar una especificación más específica para el campo `Principal`.

```
{
    "Sid": "S3DriverAccess",
    "Effect": "Allow",
    "Principal": "*",
    "Action": [
        "s3:GetBucketLocation",
        "s3:GetObject",
        "s3:ListBucket"
    ],
    "Resource": "arn:aws:s3:::sagemakerheadlessexecution-*"
}
```

Para obtener más información sobre cómo configurar una política de puntos de conexión de VPC de S3, consulte [Edición de la política del punto de conexión de VPC](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-endpoints-s3.html#edit-vpc-endpoint-policy-s3).

### Permisos necesarios para usar una clave de KMS personalizada (opcional)
<a name="scheduled-notebook-policies-add-kms"></a>

De forma predeterminada, los buckets de Amazon S3 de entrada y salida se cifran mediante el cifrado del lado del servidor, pero puede especificar una clave de KMS personalizada para cifrar los datos en el bucket de Amazon S3 de salida y en el volumen de almacenamiento asociado al trabajo del cuaderno.

Si desea utilizar una clave de KMS personalizada, asocie la siguiente política y proporcione su propio ARN de clave de KMS.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
      {
         "Effect":"Allow",
         "Action":[
            "kms:Encrypt",
            "kms:Decrypt",
            "kms:ReEncrypt*",
            "kms:GenerateDataKey*",
            "kms:DescribeKey",
            "kms:CreateGrant"
         ],
         "Resource":"arn:aws:kms:us-east-1:111122223333:key/key-id"
      }
   ]
}
```

------

# Instalación de políticas y permisos para los entornos locales de Jupyter
<a name="scheduled-notebook-policies-other"></a>

Deberá configurar los permisos y políticas necesarios para programar trabajos de cuaderno en un entorno de Jupyter local. El usuario de IAM necesita permisos para enviar trabajos a SageMaker AI y la función de IAM que asume el propio trabajo de notebook necesita permisos para acceder a los recursos, en función de las tareas del trabajo. A continuación, se proporcionan instrucciones sobre cómo configurar los permisos y políticas necesarios.

Deberá instalar dos conjuntos de permisos. El siguiente diagrama muestra la estructura de permisos para programar trabajos de cuadernos en un entorno de Jupyter local. El usuario de IAM debe configurar los permisos de IAM para enviar trabajos a AI. SageMaker Una vez que el usuario envía el trabajo del cuaderno, el propio trabajo asume un rol de IAM que tiene permisos para acceder a los recursos en función de las tareas del trabajo.

![\[\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/notebook-jobs-permissions.png)


Las siguientes secciones le ayudan a instalar las políticas y los permisos necesarios tanto para el usuario de IAM como para el rol de ejecución de trabajos.

## Permisos de usuario de IAM
<a name="scheduled-notebook-policies-other-user"></a>

**Permisos para enviar trabajos a AI SageMaker **

Para agregar permisos para enviar trabajos, siga los siguientes pasos:

1. Abra la [consola de IAM](https://console.aws.amazon.com/iam/).

1. En el panel izquierdo, seleccione **Usuarios**.

1. Busque el usuario de IAM para su trabajo del cuaderno y elija el nombre de usuario.

1. Elija **Agregar permisos** y, a continuación, **Crear política insertada** en el menú desplegable.

1. Seleccione la pestaña **JSON**.

1. Copie y pegue la siguiente política:

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "EventBridgeSchedule",
               "Effect": "Allow",
               "Action": [
                   "events:TagResource",
                   "events:DeleteRule",
                   "events:PutTargets",
                   "events:DescribeRule",
                   "events:EnableRule",
                   "events:PutRule",
                   "events:RemoveTargets",
                   "events:DisableRule"
               ],
               "Resource": "*",
               "Condition": {
                   "StringEquals": {
                       "aws:ResourceTag/sagemaker:is-scheduling-notebook-job": "true"
                   }
               }
           },
           {
               "Sid": "IAMPassrole",
               "Effect": "Allow",
               "Action": "iam:PassRole",
               "Resource": "arn:aws:iam::*:role/*",
               "Condition": {
                   "StringLike": {
                       "iam:PassedToService": [
                           "sagemaker.amazonaws.com",
                           "events.amazonaws.com"
                       ]
                   }
               }
           },
           {
               "Sid": "IAMListRoles",
               "Effect": "Allow",
               "Action": "iam:ListRoles",
               "Resource": "*"
           },
           {
               "Sid": "S3ArtifactsAccess",
               "Effect": "Allow",
               "Action": [
                   "s3:PutEncryptionConfiguration",
                   "s3:CreateBucket",
                   "s3:PutBucketVersioning",
                   "s3:ListBucket",
                   "s3:PutObject",
                   "s3:GetObject",
                   "s3:GetEncryptionConfiguration",
                   "s3:DeleteObject",
                   "s3:GetBucketLocation"
               ],
               "Resource": [
                   "arn:aws:s3:::sagemaker-automated-execution-*"
               ]
           },
           {
               "Sid": "S3DriverAccess",
               "Effect": "Allow",
               "Action": [
                   "s3:ListBucket",
                   "s3:GetObject",
                   "s3:GetBucketLocation"
               ],
               "Resource": [
                   "arn:aws:s3:::sagemakerheadlessexecution-*"
               ]
           },
           {
               "Sid": "SagemakerJobs",
               "Effect": "Allow",
               "Action": [
                   "sagemaker:DescribeTrainingJob",
                   "sagemaker:StopTrainingJob",
                   "sagemaker:DescribePipeline",
                   "sagemaker:CreateTrainingJob",
                   "sagemaker:DeletePipeline",
                   "sagemaker:CreatePipeline"
               ],
               "Resource": "*",
               "Condition": {
                   "StringEquals": {
                       "aws:ResourceTag/sagemaker:is-scheduling-notebook-job": "true"
                   }
               }
           },
           {
               "Sid": "AllowSearch",
               "Effect": "Allow",
               "Action": "sagemaker:Search",
               "Resource": "*"
           },
           {
               "Sid": "SagemakerTags",
               "Effect": "Allow",
               "Action": [
                   "sagemaker:ListTags",
                   "sagemaker:AddTags"
               ],
               "Resource": [
                   "arn:aws:sagemaker:*:*:pipeline/*",
                   "arn:aws:sagemaker:*:*:space/*",
                   "arn:aws:sagemaker:*:*:training-job/*",
                   "arn:aws:sagemaker:*:*:user-profile/*"
               ]
           },
           {
               "Sid": "ECRImage",
               "Effect": "Allow",
               "Action": [
                   "ecr:GetAuthorizationToken",
                   "ecr:BatchGetImage"
               ],
               "Resource": "*"
           }
       ]
   }
   ```

------

**AWS KMS política de permisos (opcional)**

De forma predeterminada, los buckets de Amazon S3 de entrada y salida se cifran mediante el cifrado del lado del servidor, pero puede especificar una clave de KMS personalizada para cifrar los datos en el bucket de Amazon S3 de salida y en el volumen de almacenamiento asociado al trabajo del cuaderno.

Si desea utilizar una clave de KMS personalizada, repita las instrucciones anteriores, asocie la siguiente política y proporcione su propio ARN de clave de KMS.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
      {
         "Effect":"Allow",
         "Action":[
            "kms:Encrypt",
            "kms:Decrypt",
            "kms:ReEncrypt*",
            "kms:GenerateDataKey*",
            "kms:DescribeKey",
            "kms:CreateGrant"
         ],
         "Resource":"arn:aws:kms:us-east-1:111122223333:key/key-id"
      }
   ]
}
```

------

## Permisos de rol de ejecución de trabajos
<a name="scheduled-notebook-policies-other-job"></a>

**Relaciones de confianza**

Para modificar las relaciones de confianza del rol de ejecución de trabajos, siga los pasos siguientes:

1. Abra la [consola de IAM](https://console.aws.amazon.com/iam/).

1. En el panel izquierdo, seleccione **Roles**.

1. Busque el rol de ejecución de trabajos para el trabajo del cuaderno y elija el nombre del rol.

1. Seleccione la pestaña **Relaciones de confianza**.

1. Elija **Editar la política de confianza**.

1. Copie y pegue la siguiente política:

------
#### [ JSON ]

****  

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

------

**Permisos adicionales**

Una vez enviado, el trabajo del cuaderno necesita permisos para acceder a los recursos. Las siguientes instrucciones muestran cómo agregar un conjunto mínimo de permisos. Si es necesario, agregue más permisos en función de las necesidades de trabajo de su cuaderno. Para agregar permisos a su rol de ejecución de trabajos, siga los pasos que se describen a continuación:

1. Abra la [consola de IAM](https://console.aws.amazon.com/iam/).

1. En el panel izquierdo, seleccione **Roles**.

1. Busque el rol de ejecución de trabajos para el trabajo del cuaderno y elija el nombre del rol.

1. Elija **Agregar permisos** y, a continuación, **Crear política insertada** en el menú desplegable.

1. Seleccione la pestaña **JSON**.

1. Copie y pegue la siguiente política:

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "PassroleForJobCreation",
               "Effect": "Allow",
               "Action": "iam:PassRole",
               "Resource": "arn:aws:iam::*:role/*",
               "Condition": {
                   "StringLike": {
                       "iam:PassedToService": "sagemaker.amazonaws.com"
                   }
               }
           },
           {
               "Sid": "S3ForStoringArtifacts",
               "Effect": "Allow",
               "Action": [
                   "s3:PutObject",
                   "s3:GetObject",
                   "s3:ListBucket",
                   "s3:GetBucketLocation"
               ],
               "Resource": "arn:aws:s3:::sagemaker-automated-execution-*"
           },
           {
               "Sid": "S3DriverAccess",
               "Effect": "Allow",
               "Action": [
                   "s3:ListBucket",
                   "s3:GetObject",
                   "s3:GetBucketLocation"
               ],
               "Resource": [
                   "arn:aws:s3:::sagemakerheadlessexecution-*"
               ]
           },
           {
               "Sid": "SagemakerJobs",
               "Effect": "Allow",
               "Action": [
                   "sagemaker:StartPipelineExecution",
                   "sagemaker:CreateTrainingJob"
               ],
               "Resource": "*"
           },
           {
               "Sid": "ECRImage",
               "Effect": "Allow",
               "Action": [
                   "ecr:GetDownloadUrlForLayer",
                   "ecr:BatchGetImage",
                   "ecr:GetAuthorizationToken",
                   "ecr:BatchCheckLayerAvailability"
               ],
               "Resource": "*"
           }
       ]
   }
   ```

------

1. Agregue permisos a otros recursos a los que accede su trabajo del cuaderno.

1. Elija **Revisar política**.

1. Escriba un nombre para la política.

1. Elija **Crear política**.