Chaînage des rôles IAM dans Amazon Neptune - Amazon Neptune

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.

Chaînage des rôles IAM dans Amazon Neptune

Important

La nouvelle fonctionnalité de chargement en bloc entre comptes, introduite dans la version 1.2.1.0.R3 du moteur, tire parti du chaînage des rôles IAM et peut dans certains cas entraîner une dégradation des performances de chargement en bloc. Par conséquent, les mises à niveau vers les versions du moteur prenant en charge cette fonctionnalité ont été temporairement suspendues jusqu'à ce que le problème soit résolu.

Lorsque vous attachez un rôle à un cluster, ce dernier peut endosser ce rôle afin d'accéder aux données stockées dans Amazon S3. À partir de la version 1.2.1.0.R3 du moteur, si ce rôle n'a pas accès à toutes les ressources dont vous avez besoin, vous pouvez enchaîner un ou plusieurs rôles supplémentaires que votre cluster endossera pour accéder à d'autres ressources. Chaque rôle de la chaîne passe au rôle suivant, jusqu'à ce que le cluster endosse le dernier rôle à la fin de la chaîne.

Pour enchaîner des rôles, vous devez établir une relation d'approbation entre eux. Par exemple, pour enchaîner RoleB à RoleA, RoleA doit disposer d'une politique d'autorisations lui permettant d'endosser RoleB, et RoleB d'une politique d'approbation lui permettant de retransmettre ses autorisations à RoleA. Pour plus d'informations, consultez Utilisation de rôles IAM.

Le premier rôle de la chaîne doit être attaché au cluster qui charge les données.

Le premier rôle, ainsi que chaque rôle ultérieur qui endosse le rôle suivant dans la chaîne, doivent avoir les éléments suivants :

  • Une politique qui inclut une déclaration spécifique ayant un effet Allow sur l'action sts:AssumeRole.

  • L'Amazon Resource Name (ARN) du rôle dans un élément Resource.

Note

Le compartiment Amazon S3 cible doit se trouver dans la même AWS région que le cluster.

Accès intercompte à l'aide de rôles enchaînés

Vous pouvez accorder un accès intercompte en enchaînant un ou plusieurs rôles appartenant à un autre compte. Lorsque votre cluster endosse temporairement un rôle appartenant à un autre compte, il peut accéder aux ressources qui s'y trouvent.

Supposons, par exemple, que le compte A souhaite accéder à des données dans un compartiment Amazon S3 appartenant au compte B :

  • Le compte A crée un rôle de AWS service nommé pour Neptune RoleA et l'attache à un cluster.

  • Le compte B crée un rôle nommé RoleB qui est autorisé à accéder aux données du compartiment du compte B.

  • Le compte A attache une politique d'autorisation à RoleA qui lui permet d'endosser RoleB.

  • Le compte B attache une politique d'approbation à RoleB qui lui permet de retransmettre ses autorisations à RoleA.

  • Pour accéder aux données dans le compartiment du compte B, le compte A exécute une commande de chargeur à l'aide d'un paramètre iamRoleArn qui enchaîne les rôles RoleA et RoleB. Pendant la durée de l'opération de chargeur, RoleA endosse temporairement RoleB pour accéder au compartiment Amazon S3 dans le compte B.

Schéma illustrant l'accès intercompte à l'aide de rôles enchaînés

Par exemple, RoleA a une politique d'approbation établissant une relation d'approbation avec Neptune :

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

RoleA a également une politique d'autorisation lui permettant d'endosser RoleB, qui appartient au compte B :

{ "Version": "2012-10-17", "Statement": [ { "Sid": "Stmt1487639602000", "Effect": "Allow", "Action": [ "sts:AssumeRole" ], "Resource": "arn:aws:iam::(Account B ID):role/RoleB" } ] }

Inversement, RoleB a une politique d'approbation établissant une relation d'approbation avec RoleA :

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "sts:AssumeRole", "Principal": { "AWS": "arn:aws:iam::(Account A ID):role/RoleA" } } ] }

RoleB a également besoin d'une autorisation pour accéder aux données du compartiment Amazon S3 situé dans le compte B.

Création d'un point de terminaison VPC AWS Security Token Service (STS)

Le chargeur Neptune nécessite un point de terminaison VPC AWS STS lorsque vous chaînez des rôles IAM pour un accès privé via des adresses IP privées. AWS STS APIs Vous pouvez vous connecter directement d'un Amazon VPC à un point AWS STS de terminaison VPC de manière sécurisée et évolutive. Lorsque vous utilisez un point de terminaison de VPC d'interface, votre niveau de sécurité s'en trouve amélioré, car vous n'avez pas besoin d'ouvrir de pare-feu pour le trafic sortant. Vous bénéficiez en outre d'autres avantages liés à l'utilisation des points de terminaison Amazon VPC.

