Personnaliser les rôles IAM - Amazon EMR

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.

Personnaliser les rôles IAM

Vous avez la possibilité de personnaliser les fonctions du service IAM et les autorisations pour limiter les privilèges selon vos exigences en matière de sécurité. Pour personnaliser les autorisations, nous vous recommandons de créer de nouveaux rôles et stratégies. Commencez avec les autorisations des stratégies gérées pour les rôles par défaut (par exemple, AmazonElasticMapReduceforEC2Role et AmazonElasticMapReduceRole). Ensuite, copiez et collez le contenu dans les déclarations de la nouvelle stratégie, modifiez les autorisations selon vos besoins et attachez les stratégies d'autorisations modifiées pour les rôles que vous créez. Vous devez avoir les autorisations IAM appropriées pour travailler avec les rôles et les stratégies. Pour plus d’informations, consultez Permettre aux utilisateurs et aux groupes de créer et de modifier des rôles.

Si vous créez un rôle EMR personnalisé pour EC2, suivez le flux de travail de base, qui crée automatiquement un profil d'instance du même nom. Amazon EC2 vous permet de créer des profils d'instance et des rôles avec des noms différents, mais Amazon EMR ne prend pas en charge cette configuration, et il en résulte une erreur « profil d'instance non valide » lorsque vous créez le cluster.

Important

Les stratégies en ligne ne sont pas automatiquement mises à jour lorsque les exigences de service évoluent. Si vous créez et attachez des politiques en ligne, vous devez savoir que des mises à jour de service peuvent se produire et provoquer soudainement des erreurs d'autorisation. Pour plus d'informations, consultez Stratégies gérées et stratégies en ligne dans le Guide de l'utilisateur IAM et Spécifiez les rôles IAM personnalisés lors de la création d'un cluster.

Pour plus d'informations sur la manipulation de rôles IAM, consultez les rubriques suivantes dans le Guide de l'utilisateur IAM :

Spécifiez les rôles IAM personnalisés lors de la création d'un cluster

Vous spécifiez le rôle de service pour Amazon EMR et le rôle pour le profil d'instance Amazon EC2 lorsque vous créez un cluster. L'utilisateur qui crée des clusters a besoin d'autorisations pour récupérer et attribuer des rôles aux instances EC2 et Amazon EMR. Dans le cas contraire, l'erreur Le compte n'est pas autorisé à appeler EC2 se produit. Pour plus d’informations, consultez Permettre aux utilisateurs et aux groupes de créer et de modifier des rôles.

Utiliser la console pour spécifier des rôles personnalisés

Lorsque vous créez un cluster, vous pouvez spécifier un rôle de service personnalisé pour Amazon EMR, un rôle personnalisé pour le profil d'instance EC2 et un rôle Auto Scaling personnalisé à l'aide des Options avancées. Lorsque vous utilisez les Options rapides, le rôle de service par défaut et le rôle par défaut du profil d'instance EC2 sont spécifiés. Pour plus d’informations, consultez Rôles de service IAM utilisés par Amazon EMR.

Note

Nous avons repensé la console Amazon EMR pour la rendre plus facile à utiliser. Consultez Console Amazon EMR pour en savoir plus sur les différences entre les anciennes et les nouvelles expériences de console.

New console
Pour spécifier des rôles IAM personnalisés avec la nouvelle console

Vous spécifiez le rôle de service pour Amazon EMR et le rôle pour le profil d'instance Amazon EC2 lorsque vous créez un cluster. Pour plus d’informations, consultez Rôles de service IAM utilisés par Amazon EMR.

  1. Connectez-vous à la AWS Management Console console Amazon EMR et ouvrez-la à l'adresse https://console.aws.amazon.com/emr.

  2. Sous EMR sur EC2 dans le volet de navigation de gauche, choisissez Clusters, puis Créer un cluster.

  3. Sous Configuration de la sécurité et autorisations, recherchez les champs Rôle IAM pour le profil d'instance et Rôle de service pour Amazon EMR. Pour chaque type de rôle, sélectionnez un rôle dans la liste. Seuls les rôles dans votre compte ayant la stratégie d'approbation appropriée pour ce type de rôle sont répertoriés.

  4. Choisissez toutes les autres options qui s'appliquent à votre cluster.

  5. Pour lancer votre cluster, choisissez Créer le cluster.

