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'CreateUser
action 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: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 (ARN) S3 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 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 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-nameuser
--policy \ "$(aws iam get-policy-version --policy-arnpolicy
--version-idversion
--output json)"