Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Creación de una política de sesión para un bucket de Amazon S3
Una política de sesión es una política AWS Identity and Access Management (IAM) que restringe a los usuarios a determinadas partes de un bucket de Amazon S3. Esto se consigue evaluando el acceso en tiempo real.
nota
Las políticas de sesión solo se utilizan con Amazon S3. En el caso de AmazonEFS, se utilizan los permisos de POSIX archivos para limitar el acceso.
Puede usar una política de sesión cuando sea necesario proporcionar a un grupo de usuarios el mismo acceso a una parte determinada del bucket de Amazon S3. Por ejemplo, puede que un grupo de usuarios solo requiera acceso al directorio home
. Ese grupo de usuarios comparte el mismo IAM rol.
nota
La longitud máxima de una ruta es 2048 caracteres. Para obtener más información, consulte el parámetro de solicitud de política correspondiente a la CreateUser
acción en la APIreferencia.
Para crear una política de sesión, utilice las siguientes variables de política en su IAM política:
-
${transfer:HomeBucket}
-
${transfer:HomeDirectory}
-
${transfer:HomeFolder}
-
${transfer:UserName}
importante
No puede usar las variables anteriores en Políticas administradas. Tampoco puede utilizarlas como variables de política en una definición de IAM rol. Estas variables se crean en una IAM política y se proporcionan directamente al configurar el usuario. Tampoco puede utilizar la variable ${aws:Username}
en esta política de sesión. Esta variable hace referencia a un nombre IAM de usuario y no al nombre de usuario requerido por AWS Transfer Family.
El código siguiente muestra un ejemplo de política de sesión.
{ "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}/*" } ] }
nota
En el ejemplo de política anterior se supone que los directorios principales de los usuarios están configurados para incluir una barra al final, lo que significa que se trata de un directorio. Si, por el contrario, establece el HomeDirectory
de un usuario sin la barra final, debe incluirlo como parte de su política.
En el ejemplo anterior de política, anote el uso de los parámetros de la política transfer:HomeFolder
, transfer:HomeBucket
y transfer:HomeDirectory
. Estos parámetros se establecen para el HomeDirectory
que está configurado para el usuario, tal y como se describe en HomeDirectoryyImplementar tu método API Gateway. Estos parámetros tienen las siguientes definiciones:
El parámetro
transfer:HomeBucket
se sustituye por el primer componente deHomeDirectory
.El parámetro
transfer:HomeFolder
se sustituye por las partes restantes del parámetroHomeDirectory
.Se ha eliminado la barra diagonal inicial (
/
) deltransfer:HomeDirectory
parámetro para que pueda usarse como parte de un nombre de recurso de Amazon S3 (ARN) en unaResource
declaración.
nota
Si utiliza directorios lógicos, es decir, el homeDirectoryType
del usuario es LOGICAL
, estos parámetros de política (HomeBucket
, HomeDirectory
y HomeFolder
) no son compatibles.
Por ejemplo, supongamos que el parámetro HomeDirectory
que está configurado para el usuario de Transfer Family es /home/bob/amazon/stuff/
.
transfer:HomeBucket
toma el valor de/home
.transfer:HomeFolder
toma el valor de/bob/amazon/stuff/
.transfer:HomeDirectory
se convierte enhome/bob/amazon/stuff/
.
El primer "Sid"
permite al usuario enumerar todos los directorios a partir de /home/bob/amazon/stuff/
.
El segundo "Sid"
limita los accesos del usuario put
y get
a la misma ruta, /home/bob/amazon/stuff/
.
Al aplicar la política anterior, cuando un usuario inicia sesión solo tiene acceso a los objetos de su directorio de inicio. En el momento de la conexión, AWS Transfer Family reemplaza estas variables por los valores adecuados para el usuario. Esto facilita la aplicación de los mismos documentos de política a múltiples usuarios. Este enfoque reduce la sobrecarga de la administración de IAM roles y políticas para administrar el acceso de los usuarios a su bucket de Amazon S3.
También puede utilizar una política de sesión para personalizar el acceso de cada usuario en función de los requisitos de su negocio. Para obtener más información, consulte Permisos para AssumeRole y AssumeRoleWithWebIdentity en la Guía del IAM usuario. AssumeRoleWith SAML
nota
AWS Transfer Family almacena la política JSON en lugar del nombre de recurso de Amazon (ARN) de la política. Por lo tanto, cuando cambies la política en la IAM consola, tendrás que volver a la AWS Transfer Family consola y actualizar a tus usuarios con el contenido más reciente de la política. Puede actualizar el usuario en la pestaña Información de la política en la sección Configuración de usuario.
Si utilizas la AWS CLI, puedes usar el siguiente comando para actualizar la política.
aws transfer update-user --server-id
server
--user-nameuser
--policy \ "$(aws iam get-policy-version --policy-arnpolicy
--version-idversion
--output json)"