Création d'un rôle et d'une politique IAM - AWS Transfer Family

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.

Création d'un rôle et d'une politique IAM

Cette rubrique décrit les types de politiques et de rôles qui peuvent être utilisés avec AWS Transfer Family, et décrit le processus de création d'un rôle utilisateur. Il décrit également le fonctionnement des politiques de session et fournit un exemple de rôle utilisateur.

AWS Transfer Family utilise les types de rôles suivants :

  • Rôle utilisateur — Permet aux utilisateurs gérés par le service d'accéder aux ressources Transfer Family nécessaires. AWS Transfer Family assume ce rôle dans le contexte d'un ARN utilisateur de Transfer Family.

  • Rôle d'accès — Permet d'accéder uniquement aux fichiers Amazon S3 en cours de transfert. Pour les transferts AS2 entrants, le rôle d'accès utilise l'Amazon Resource Name (ARN) pour l'accord. Pour les transferts AS2 sortants, le rôle d'accès utilise l'ARN du connecteur.

  • Rôle d'invocation : à utiliser avec Amazon API Gateway en tant que fournisseur d'identité personnalisé du serveur. Transfer Family assume ce rôle dans le contexte d'un ARN de serveur Transfer Family.

  • Rôle de journalisation : utilisé pour enregistrer les entrées sur Amazon CloudWatch. Transfer Family utilise ce rôle pour enregistrer les informations relatives aux réussites et aux échecs, ainsi que les informations relatives aux transferts de fichiers. Transfer Family assume ce rôle dans le contexte d'un ARN de serveur Transfer Family. Pour les transferts AS2 sortants, le rôle de journalisation utilise l'ARN du connecteur.

  • Rôle d'exécution — Permet à un utilisateur de Transfer Family d'appeler et de lancer des flux de travail. Transfer Family assume ce rôle dans le contexte d'un flux de travail (ARN) Transfer Family.

Outre ces rôles, vous pouvez également utiliser des politiques de session. Une politique de session est utilisée pour limiter l'accès lorsque cela est nécessaire. Notez que ces politiques sont autonomes, c'est-à-dire que vous ne les ajoutez pas à un rôle. Vous ajoutez plutôt une politique de session directement à un utilisateur de Transfer Family.

Note

Lorsque vous créez un utilisateur Transfer Family géré par un service, vous pouvez sélectionner Générer automatiquement une politique en fonction du dossier de base. Il s'agit d'un raccourci utile si vous souhaitez limiter l'accès des utilisateurs à leurs propres dossiers. Vous pouvez également consulter des détails sur les politiques de session et un exemple dansComment fonctionnent les politiques de session. Vous trouverez également plus d'informations sur les politiques de session dans la section Politiques de session du guide de l'utilisateur IAM.

Créer un rôle d'utilisateur

Lorsque vous créez un utilisateur, vous prenez un certain nombre de décisions concernant son accès. Ces décisions incluent les compartiments Amazon S3 ou les systèmes de fichiers Amazon EFS auxquels l'utilisateur peut accéder, les parties de chaque compartiment Amazon S3 et les fichiers du système de fichiers accessibles, ainsi que les autorisations dont dispose l'utilisateur (par exemple, PUT ouGET).

Pour définir l'accès, vous devez créer une politique et un rôle basés sur l'identité AWS Identity and Access Management (IAM) qui fournissent ces informations d'accès. Dans le cadre de ce processus, vous permettez à votre utilisateur d'accéder au compartiment Amazon S3 ou au système de fichiers Amazon EFS qui est la cible ou la source des opérations sur les fichiers. Pour ce faire, effectuez les étapes générales suivantes, décrites plus loin en détail :

Créer un rôle d'utilisateur
  1. Créez une politique IAM pour AWS Transfer Family. Ceci est décrit dansPour créer une politique IAM pour AWS Transfer Family.

  2. Créez un rôle IAM et associez la nouvelle politique IAM. Pour obtenir un exemple, consultez Exemple de politique d'accès en lecture/écriture.

  3. Établissez une relation de confiance entre AWS Transfer Family et le rôle IAM. Ceci est décrit dansÉtape 1 : Établir une relation d'approbation.