Old console
Pour spécifier des rôles IAM personnalisés avec l'ancienne console

Lorsque vous créez un cluster avec l'ancienne console, vous pouvez spécifier un rôle de service personnalisé pour Amazon EMR, un rôle personnalisé pour le profil d'instance EC2 et un rôle personnalisé Auto Scaling à l'aide des Options avancées. Lorsque vous utilisez les Options rapides, le rôle de service par défaut et le rôle par défaut du profil d'instance EC2 sont spécifiés. Pour plus d’informations, consultez Rôles de service IAM utilisés par Amazon EMR.

  1. Accédez à la nouvelle console Amazon EMR et sélectionnez Changer pour l'ancienne console depuis le menu latéral. Pour plus d'informations sur ce qu'implique le passage à l'ancienne console, consultez la rubrique Utilisation de l'ancienne console.

  2. Choisissez Créer un cluster et Go to advanced options (Aller aux options avancées).

  3. Choisissez les réglages de cluster appropriés pour votre application jusqu'à ce que vous atteigniez les Options de sécurité. Sous Autorisations, les rôles Par défaut pour Amazon EMR sont sélectionnés.

  4. Choisissez Personnalisé.

  5. Pour chaque type de rôle, sélectionnez un rôle dans la liste. Seuls les rôles dans votre compte ayant la stratégie d'approbation appropriée pour ce type de rôle sont répertoriés.

  6. Choisissez d'autres options selon les besoins de votre cluster, puis choisissez Créer un cluster.

Utilisez le AWS CLI pour spécifier des rôles personnalisés

Vous pouvez spécifier un rôle de service pour Amazon EMR et un rôle de service pour les instances EC2 du cluster en utilisant explicitement des options avec la commande create-cluster de l' AWS CLI. Utilisez l'option --service-role pour spécifier le rôle de service. Utilisez l'argument InstanceProfile de l'option --ec2-attributes pour spécifier le rôle pour le profil d'instance EC2.

Le rôle Auto Scaling est spécifié à l'aide d'une option séparée --auto-scaling-role. Pour plus d’informations, consultez Utilisation de la mise à l'échelle automatique avec une politique personnalisée pour les groupes d'instances.

Pour spécifier des rôles IAM personnalisés à l'aide du AWS CLI
  • La commande suivante spécifie le rôle de service personnalisé, MyCustomServiceRoleForEMRet un rôle personnalisé pour le profil d'instance EC2 MyCustomServiceRoleForClusterEC2Instances, lors du lancement d'un cluster. Cet exemple utilise le rôle Amazon EMR par défaut.

    Note

    Les caractères de continuation de ligne Linux (\) sont inclus pour des raisons de lisibilité. Ils peuvent être supprimés ou utilisés dans les commandes Linux. Pour Windows, supprimez-les ou remplacez-les par un caret (^).

    aws emr create-cluster --name "Test cluster" --release-label emr-7.1.0 \ --applications Name=Hive Name=Pig --service-role MyCustomServiceRoleForEMR \ --ec2-attributes InstanceProfile=MyCustomServiceRoleForClusterEC2Instances,\ KeyName=myKey --instance-type m5.xlarge --instance-count 3

Vous pouvez utiliser ces options pour spécifier explicitement les rôles par défaut plutôt qu'à l'aide de l'option --use-default-roles. L'option --use-default-roles spécifie le rôle de service et le rôle pour le profil d'instance EC2 défini dans le fichier config pour l' AWS CLI.

L'exemple suivant illustre le contenu d'un config fichier pour AWS CLI les rôles personnalisés spécifiés pour Amazon EMR. Avec ce fichier de configuration, lorsque l'option --use-default-roles est spécifiée, le cluster est créé en utilisant les MyCustomServiceRoleForEMR et MyCustomServiceRoleForClusterEC2Instances. Par défaut, le fichier config spécifie le service_role par défaut en tant que AmazonElasticMapReduceRole et le instance_profile par défaut en tant que EMR_EC2_DefaultRole.

[default] output = json region = us-west-1 aws_access_key_id = myAccessKeyID aws_secret_access_key = mySecretAccessKey emr = service_role = MyCustomServiceRoleForEMR instance_profile = MyCustomServiceRoleForClusterEC2Instances