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'CreateUser
action 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:HomeFolder
transfer: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 duHomeDirectory
paramètre.La barre oblique (
/
) initiale dutransfer:HomeDirectory
paramètre a été supprimée afin de pouvoir être utilisé dans le cadre d'un nom de ressource Amazon S3 (ARN) dans uneResource
instruction.
Note
Si vous utilisez des répertoires logiques, c'est-à-dire ceux de l'utilisateur, LOGICAL
ces paramètres de homeDirectoryType
stratégie (HomeBucket
HomeDirectory
, 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:HomeBucket
est réglé sur/home
.transfer:HomeFolder
est réglé sur/bob/amazon/stuff/
.transfer:HomeDirectory
devienthome/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'get
accè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-nameuser
--policy \ "$(aws iam get-policy-version --policy-arnpolicy
--version-idversion
--output json)"