Rôles IAM pour AWS Data Pipeline - AWS Data Pipeline

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Rôles IAM pour AWS Data Pipeline

AWS Data PipelineutiliseAWS Identity and Access Management des rôles. Les politiques d'autorisation associées aux rôles IAM déterminent les actionsAWS Data Pipeline que vos applications peuvent effectuer et lesAWS ressources auxquelles elles peuvent accéder. Pour de plus amples informations, veuillez consulter Rôles IAM dans le Guide de l'utilisateur IAM.

AWS Data Pipelinenécessite deux rôles IAM :

  • Le rôle de pipeline contrôleAWS Data Pipeline l'accès à vos ressources AWS. Dans les définitions d'objets de pipeline, lerole champ spécifie ce rôle.

  • Le rôle d'instance EC2 contrôle l'accès des applications exécutées sur des instances EC2, y compris les instances EC2 des clusters Amazon EMR, auxAWS ressources. Dans les définitions d'objets de pipeline, leresourceRole champ spécifie ce rôle.

Important

Si vous avez créé un pipeline avant le 3 octobre 2022 à l'aide de laAWS Data Pipeline console avec des rôles par défaut,AWS Data PipelineDataPipelineDefaultRole créez le pour vous et associez la politiqueAWSDataPipelineRole gérée au rôle. Depuis le 3 octobre 2022, la politiqueAWSDataPipelineRole gérée est obsolète et le rôle de pipeline doit être spécifié pour un pipeline lors de l'utilisation de la console.

Nous vous recommandons de passer en revue les pipelines existants et deDataPipelineDefaultRole déterminer s'ils sont associés au pipeline et s'ilsAWSDataPipelineRole sont rattachés à ce rôle. Si tel est le cas, examinez l'accès autorisé par cette politique pour vous assurer qu'il est adapté à vos exigences de sécurité. Ajoutez, mettez à jour ou remplacez les politiques et les déclarations de stratégie associées à ce rôle si nécessaire. Vous pouvez également mettre à jour un pipeline pour utiliser un rôle que vous créez avec des politiques d'autorisation différentes.

Exemples de politiques d'autorisation pour lesAWS Data Pipeline rôles

Chaque rôle est associé à une ou plusieurs politiques d'autorisation qui déterminent lesAWS ressources auxquelles le rôle peut accéder et les actions qu'il peut effectuer. Cette rubrique fournit un exemple de politique d'autorisations pour le rôle de pipeline. Il fournit également le contenu duAmazonEC2RoleforDataPipelineRole, qui est la politique gérée pour le rôle d'instance EC2 par défaut,DataPipelineDefaultResourceRole.

Exemple de stratégie d'autorisations de rôle de rôle de rôle

L'exemple de politique qui suit est conçu pour autoriser les fonctions essentielles quiAWS Data Pipeline nécessitent l'exécution d'un pipeline avec des ressources Amazon EC2 et Amazon EMR. Il fournit également des autorisations d'accès à d'autresAWS ressources, telles qu'Amazon Simple Storage Service et Amazon Simple Notification Service, requises par de nombreux pipelines. Si les objets définis dans un pipeline ne nécessitent pas les ressources d'unAWS service, nous vous recommandons vivement de supprimer les autorisations d'accès à ce service. Par exemple, si votre pipeline ne définit pas d'actionDynamoDB DataNode ou n'utilise pas cetteSnsAlarm action, nous vous recommandons de supprimer les instructions d'autorisation associées à ces actions.

  • Remplacez 111122223333 par votre ID de compte AWS.

  • NameOfDataPipelineRoleRemplacez-le par le nom du rôle de pipeline (le rôle auquel cette politique est attachée).

  • NameOfDataPipelineResourceRoleRemplacez-le par le nom du rôle d'instance EC2.

  • us-west-1Remplacez-le par la région appropriée à votre application.

{ "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" ] } ] }

Politique gérée par défaut pour le rôle d'instance EC2

Le contenu deAmazonEC2RoleforDataPipelineRole est indiqué ci-dessous. Il s'agit de la politique gérée associée au rôle de ressource par défaut pourAWS Data Pipeline,DataPipelineDefaultResourceRole. Lorsque vous définissez un rôle de ressource pour votre pipeline, nous vous recommandons de commencer par cette politique d'autorisations, puis de supprimer les autorisations pour les actions deAWS service qui ne sont pas requises.

La version 3 de la politique est affichée, qui est la version la plus récente au moment de la rédaction de cet article. Consultez la version la plus récente de la stratégie à l'aide de la console 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": ["*"] }] }

Création de rôles IAM pourAWS Data Pipeline et modification des autorisations de rôle