Lorsque vous utilisez un point de terminaison VPC, le trafic vers AWS STS n'est pas transmis via Internet et ne quitte jamais le réseau Amazon. Votre VPC est connecté en toute sécurité, AWS STS sans risques de disponibilité ni contraintes de bande passante pour le trafic réseau. Pour plus d'informations, consultez Utilisation des points de terminaison de VPC d'interface AWS STS.

Pour configurer l'accès pour AWS Security Token Service (STS)
  1. Connectez-vous à la console Amazon VPC AWS Management Console et ouvrez-la à l'adresse. https://console.aws.amazon.com/vpc/

  2. Dans le volet de navigation, choisissez Points de terminaison.

  3. Choisissez Create Endpoint (Créer un point de terminaison).

  4. Choisissez le nom de service : com.amazonaws.region.sts pour le point de terminaison de type interface.

  5. Choisissez le VPC qui contient votre instance de base de données Neptune et votre instance. EC2

  6. Cochez la case à côté du sous-réseau dans lequel se trouve votre EC2 instance. Il n’est pas possible de sélectionner plusieurs sous-réseaux dans la même zone de disponibilité.

  7. Pour IP address type (Type d'adresse IP), choisissez l'une des options suivantes :

    • IPv4— Attribuez IPv4 des adresses aux interfaces réseau de vos terminaux. Cette option n'est prise en charge que si tous les sous-réseaux sélectionnés possèdent des plages d' IPv4 adresses.

    • IPv6— Attribuez IPv6 des adresses aux interfaces réseau de vos terminaux. Cette option n'est prise en charge que si tous les sous-réseaux sélectionnés sont des sous-réseaux IPv6 réservés.

    • Dualstack — Attribuez à la fois des IPv6 adresses IPv4 et des adresses aux interfaces réseau de vos terminaux. Cette option n'est prise en charge que si tous les sous-réseaux sélectionnés possèdent à la fois des plages d' IPv6 adresses IPv4 et des plages d'adresses.

  8. Pour Security groups (Groupes de sécurité), sélectionnez les groupes de sécurité à associer aux interfaces réseau du point de terminaison pour le point de terminaison d'un VPC. Vous devez sélectionner tous les groupes de sécurité attachés à votre instance de base de données Neptune et EC2 à votre instance.

  9. Pour Policy (Politique), sélectionnez Full access (Accès complet) pour autoriser toutes les opérations de tous les principaux sur toutes les ressources via le point de terminaison de VPC. Sinon, sélectionnez Custom (Personnalisé) pour joindre une politique de point de terminaison de VPC qui contrôle les autorisations dont disposent les principaux pour effectuer des actions sur les ressources via le point de terminaison de VPC. Cette option n’est disponible que si le service prend en charge les politiques de points de terminaison de VPC. Pour plus d'informations, consultez Utilisation des politiques de point de terminaison.

  10. (Facultatif) Pour ajouter une balise, choisissez Ajouter une nouvelle balise et saisissez la clé et la valeur de cette balise.

  11. Choisissez Créer un point de terminaison.

Pour plus d'informations sur la création du point de terminaison, consultez Points de terminaison de VPC dans le Guide de l'utilisateur Amazon VPC. Notez que le point de terminaison de VPC Amazon STS est un prérequis pour le chaînage des rôles IAM.

Maintenant que vous avez accordé l'accès au AWS STS point de terminaison, vous pouvez vous préparer à charger les données. Pour en savoir plus sur les formats de données pris en charge, consultez Formats de chargement de données.

Chaînage des rôles dans une commande de chargeur

Vous pouvez spécifier le chaînage des rôles lorsque vous exécutez une commande de chargeur en incluant une liste de rôles séparée par des virgules ARNs dans le paramètre. iamRoleArn

Bien que vous n'ayez généralement besoin que de deux rôles dans une chaîne, il est possible d'en enchaîner trois ou plus. Par exemple, cette commande de chargeur enchaîne trois rôles :

curl -X POST https://localhost:8182/loader \ -H 'Content-Type: application/json' \ -d '{ "source" : "s3://(the target bucket name)/(the target date file name)", "iamRoleArn" : "arn:aws:iam::(Account A ID):role/(RoleA),arn:aws:iam::(Account B ID):role/(RoleB),arn:aws:iam::(Account C ID):role/(RoleC)", "format" : "csv", "region" : "us-east-1" }'