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 Amazon EFS, vous utilisez les autorisations de fichier POSIX 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 rôle IAM.

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 Policy pour l'CreateUseraction dans la référence de l'API.

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

  • ${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 rôle IAM. Vous créez ces variables dans une politique IAM 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 d'utilisateur IAM 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 (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/.

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 rôles et des politiques IAM 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 Permissions pour AssumeRole, AssumeRoleWith SAML et AssumeRoleWithWebIdentity dans le guide de l'utilisateur IAM.

Note

AWS Transfer Family stocke le JSON de la politique, au lieu de l'Amazon Resource Name (ARN) de la politique. Ainsi, lorsque vous modifiez la politique dans la console IAM, vous devez revenir à la AWS Transfer Family console et mettre à jour vos utilisateurs avec le 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)"