Les procédures suivantes décrivent comment créer une politique et un rôle IAM.

Pour créer une politique IAM pour AWS Transfer Family
  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. Sur la page Créer une stratégie, choisissez l'onglet JSON.

  4. Dans l'éditeur qui apparaît, remplacez le contenu de l'éditeur par la politique IAM que vous souhaitez associer au rôle IAM.

    Vous pouvez accorder un accès en lecture/écriture ou restreindre l'accès des utilisateurs à leur répertoire personnel. Pour plus d’informations, consultez Exemple de politique d'accès en lecture/écriture.

  5. Choisissez Réviser la politique et fournissez un nom et une description pour votre politique, puis choisissez Créer une politique.

Créez ensuite un rôle IAM et attachez-lui un nouvelle stratégie IAM.

Pour créer un rôle IAM pour AWS Transfer Family
  1. Dans le volet de navigation, sélectionnez Rôles, puis Créer un rôle.

    Sur la page Créer un rôle, assurez-vous que le AWS service est sélectionné.

  2. Choisissez Transfer (Transférer) dans la liste des services, puis Next: Permissions (Suivant : Autorisations). Cela établit une relation de confiance entre AWS Transfer Family et AWS.

  3. Dans la section Joindre des politiques d'autorisation, recherchez et choisissez la politique que vous venez de créer, puis choisissez Next : Tags.

  4. (Facultatif) Entrez une clé et une valeur pour une balise, puis choisissez Next: Review (Suivant : Vérifier).

  5. Sur la page Review (Vérifier), entrez un nom et une description pour votre nouveau rôle, puis choisissez Create role (Créer un rôle).

Ensuite, vous établissez une relation de confiance entre AWS Transfer Family et AWS.

Étape 1 : Établir une relation d'approbation
Note

Dans nos exemples, nous utilisons à la fois ArnLike etArnEquals. Ils sont fonctionnellement identiques et vous pouvez donc utiliser l'un ou l'autre lorsque vous élaborez vos politiques. La documentation Transfer Family ArnLike est utilisée lorsque la condition contient un caractère générique et ArnEquals pour indiquer une condition de correspondance exacte.

  1. Dans la console IAM, choisissez le rôle que vous venez de créer.

  2. Sur la page Récapitulatif, choisissez Relations d' approbation, puis choisissez Modifier la relation d'approbation.

  3. Dans l'éditeur Modifier une relation de confiance, assurez-vous que le service est"transfer.amazonaws.com". La politique d'accès est illustrée ci-dessous.

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

    Nous vous recommandons d'utiliser les clés de condition aws:SourceAccount et aws:SourceArn pour vous protéger contre le problème de l'adjoint confus. Le compte source est le propriétaire du serveur et l'ARN source est l'ARN de l'utilisateur. Par exemple :

    "Condition": { "StringEquals": { "aws:SourceAccount": "account_id" }, "ArnLike": { "aws:SourceArn": "arn:aws:transfer:region:account_id:user/*" } }

    Vous pouvez également utiliser ArnLike cette condition si vous souhaitez vous limiter à un serveur en particulier plutôt qu'à n'importe quel serveur du compte utilisateur. Par exemple :

    "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:transfer:region:account-id:user/server-id/*" } }
    Note

    Dans les exemples ci-dessus, remplacez chaque espace réservé saisi par l'utilisateur par vos propres informations.

    Pour plus de détails sur le problème des députés confus et d'autres exemples, voirPrévention du problème de l’adjoint confus entre services.

  4. Choisissez Mettre à jour la politique de confiance pour mettre à jour la politique d'accès.

Vous avez maintenant créé un rôle IAM qui permet d' AWS Transfer Family appeler AWS des services en votre nom. Vous avez associé au rôle la politique IAM que vous avez créée pour donner accès à votre utilisateur. Dans la Commencer à utiliser les points de terminaison AWS Transfer Family de serveur section, ce rôle et cette politique sont attribués à votre ou vos utilisateurs.

