

AWS Data Pipeline ya no está disponible para nuevos clientes. Los clientes actuales de AWS Data Pipeline pueden seguir utilizando el servicio con normalidad. [Más información](https://aws.amazon.com/blogs/big-data/migrate-workloads-from-aws-data-pipeline/)

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.

# Identity and Access Management para AWS Data Pipeline
<a name="dp-control-access"></a>

Las credenciales de seguridad le identifican en los servicios de AWS y le conceden el uso ilimitado de sus recursos de AWS, como sus canalizaciones. Puede utilizar las funciones de AWS Data Pipeline y AWS Identity and Access Management (IAM) para permitir que AWS Data Pipeline otros usuarios accedan a sus AWS Data Pipeline recursos sin compartir sus credenciales de seguridad.

Las organizaciones pueden compartir el acceso a canalizaciones, de modo que las personas de esa organización puedan desarrollarlas y mantenerlas en equipo. Sin embargo, sería necesario hacer lo siguiente, por ejemplo:
+ Controlar qué usuarios pueden acceder a canalizaciones específicas
+ Proteger una canalización de producción para que no se modifique por error.
+ Permitir que un auditor tenga acceso de solo lectura a las canalizaciones, pero impedirle realizar cambios.

AWS Data Pipeline está integrado con AWS Identity and Access Management (IAM), que ofrece una amplia gama de funciones:
+ Cree usuarios y grupos en su. Cuenta de AWS
+ Comparta fácilmente sus AWS recursos entre los usuarios de su Cuenta de AWS.
+ Asignación de credenciales de seguridad exclusivas a los usuarios.
+ Control del acceso de los usuarios a los servicios y recursos.
+ Obtención de una sola factura para todos los usuarios de su Cuenta de AWS.

Al usar IAM with AWS Data Pipeline, puede controlar si los usuarios de su organización pueden realizar una tarea mediante acciones de API específicas y si pueden usar recursos de AWS específicos. Puede utilizar políticas de IAM basadas en las etiquetas de las canalizaciones y los grupos de trabajadores para compartir las canalizaciones con otros usuarios y controlar su nivel de acceso.

**Topics**
+ [Políticas de IAM para AWS Data Pipeline](dp-iam-resourcebased-access.md)
+ [Ejemplos de políticas para AWS Data Pipeline](dp-example-tag-policies.md)
+ [Funciones de IAM para AWS Data Pipeline](dp-iam-roles.md)

# Políticas de IAM para AWS Data Pipeline
<a name="dp-iam-resourcebased-access"></a>

De forma predeterminada, las entidades de IAM no tienen permiso para crear ni modificar recursos de AWS. Para permitir a las entidades de IAM crear o modificar recursos y realizar tareas, debe crear políticas de IAM que concedan a esas entidades de IAM permisos para usar los recursos y las acciones de la API que necesitarán y, a continuación, asociar dichas políticas a las entidades de IAM que requieran dichos permisos.

Cuando se asocia una política a un usuario o grupo de usuarios, les otorga o deniega el permiso para realizar las tareas especificadas en los recursos indicados. Para obtener información general acerca de las políticas de IAM, consulte [Permisos y políticas](https://docs.aws.amazon.com/IAM/latest/UserGuide/PermissionsAndPolicies.html) en la *Guía de usuario de IAM*. Para obtener más información sobre cómo crear y administrar políticas personalizadas de IAM, consulte [Administración de políticas de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/ManagingPolicies.html).

**Topics**
+ [Sintaxis de la política](#dp-policy-syntax)
+ [Control del acceso a canalizaciones mediante etiquetas](#dp-control-access-tags)
+ [Control del acceso a canalizaciones mediante grupos de procesos de trabajo](#dp-control-access-workergroup)

## Sintaxis de la política
<a name="dp-policy-syntax"></a>

Una política de IAM es un documento JSON que contiene una o varias instrucciones. Cada instrucción tiene la estructura siguiente:

```
{
  "Statement":[{
    "Effect":"effect",
    "Action":"action",
    "Resource":"*",
    "Condition":{
      "condition":{
        "key":"value"
        }
      }
    }
  ]
}
```

Una instrucción de política se compone de los siguientes elementos:
+ **Effect:** el valor de *effect* puede ser `Allow` o `Deny`. De forma predeterminada, las entidades de IAM no tienen permiso para utilizar los recursos y las acciones de la API, por lo que se deniegan todas las solicitudes. Si se concede un permiso explícito se anula el valor predeterminado. Una denegación explícita invalida cualquier permiso concedido.
+ **Action**: el valor de *action* es la acción de la API para la que concede o deniega permisos. Para obtener una lista de las acciones AWS Data Pipeline, consulte la *referencia [sobre las acciones](https://docs.aws.amazon.com/datapipeline/latest/APIReference/API_Operations.html) de la AWS Data Pipeline API*.
+ **Resource**: el recurso al que afecta la acción. El único valor válido aquí es `"*"`. 
+ **Condition**: las condiciones son opcionales. Se pueden usar para controlar cuándo entrará en vigor la política.

  AWS Data Pipeline implementa las claves de contexto de todo AWS (consulte Claves [disponibles para las condiciones), además de las siguientes claves](https://docs.aws.amazon.com/IAM/latest/UserGuide/AccessPolicyLanguage_ElementDescriptions.html#AvailableKeys) específicas del servicio.
  + `datapipeline:PipelineCreator`: para conceder el acceso al usuario que ha creado la canalización. Por ejemplo, consulte [Grant the pipeline owner full access](dp-example-tag-policies.md#ex3).
  + `datapipeline:Tag`: para conceder acceso basado en el etiquetado de la canalización. Para obtener más información, consulte [Control del acceso a canalizaciones mediante etiquetas](#dp-control-access-tags).
  + `datapipeline:workerGroup`: para conceder acceso basado en el nombre del grupo de trabajadores. Para obtener más información, consulte [Control del acceso a canalizaciones mediante grupos de procesos de trabajo](#dp-control-access-workergroup).

## Control del acceso a canalizaciones mediante etiquetas
<a name="dp-control-access-tags"></a>

Puede crear políticas de IAM que hagan referencia a las etiquetas de la canalización. Esto le permite utilizar el etiquetado de canalización para hacer lo siguiente:
+ Conceder acceso de solo lectura a una canalización.
+ Conceda acceso a una canalización read/write 
+ Bloquear el acceso a una canalización.

Por ejemplo, suponga que un administrador tiene dos entornos de canalización, producción y desarrollo, además de un grupo de IAM para cada entorno. En el caso de las canalizaciones del entorno de producción, el administrador concede read/write acceso a los usuarios del grupo de IAM de producción, pero concede acceso de solo lectura a los usuarios del grupo de IAM de desarrolladores. En el caso de las canalizaciones del entorno de desarrollo, el administrador concede read/write acceso a los grupos de IAM de producción y de desarrolladores.

Para conseguir este escenario, el administrador etiqueta las canalizaciones de producción con la etiqueta “environment=production” y conecta la siguiente política al grupo de IAM de desarrolladores. La primera instrucción concede acceso de solo lectura a todas las canalizaciones. La segunda declaración otorga read/write acceso a las canalizaciones que no tienen la etiqueta «environment=production».

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "datapipeline:Describe*",
        "datapipeline:ListPipelines",
        "datapipeline:GetPipelineDefinition",
        "datapipeline:QueryObjects"
      ],
      "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Action": "datapipeline:*",
      "Resource": "*",
      "Condition": {
        "StringNotEquals": {"datapipeline:Tag/environment": "production"}
      }
    }
  ]
}
```

------

Además, el administrador conecta la siguiente política al grupo de IAM de producción. Esta instrucción concede acceso completo a todas las canalizaciones.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "datapipeline:*",
      "Resource": "*"
    }
  ]
}
```

------

Para ver más ejemplos, consulte [Grant users read-only access based on a tag](dp-example-tag-policies.md#ex1) y [Grant users full access based on a tag](dp-example-tag-policies.md#ex2).

## Control del acceso a canalizaciones mediante grupos de procesos de trabajo
<a name="dp-control-access-workergroup"></a>

Puede crear políticas de IAM que hagan referencia a los nombres de los grupos de trabajadores.

Por ejemplo, suponga que un administrador tiene dos entornos de canalización, producción y desarrollo, además de un grupo de IAM para cada entorno. El administrador tiene tres servidores de bases de datos con aplicaciones de ejecución de tareas configuradas para los entornos de producción, preproducción y desarrollo, respectivamente. El administrador quiere asegurarse de que los usuarios en el grupo de IAM de producción pueden crear canalizaciones que envíen tareas a los recursos de producción y que los usuarios del grupo de IAM de desarrollo pueden crear canalizaciones que envíen tareas a los recursos de preproducción y desarrollo.

Para conseguir este escenario, el administrador instala la aplicación de ejecución de tareas en los recursos de producción con credenciales de producción y establece `workerGroup` en "prodresource". Además, el administrador instala la aplicación de ejecución de tareas en los recursos de desarrollo con credenciales de desarrollo y establece `workerGroup` en "pre-production" y "development". El administrador conecta la siguiente política al grupo de IAM de desarrolladores para bloquear el acceso a los recursos “prodresource”. La primera instrucción concede acceso de solo lectura a todas las canalizaciones. La segunda sentencia permite el read/write acceso a las canalizaciones cuando el nombre del grupo de trabajo tiene el prefijo «dev» o «pre-prod».

Asimismo, el administrador conecta la siguiente política al grupo de IAM de producción para conceder acceso a los recursos “prodresource”. La primera instrucción concede acceso de solo lectura a todas las canalizaciones. La segunda sentencia concede el read/write acceso cuando el nombre del grupo de trabajo tiene el prefijo «prod».

# Ejemplos de políticas para AWS Data Pipeline
<a name="dp-example-tag-policies"></a>

Los siguientes ejemplos muestran cómo conceder a los usuarios acceso completo o restringido a canalizaciones.

**Topics**
+ [Ejemplo 1: Otorgar a los usuarios acceso de solo lectura basado en una etiqueta](#ex1)
+ [Ejemplo 2: Otorgar a los usuarios acceso completo basado en una etiqueta](#ex2)
+ [Ejemplo 3: Otorgar acceso completo al propietario de la canalización](#ex3)
+ [Ejemplo 4: conceder a los usuarios acceso a la consola AWS Data Pipeline](#example4-grant-users-access-to-console)

## Ejemplo 1: Otorgar a los usuarios acceso de solo lectura basado en una etiqueta
<a name="ex1"></a>

La siguiente política permite a los usuarios usar las acciones de la AWS Data Pipeline API de solo lectura, pero solo con las canalizaciones que tengan la etiqueta «environment=production». 

La acción de la ListPipelines API no admite la autorización basada en etiquetas.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "datapipeline:Describe*",
        "datapipeline:GetPipelineDefinition",
        "datapipeline:ValidatePipelineDefinition",
        "datapipeline:QueryObjects"
      ],
      "Resource": [
        "*"
      ],
      "Condition": {
        "StringEquals": {
          "datapipeline:Tag/environment": "production"
        }
      }
    }
  ]
}
```

------

## Ejemplo 2: Otorgar a los usuarios acceso completo basado en una etiqueta
<a name="ex2"></a>

La siguiente política permite a los usuarios utilizar todas las acciones de la AWS Data Pipeline API, con la excepción de las canalizaciones que tengan la etiqueta «environment=test» ListPipelines, pero solo con ellas.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "datapipeline:*"
      ],
      "Resource": [
        "*"
      ],
      "Condition": {
        "StringEquals": {
          "datapipeline:Tag/environment": "test"
        }
      }
    }
  ]
}
```

------

## Ejemplo 3: Otorgar acceso completo al propietario de la canalización
<a name="ex3"></a>

La siguiente política permite a los usuarios utilizar todas las acciones de la AWS Data Pipeline API, pero solo con sus propias canalizaciones.

## Ejemplo 4: conceder a los usuarios acceso a la consola AWS Data Pipeline
<a name="example4-grant-users-access-to-console"></a>

La siguiente política permite a los usuarios crear y administrar una canalización mediante la consola de AWS Data Pipeline . 

Esta política incluye la acción relativa a `PassRole` los permisos para recursos específicos vinculados a las `roleARN` AWS Data Pipeline necesidades de cada uno. Para obtener más información sobre el `PassRole` permiso basado en la identidad (IAM), consulte la entrada del blog sobre la [concesión de permisos para lanzar instancias de EC2 con funciones de IAM (permiso](https://aws.amazon.com/blogs/security/granting-permission-to-launch-ec2-instances-with-iam-roles-passrole-permission/)). PassRole

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

****  

```
{
	"Version":"2012-10-17",		 	 	 
	"Statement": [{
			"Action": [
				"cloudwatch:*",
				"datapipeline:*",
				"dynamodb:DescribeTable",
				"elasticmapreduce:AddJobFlowSteps",
				"elasticmapreduce:ListInstance*",
				"iam:AddRoleToInstanceProfile",
				"iam:CreateInstanceProfile",
				"iam:GetInstanceProfile",
				"iam:GetRole",
				"iam:GetRolePolicy",
				"iam:ListInstanceProfiles",
				"iam:ListInstanceProfilesForRole",
				"iam:ListRoles",
				"rds:DescribeDBInstances",
				"rds:DescribeDBSecurityGroups",
				"redshift:DescribeClusters",
				"redshift:DescribeClusterSecurityGroups",
				"s3:List*",
				"sns:ListTopics"
			],
			"Effect": "Allow",
			"Resource": [
				"*"
			]
		},
		{
			"Action": "iam:PassRole",
			"Effect": "Allow",
			"Resource": [
				"arn:aws:iam::*:role/DataPipelineDefaultResourceRole",
				"arn:aws:iam::*:role/DataPipelineDefaultRole"
			]
		}
	]
}
```

------

# Funciones de IAM para AWS Data Pipeline
<a name="dp-iam-roles"></a>

AWS Data Pipeline usa AWS Identity and Access Management roles. Las políticas de permisos asociadas a las funciones de IAM determinan qué acciones AWS Data Pipeline y aplicaciones pueden realizar y a qué AWS recursos pueden acceder. Para obtener más información, consulte [Roles de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) en la *Guía del usuario de IAM*.

AWS Data Pipeline requiere dos funciones de IAM:
+ **La función Pipeline** controla el AWS Data Pipeline acceso a sus recursos de AWS. En las definiciones de objetos de canalización, el campo de `role` especifica este rol.
+ **El rol de instancia EC2** controla el acceso que tienen a los recursos las aplicaciones que se ejecutan en las instancias EC2, incluidas las instancias EC2 de los clústeres de Amazon EMR. AWS En las definiciones de objetos de canalización, el campo de `resourceRole` especifica este rol.

**importante**  
Si creó una canalización antes del 3 de octubre de 2022 con la AWS Data Pipeline consola con las funciones predeterminadas, AWS Data Pipeline creó la suya automáticamente `DataPipelineDefaultRole` y adjuntó la política `AWSDataPipelineRole` administrada a la función. A partir del 3 de octubre de 2022, la política de administrada de `AWSDataPipelineRole` quedará obsoleta y se debe especificar el rol de canalización para una canalización al usar la consola.  
Le recomendamos que revise las canalizaciones existentes y determine si `DataPipelineDefaultRole` está asociada a la canalización y si `AWSDataPipelineRole` está asociada a ese rol. Si es así, revise el acceso que permite esta política para asegurarse de que es adecuado para sus requisitos de seguridad. Añada, actualice o sustituya las políticas y declaraciones de políticas adjuntas a esta función según sea necesario. Como alternativa, puede actualizar una canalización para usar un rol que cree con diferentes políticas de permisos.

## Ejemplo de políticas de permisos para AWS Data Pipeline roles
<a name="dp-role-permissions-policy-examples"></a>

Cada función tiene una o más políticas de permisos adjuntas que determinan los recursos de AWS a los que puede acceder la función y las acciones que puede realizar. En este tema se proporciona un ejemplo de política de permisos para el rol de canalización. También proporciona el contenido de `AmazonEC2RoleforDataPipelineRole`, que es la política gestionada para el rol de instancia EC2 predeterminado, `DataPipelineDefaultResourceRole`.

### Ejemplo de política de permisos para roles de canalización
<a name="dp-role-example-policy"></a>

La política de ejemplo que se muestra a continuación tiene como objetivo permitir las funciones esenciales que AWS Data Pipeline requieren ejecutar una canalización con los recursos de Amazon EC2 y Amazon EMR. También proporciona permisos para acceder a otros AWS recursos, como Amazon Simple Storage Service y Amazon Simple Notification Service, que requieren muchas canalizaciones. Si los objetos definidos en una canalización no requieren los recursos de un AWS servicio, te recomendamos encarecidamente que elimines los permisos de acceso a ese servicio. Por ejemplo, si su canalización no define un [Nodo Dynamo DBData](dp-object-dynamodbdatanode.md) o usa la acción [SnsAlarm](dp-object-snsalarm.md), le recomendamos que elimine las instrucciones de permiso para esas acciones.
+ `111122223333`Sustitúyalo por tu ID de AWS cuenta.
+ Sustituya `NameOfDataPipelineRole` por el nombre del rol de canalización (la función a la que se asocia esta política).
+ Sustituya `NameOfDataPipelineResourceRole` por el nombre del rol de instancia de EC2.
+ Sustituya `us-west-1` por la región correspondiente a la aplicación.

### Política gestionada predeterminada para la función de instancia EC2
<a name="dp-resource-role-example-policy"></a>

El contenido de `AmazonEC2RoleforDataPipelineRole` se muestra a continuación. Esta es la política administrada adjunta a la función de recurso predeterminada para AWS Data Pipeline,`DataPipelineDefaultResourceRole`. Cuando definas un rol de recurso para tu canalización, te recomendamos empezar con esta política de permisos y, después, eliminar los permisos para las acciones de AWS servicio que no sean necesarias.

Se muestra la versión 3 de la política, que es la versión más reciente en el momento de escribir este artículo. Consulte la versión más reciente de la política en la consola de IAM.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [{
      "Effect": "Allow",
      "Action": [
        "cloudwatch:*",
        "datapipeline:*",
        "dynamodb:*",
        "ec2:Describe*",
        "elasticmapreduce:AddJobFlowSteps",
        "elasticmapreduce:Describe*",
        "elasticmapreduce:ListInstance*",
        "elasticmapreduce:ModifyInstanceGroups",
        "rds:Describe*",
        "redshift:DescribeClusters",
        "redshift:DescribeClusterSecurityGroups",
        "s3:*",
        "sdb:*",
        "sns:*",
        "sqs:*"
      ],
      "Resource": ["*"]
    }]
}
```

------

## Creación de roles de IAM AWS Data Pipeline y edición de permisos de rol
<a name="dp-iam-roles-new"></a>

Utilice los siguientes procedimientos para crear roles para AWS Data Pipeline usar la consola de IAM. El proceso consta de cuatro pasos. En primer lugar, cree una política de permisos para adjuntar al rol. A continuación, se crea el rol y se adjunta la política. Después de crear un rol, puede cambiar los permisos del rol adjuntando y separando las políticas de permisos.

**nota**  
Al crear roles para AWS Data Pipeline usar la consola como se describe a continuación, IAM crea y adjunta las políticas de confianza adecuadas que requiere el rol.

**Para crear una política de permisos para utilizarla con un rol AWS Data Pipeline**

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

1. En el panel de navegación, seleccione **Políticas** y, a continuación, **Crear política**.

1. <a name="step3"></a>Seleccione la pestaña **JSON**.

1. Si está creando un rol de canalización, copie y pegue el contenido del ejemplo de política en [Ejemplo de política de permisos para roles de canalización](#dp-role-example-policy), editándolo según convenga para sus requisitos de seguridad. Como alternativa, si va a crear un rol de instancia EC2 personalizado, haga lo mismo con el ejemplo de [Política gestionada predeterminada para la función de instancia EC2](#dp-resource-role-example-policy).

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

1. Introduzca un nombre para la política, por ejemplo, `MyDataPipelineRolePolicy`, y una **Descripción**, y a continuación, elija **Crear política**.

1. Tome nota del nombre de la política. Lo necesita cuando crea su rol.

**Para crear un rol de IAM para AWS Data Pipeline**

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

1. En el panel de navegación, seleccione **Roles** y luego seleccione **Crear rol**.

1. En **Elegir un caso de uso**, seleccione **Canalización de datos**.

1. En **Seleccione su caso de uso**, realice una de las siguientes acciones:
   + Elija `Data Pipeline` para crear un rol de canalización.
   + Elija `EC2 Role for Data Pipeline` para crear un rol de recurso.

1. Elija **Siguiente: permisos**.

1. Si AWS Data Pipeline aparece la política predeterminada para, siga los pasos siguientes para crear el rol y, a continuación, edítelo según las instrucciones del siguiente procedimiento. De lo contrario, introduzca el nombre de la política que creó en el procedimiento anterior y, a continuación, selecciónela en la lista.

1. Seleccione **Siguiente: etiquetas**, introduzca las etiquetas que desee añadir al rol y, a continuación, elija **Siguiente: revisar**.

1. Escriba el nombre del rol (por ejemplo, `MyDataPipelineRole`) y una **descripción** opcional y después elija **Crear rol**.

**Para adjuntar o desvincular una política de permisos para un rol de IAM para AWS Data Pipeline**

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

1. Seleccione **Roles** en el panel de navegación.

1. En el cuadro de búsqueda, comience a escribir el nombre del rol que desea editar (por ejemplo, **DataPipelineDefaultRole**o) **MyDataPipelineRole**y, a continuación, elija el nombre del **rol** de la lista.

1. En la página **Permisos**, haga lo siguiente:
   + Para separar una política de permisos, en **Políticas de permisos**, pulse el botón de eliminación situado en el extremo derecho de la entrada de la política. Cuando se le pida confirmación, elija **Desvincular**.
   + Para adjuntar una política que haya creado anteriormente, elija **Adjuntar políticas**. En el cuadro de búsqueda, comience a escribir el nombre de la política que desee editar, selecciónela de la lista y, a continuación, elija **Adjuntar política**.

## Cambiar las funciones de una canalización existente
<a name="dp-iam-change-console"></a>

Si quieres asignar un rol de canalización o un rol de recurso diferente a un canalización, puedes usar el editor de arquitectos de la consola. AWS Data Pipeline 

**Para editar las funciones asignadas a una canalización mediante la consola**

1. Abre la AWS Data Pipeline consola en [https://console.aws.amazon.com/datapipeline/](https://console.aws.amazon.com/datapipeline/).

1. Seleccione la canalización de la lista y, a continuación, elija **Acciones**, **Editar**.

1. En el panel derecho del editor de arquitectos, elija **Otros**.

1. En las listas **Función de recurso** **y Función**, elija las funciones AWS Data Pipeline que desee asignar y, a continuación, seleccione **Guardar**.