Utilisez les procédures suivantes pour créer des rôles pourAWS Data Pipeline utiliser la console IAM. Le processus se compose de deux étapes. Tout d'abord, vous devez créer une stratégie d'autorisation à attacher au rôle. Vous devez créer le rôle et d'attacher la stratégie. Après avoir créé un rôle, vous pouvez modifier les autorisations du rôle en attachant et en détachant des politiques d'autorisation.

Note

Lorsque vous créez des rôles pourAWS Data Pipeline utiliser la console comme décrit ci-dessous, IAM crée et associe les politiques de confiance appropriées requises par le rôle.

Pour créer une politique d'autorisations à utiliser avec un rôle pourAWS Data Pipeline
  1. Ouvrez la console IAM à l'adresse https://console.aws.amazon.com/iam/.

  2. Dans le volet de navigation, sélectionnez Politiques, puis Créer une politique.

  3. Sélectionnez l'onglet JSON.

  4. Si vous créez un rôle de pipeline, copiez et collez le contenu de l'exemple de politique dans celui-ciExemple de stratégie d'autorisations de rôle de rôle de rôle, en le modifiant en fonction de vos exigences de sécurité. Sinon, si vous créez un rôle d'instance EC2 personnalisé, procédez de même pour l'exemple présenté dansPolitique gérée par défaut pour le rôle d'instance EC2.

  5. Choisissez Review policy (Examiner une politique).

  6. Entrez un nom pour la politique, par exemple,MyDataPipelineRolePolicy et une description facultative, puis choisissez Créer une politique.

  7. Notez le nom de la stratégie. Vous en avez besoin lors de la création de votre rôle.

Pour créer un rôle IAM pour AWS Data Pipeline
  1. Ouvrez la console IAM à l'adresse https://console.aws.amazon.com/iam/.

  2. Dans le panneau de navigation, choisissez Rôles, puis Créer un rôle.

  3. Sous Choisir un cas d'utilisation, choisissez Data Pipeline.

  4. Sous Sélectionnez votre cas d'utilisation, effectuez l'une des actions suivantes :

    • ChoisissezData Pipeline de créer un rôle de pipeline.

    • ChoisissezEC2 Role for Data Pipeline de créer un rôle de ressource.

  5. Sélectionnez Next: Permissions (Étape suivante : autorisations).

  6. Si la politique par défaut pourAWS Data Pipeline est répertoriée, procédez comme suit pour créer le rôle, puis modifiez-le conformément aux instructions de la procédure suivante. Sinon, entrez le nom de la politique que vous avez créée dans la procédure ci-dessus, puis sélectionnez-la dans la liste.

  7. Choisissez Suivant : Tags, entrez les balises à ajouter au rôle, puis choisissez Suivant : Révision.

  8. Entrez un nom pour le rôle, par exemple,MyDataPipelineRole et une description facultative, puis choisissez Créer un rôle.

Pour associer ou détacher une politique d'autorisations pour un rôle IAM pourAWS Data Pipeline
  1. Ouvrez la console IAM à l'adresse https://console.aws.amazon.com/iam/.

  2. Dans le panneau de navigation, choisissez Rôles

  3. Dans la zone de recherche, commencez à saisir le nom du rôle que vous souhaitez modifier, par exemple, DataPipelineDefaultRoleou MyDataPipelineRole, puis choisissez le nom du rôle dans la liste.

  4. Dans l'onglet Autorisations, procédez comme suit :

    • Pour dissocier une politique d'autorisations, sous Politiques d'autorisations, cliquez sur le bouton Supprimer situé à l'extrême droite de l'entrée de la politique. Choisissez Détacher lorsque vous êtes invité à confirmer.

    • Pour joindre une politique que vous avez créée précédemment, choisissez Joindre des politiques. Dans la zone de recherche, commencez à saisir le nom de la politique que vous souhaitez modifier, sélectionnez-la dans la liste, puis choisissez Joindre une politique.

Modification des rôles pour un pipeline existant

Si vous souhaitez attribuer un rôle de pipeline ou un rôle de ressource différent à un pipeline, vous pouvez utiliser l'éditeur d'architecture de laAWS Data Pipeline console.

Pour modifier les rôles attribués à un pipeline à l'aide de la console
  1. Ouvrez laAWS Data Pipeline console à l'adresse https://console.aws.amazon.com/datapipeline/.

  2. Sélectionnez le pipeline dans la liste, puis choisissez Actions, puis Modifier.

  3. Dans le volet droit de l'éditeur d'architecture, choisissez Autres.

  4. Dans les listes Role de ressource et Rôles, choisissez les rôlesAWS Data Pipeline que vous souhaitez attribuer, puis cliquez sur Enregistrer.