Voir aussi

Comment fonctionnent les politiques de session

Lorsqu'un administrateur crée un rôle, celui-ci inclut souvent des autorisations étendues pour couvrir plusieurs cas d'utilisation ou plusieurs membres de l'équipe. Si un administrateur configure une URL de console, il peut réduire les autorisations pour la session qui en résulte en utilisant une politique de session. Par exemple, si vous créez un rôle avec un accès en lecture/écriture, vous pouvez configurer une URL qui limite l'accès des utilisateurs à leur répertoire personnel uniquement.

Les politiques de session sont des politiques avancées que vous transmettez en paramètre lorsque vous créez par programmation une session temporaire pour un rôle ou un utilisateur. Les politiques de session sont utiles pour verrouiller les utilisateurs afin qu'ils n'aient accès qu'aux parties de votre compartiment où les préfixes d'objets contiennent leur nom d'utilisateur. Le schéma suivant montre que les autorisations de la politique de session sont l'intersection des politiques de session et des politiques basées sur les ressources, ainsi que l'intersection des politiques de session et des politiques basées sur l'identité.

Schéma de Venn des autorisations de politique de session. Montre dans quelle mesure les autorisations sont efficaces à l'intersection des politiques basées sur les ressources, des politiques basées sur l'identité et des politiques de session.

Pour plus de détails, consultez la section Politiques de session dans le guide de l'utilisateur IAM.

Dans AWS Transfer Family, une politique de session n'est prise en charge que lorsque vous effectuez un transfert vers ou depuis Amazon S3. L'exemple de stratégie suivant est une stratégie de session qui limite l'accès des utilisateurs à leurs home annuaires uniquement. Notez ce qui suit :

  • Les PutObjectACL relevés GetObjectACL et ne sont nécessaires que si vous devez activer l'accès multicompte. En d'autres termes, votre serveur Transfer Family doit accéder à un bucket d'un autre compte.

  • La longueur maximale d'une politique de session est de 2 048 caractères. Pour plus de détails, consultez le paramètre de demande Policy pour l'CreateUseraction dans la référence de l'API.

  • Si votre compartiment Amazon S3 est chiffré à l'aide de AWS Key Management Service (AWS KMS), vous devez spécifier des autorisations supplémentaires dans votre politique. Pour plus de détails, consultez Chiffrement des données dans Amazon S3.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowListingOfUserFolder", "Action": [ "s3:ListBucket" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::${transfer:HomeBucket}" ], "Condition": { "StringLike": { "s3:prefix": [ "${transfer:HomeFolder}/*", "${transfer:HomeFolder}" ] } } }, { "Sid": "HomeDirObjectAccess", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:DeleteObject", "s3:DeleteObjectVersion", "s3:GetObjectVersion", "s3:GetObjectACL", "s3:PutObjectACL" ], "Resource": "arn:aws:s3:::${transfer:HomeDirectory}/*" } ] }
Note

L'exemple de politique précédent suppose que le répertoire personnel des utilisateurs est configuré pour inclure une barre oblique finale, pour indiquer qu'il s'agit d'un répertoire. Si, par contre, vous définissez le nom d'un utilisateur HomeDirectory sans la barre oblique finale, vous devez l'inclure dans votre politique.

Dans l'exemple de stratégie précédent, notez l'utilisation des paramètres de transfer:HomeDirectory stratégie transfer:HomeFoldertransfer:HomeBucket, et. Ces paramètres sont définis pour HomeDirectory ce qui est configuré pour l'utilisateur, comme décrit dans HomeDirectoryetImplémentation de votre méthode API Gateway. Ces paramètres ont les définitions suivantes :

  • Le transfer:HomeBucket paramètre est remplacé par le premier composant deHomeDirectory.

  • Le transfer:HomeFolder paramètre est remplacé par les parties restantes du HomeDirectory paramètre.

  • La barre oblique (/) initiale du transfer:HomeDirectory paramètre a été supprimée afin de pouvoir être utilisé dans le cadre d'un nom de ressource Amazon (ARN) S3 dans une Resource instruction.

