Roles de IAM para AWS Data Pipeline - 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.

Roles de IAM para AWS Data Pipeline

AWS Data Pipeline usa AWS Identity and Access Management roles. Las políticas de permisos asociadas a los roles de IAM determinan qué acciones AWS Data Pipeline y sus aplicaciones pueden realizar y qué AWS recursos pueden acceder. Para obtener más información, consulte Roles de IAM en la Guía del usuario de IAM.

AWS Data Pipeline requiere dos roles de IAM:

  • La función de canalización controla el acceso de AWS Data Pipeline a los 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 las aplicaciones que se ejecutan en las instancias EC2, incluidas las instancias EC2 de los clústeres de Amazon EMR, tienen a los recursos 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 usando la consola AWS Data Pipeline con los roles predeterminados, AWS Data Pipeline creó la DataPipelineDefaultRole para usted y adjuntó la política AWSDataPipelineRole gestionada al rol. A partir del 3 de octubre de 2022, la política de AWSDataPipelineRole administrada 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 roles AWS Data Pipeline

Cada función tiene una o más políticas de permisos adjuntas que determinan los AWS recursos 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

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 recursos AWS, como de 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 servicio AWS, le recomendamos encarecidamente que elimine los permisos de acceso a ese servicio. Por ejemplo, si su canalización no define una DynamoDB DataNode o usa la acción SnsAlarm, le recomendamos que elimine las instrucciones de permiso para esas acciones.

  • Sustituya 111122223333 por su ID de cuenta de AWS.

  • 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.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iam:GetInstanceProfile", "iam:GetRole", "iam:GetRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PassRole" ], "Resource": [ "arn:aws:iam::111122223333:role/NameOfDataPipelineRole", "arn:aws:iam::111122223333 :role/NameOfDataPipelineResourceRole" ] }, { "Effect": "Allow", "Action": [ "ec2:AuthorizeSecurityGroupEgress", "ec2:AuthorizeSecurityGroupIngress", "ec2:CancelSpotInstanceRequests", "ec2:CreateNetworkInterface", "ec2:CreateSecurityGroup", "ec2:CreateTags", "ec2:DeleteNetworkInterface", "ec2:DeleteSecurityGroup", "ec2:DeleteTags", "ec2:DescribeAvailabilityZones", "ec2:DescribeAccountAttributes", "ec2:DescribeDhcpOptions", "ec2:DescribeImages", "ec2:DescribeInstanceStatus", "ec2:DescribeInstances", "ec2:DescribeKeyPairs", "ec2:DescribeLaunchTemplates", "ec2:DescribeNetworkAcls", "ec2:DescribeNetworkInterfaces", "ec2:DescribePrefixLists", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSpotInstanceRequests", "ec2:DescribeSpotPriceHistory", "ec2:DescribeSubnets", "ec2:DescribeTags", "ec2:DescribeVpcAttribute", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcEndpointServices", "ec2:DescribeVpcs", "ec2:DetachNetworkInterface", "ec2:ModifyImageAttribute", "ec2:ModifyInstanceAttribute", "ec2:RequestSpotInstances", "ec2:RevokeSecurityGroupEgress", "ec2:RunInstances", "ec2:TerminateInstances", "ec2:DescribeVolumeStatus", "ec2:DescribeVolumes", "elasticmapreduce:TerminateJobFlows", "elasticmapreduce:ListSteps", "elasticmapreduce:ListClusters", "elasticmapreduce:RunJobFlow", "elasticmapreduce:DescribeCluster", "elasticmapreduce:AddTags", "elasticmapreduce:RemoveTags", "elasticmapreduce:ListInstanceGroups", "elasticmapreduce:ModifyInstanceGroups", "elasticmapreduce:GetCluster", "elasticmapreduce:DescribeStep", "elasticmapreduce:AddJobFlowSteps", "elasticmapreduce:ListInstances", "iam:ListInstanceProfiles", "redshift:DescribeClusters" ], "Resource": [ "*" ] }, { "Effect": "Allow", "Action": [ "sns:GetTopicAttributes", "sns:Publish" ], "Resource": [ "arn:aws:sns:us-west-1:111122223333:MyFirstSNSTopic", "arn:aws:sns:us-west-1:111122223333:MySecondSNSTopic", "arn:aws:sns:us-west-1:111122223333:AnotherSNSTopic" ] }, { "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:ListMultipartUploads" ], "Resource": [ "arn:aws:s3:::MyStagingS3Bucket", "arn:aws:s3:::MyLogsS3Bucket", "arn:aws:s3:::MyInputS3Bucket", "arn:aws:s3:::MyOutputS3Bucket", "arn:aws:s3:::AnotherRequiredS3Buckets" ] }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetObjectMetadata", "s3:PutObject" ], "Resource": [ "arn:aws:s3:::MyStagingS3Bucket/*", "arn:aws:s3:::MyLogsS3Bucket/*", "arn:aws:s3:::MyInputS3Bucket/*", "arn:aws:s3:::MyOutputS3Bucket/*", "arn:aws:s3:::AnotherRequiredS3Buckets/*" ] }, { "Effect": "Allow", "Action": [ "dynamodb:Scan", "dynamodb:DescribeTable" ], "Resource": [ "arn:aws:dynamodb:us-west-1:111122223333:table/MyFirstDynamoDBTable", "arn:aws:dynamodb:us-west-1:111122223333:table/MySecondDynamoDBTable", "arn:aws:dynamodb:us-west-1:111122223333:table/AnotherDynamoDBTable" ] }, { "Effect": "Allow", "Action": [ "rds:DescribeDBInstances" ], "Resource": [ "arn:aws:rds:us-west-1:111122223333:db:MyFirstRdsDb", "arn:aws:rds:us-west-1:111122223333:db:MySecondRdsDb", "arn:aws:rds:us-west-1:111122223333:db:AnotherRdsDb" ] } ] }

Política gestionada predeterminada para la función de instancia EC2

El contenido de AmazonEC2RoleforDataPipelineRole se muestra a continuación. Esta es la política administrada asociada al rol de recurso predeterminado para AWS Data Pipeline,DataPipelineDefaultResourceRole. Cuando defina un rol de recurso para su canalización, le recomendamos empezar con esta política de permisos y, después, eliminar los permisos para las acciones del servicio AWS 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.

{ "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 roles

Utilice el siguiente procedimiento para crear roles para AWS Data Pipeline usando la consola 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 usando 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 para AWS Data Pipeline
  1. Abra la consola de IAM en https://console.aws.amazon.com/iam/.

  2. En el panel de navegación, seleccione Policies (Políticas) y, a continuación, seleccione Create policy (Crear política).

  3. Seleccione la pestaña JSON.

  4. 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, 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.

  5. Elija Review policy (Revisar política).

  6. Introduzca un nombre para la política, por ejemplo,MyDataPipelineRolePolicy y una descripción, y a continuación elija Crear política.

  7. 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/.

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

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

  4. 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.

  5. Elija Siguiente: Permisos.

  6. Si aparece la política predeterminada paraAWS Data Pipeline, siga los siguientes pasos 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.

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

  8. Escriba el nombre del rol, por ejemplo, MyDataPipelineRoley 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/.

  2. Seleccione Roles en el panel de navegación.

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

  4. 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

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

Para editar las funciones asignadas a una canalización mediante la consola
  1. Abra la consola de AWS Data Pipeline en https://console.aws.amazon.com/datapipeline/.

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

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

  4. En las listas Rol de recurso y Rol, elija los roles AWS Data Pipeline que desee asignar y, a continuación, seleccione Guardar.