Création d'une politique de session pour un compartiment Amazon S3 - 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'une politique de session pour un compartiment Amazon S3

Une politique de session est une politique AWS Identity and Access Management (IAM) qui limite les utilisateurs à certaines parties d'un compartiment Amazon S3. Pour cela, elle évalue l'accès en temps réel.

Note

Les politiques de session ne sont utilisées qu'avec Amazon S3. Pour AmazonEFS, vous utilisez les autorisations relatives aux POSIX fichiers pour limiter l'accès.

Vous pouvez utiliser une politique de session lorsque vous devez accorder le même accès à un groupe d'utilisateurs à une partie spécifique de votre compartiment Amazon S3. Par exemple, un groupe d'utilisateurs peut avoir besoin d'accéder uniquement au répertoire home. Ce groupe d'utilisateurs partage le même IAM rôle.

Note

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 de politique pour l'CreateUseraction dans la APIréférence.

Pour créer une politique de session, utilisez les variables de stratégie suivantes dans votre IAM stratégie :

  • ${transfer:HomeBucket}

  • ${transfer:HomeDirectory}

  • ${transfer:HomeFolder}

  • ${transfer:UserName}

Important

Vous ne pouvez pas utiliser les variables précédentes dans les politiques gérées. Vous ne pouvez pas non plus les utiliser comme variables de politique dans une définition de IAM rôle. Vous créez ces variables dans une IAM politique et vous les fournissez directement lors de la configuration de votre utilisateur. De plus, vous ne pouvez pas utiliser la ${aws:Username} variable dans cette politique de session. Cette variable fait référence à un nom IAM d'utilisateur et non au nom d'utilisateur requis par AWS Transfer Family.

Le code suivant montre un exemple de politique de session.

{ "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:DeleteObjectVersion", "s3:DeleteObject", "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 S3 (ARN) 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 de 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/.

Avec la politique précédente en place, lorsqu'un utilisateur se connecte, il ne peut accéder qu'aux objets de son répertoire personnel. Au moment de la connexion, AWS Transfer Family remplace ces variables par les valeurs appropriées pour l'utilisateur. Cela permet d'appliquer plus facilement les mêmes documents de stratégie à plusieurs utilisateurs. Cette approche réduit les coûts liés à la gestion des IAM rôles et des politiques pour gérer l'accès de vos utilisateurs à votre compartiment Amazon S3.

Vous pouvez également utiliser une politique de session pour personnaliser l'accès de chacun de vos utilisateurs en fonction des besoins de votre entreprise. Pour plus d'informations, consultez les sections Autorisations pour AssumeRole AssumeRoleWithSAML, et AssumeRoleWithWebIdentity dans le Guide de IAM l'utilisateur.

Note

AWS Transfer Family stocke la politiqueJSON, au lieu du nom de ressource Amazon (ARN) de la politique. Ainsi, lorsque vous modifiez la politique dans la IAM console, vous devez revenir à la AWS Transfer Family console et informer vos utilisateurs du contenu de la politique le plus récent. Vous pouvez mettre à jour l'utilisateur dans l'onglet Informations sur la politique de la section Configuration utilisateur.

Si vous utilisez le AWS CLI, vous pouvez utiliser la commande suivante pour mettre à jour la politique.

aws transfer update-user --server-id server --user-name user --policy \ "$(aws iam get-policy-version --policy-arn policy --version-id version --output json)"