Note

Si vous utilisez des répertoires logiques, c'est-à-dire ceux de l'utilisateur, LOGICAL ces paramètres de homeDirectoryType stratégie (HomeBucketHomeDirectory, etHomeFolder) ne sont pas pris en charge.

Supposons, par exemple, que le HomeDirectory paramètre configuré pour l'utilisateur Transfer Family soit/home/bob/amazon/stuff/.

  • transfer:HomeBucketest réglé sur/home.

  • transfer:HomeFolderest réglé sur/bob/amazon/stuff/.

  • transfer:HomeDirectorydevienthome/bob/amazon/stuff/.

Le premier "Sid" permet à l'utilisateur de répertorier tous les répertoires à partir de/home/bob/amazon/stuff/.

La seconde "Sid" limite l'utilisateur put et l'getaccès à ce même chemin,/home/bob/amazon/stuff/.

Exemple de politique d'accès en lecture/écriture

Accorder un accès en lecture/écriture au compartiment Amazon S3

L'exemple de politique suivant AWS Transfer Family accorde un accès en lecture/écriture aux objets de votre compartiment Amazon S3.

Notez ce qui suit :

  • Remplacez DOC-EXAMPLE-BUCKET avec le nom de votre compartiment Amazon S3.

  • Les PutObjectACL relevés GetObjectACL et ne sont nécessaires que si vous devez activer l'accès multicompte. En d'autres termes, votre serveur Transfer Family doit accéder à un bucket d'un autre compte.

  • Les DeleteObjectVersion instructions GetObjectVersion and ne sont requises que si le versionnement est activé sur le compartiment Amazon S3 auquel on accède.

    Note

    Si vous avez déjà activé la gestion des versions pour votre compartiment, vous avez besoin de ces autorisations, car vous ne pouvez suspendre la gestion des versions que dans Amazon S3, et non la désactiver complètement. Pour plus de détails, consultez les sections Buckets non versionnés, activés pour le versionnement et Suspendus des versions.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowListingOfUserFolder", "Action": [ "s3:ListBucket", "s3:GetBucketLocation" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::DOC-EXAMPLE-BUCKET" ] }, { "Sid": "HomeDirObjectAccess", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:DeleteObject", "s3:DeleteObjectVersion", "s3:GetObjectVersion", "s3:GetObjectACL", "s3:PutObjectACL" ], "Resource": "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*" } ] }
Autoriser le système de fichiers à accéder aux fichiers du système de fichiers Amazon EFS

Note

Outre la politique, vous devez également vous assurer que les autorisations de vos fichiers POSIX accordent l'accès approprié. Pour plus d'informations, consultez Working with users, groups, and permissions at the Network File System (NFS) Level (Utilisation d'utilisateurs, de groupes et d'autorisations au niveau NFS (Network File System)) dans le Guide de l'utilisateur Amazon Elastic File System.

L'exemple de politique suivant accorde au système de fichiers racine l'accès aux fichiers de votre système de fichiers Amazon EFS.

Note

Dans les exemples suivants, remplacez region par votre région, account-id par le compte dans lequel se trouve le fichier et file-system-idpar l'ID de votre Amazon Elastic File System (Amazon EFS).

{ "Version": "2012-10-17", "Statement": [ { "Sid": "RootFileSystemAccess", "Effect": "Allow", "Action": [ "elasticfilesystem:ClientRootAccess", "elasticfilesystem:ClientMount", "elasticfilesystem:ClientWrite" ], "Resource": "arn:aws:elasticfilesystem:region:account-id:file-system/file-system-id" } ] }

L'exemple de politique suivant autorise le système de fichiers utilisateur à accéder aux fichiers de votre système de fichiers Amazon EFS.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "UserFileSystemAccess", "Effect": "Allow", "Action": [ "elasticfilesystem:ClientMount", "elasticfilesystem:ClientWrite" ], "Resource": "arn:aws:elasticfilesystem:region:account-id:file-system/file-system-id" } ] }