Creación de una política y un rol de IAM - AWS Transfer Family

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 y un rol de IAM

En este tema se describen los tipos de políticas y roles con AWS Transfer Family los que se puede utilizar y se explica el proceso de creación de un rol de usuario. También describe cómo funcionan las políticas de sesión y proporciona un ejemplo de rol de usuario.

AWS Transfer Family utiliza los siguientes tipos de funciones:

  • Función de usuario: permite a los usuarios gestionados por el servicio acceder a los recursos de Transfer Family necesarios. AWS Transfer Family asume esta función en el contexto de un ARN de usuario de Transfer Family.

  • Rol de acceso: proporciona acceso únicamente a los archivos de Amazon S3 que se están transfiriendo. Para las transferencias AS2 entrantes, el rol de acceso utiliza el nombre de recurso de Amazon (ARN) para el acuerdo. Para las transferencias AS2 salientes, el rol de acceso utiliza el ARN para el conector.

  • Rol de invocación: para usar con Amazon API Gateway como proveedor de identidad personalizado del servidor. Transfer Family asume este rol en el contexto de un ARN de servidor de Transfer Family.

  • Función de registro: se utiliza para registrar entradas en Amazon CloudWatch. Transfer Family utiliza este rol para registrar los detalles de éxito y error junto con la información sobre las transferencias de archivos. Transfer Family asume este rol en el contexto de un ARN de servidor de Transfer Family. Para las transferencias AS2 salientes, el rol de acceso utiliza el ARN del conector.

  • Rol de ejecución: permite a un usuario de Transfer Family llamar e iniciar flujos de trabajo. Transfer Family asume este rol en el contexto de un ARN de flujo de trabajo de Transfer Family.

Además de estos roles, también puede utilizar políticas de sesión. Se utiliza una política de sesión para limitar el acceso cuando es necesario. Tenga en cuenta que estas políticas son independientes, es decir, no se agregan a un rol. Más bien, se agrega una política de sesión directamente a un usuario de Transfer Family.

nota

Al crear un usuario de Transfer Family administrado por el servicio, puede seleccionar la política de generación automática basada en la carpeta de inicio. Se trata de un atajo útil si desea limitar el acceso de los usuarios a sus propias carpetas. Además, puede ver detalles sobre las políticas de sesión y un ejemplo en Funcionamiento de las políticas de sesión. También puede encontrar más información sobre las políticas de sesión en las políticas de sesión de la Guía del usuario de IAM.

Creación de un rol de usuario

Al crear un usuario, debe tomar algunas decisiones sobre su nivel de acceso. Estas decisiones incluyen a qué buckets de Amazon S3 o sistemas de archivos de Amazon EFS puede acceder el usuario, a qué partes de cada bucket de Amazon S3 y a qué archivos del sistema de archivos se puede acceder, y qué permisos tiene el usuario (por ejemplo, PUT o GET).

Para configurar el acceso, debes crear una política y un rol basados en la identidad AWS Identity and Access Management (IAM) que proporcionan esa información de acceso. Como parte de este procedimiento, debe proporcionar al usuario acceso al bucket Amazon S3 o al sistema de archivos de Amazon EFS que es el destino o la fuente de las operaciones de archivos. Para ello, deberá seguir estos pasos de alto nivel, que se describen con más detalle más adelante:

Creación de un rol de usuario
  1. Cree una política de IAM para. AWS Transfer Family Esto se describe en Para crear una política de IAM para AWS Transfer Family.

  2. Cree un rol de IAM y adjunte la nueva política de IAM. Para ver un ejemplo, consulte Ejemplo de una política de acceso de lectura y escritura.

  3. Establezca una relación de confianza entre AWS Transfer Family y la función de IAM. Esto se describe en Para establecer una relación de confianza.

Los siguientes procedimientos describen cómo crear una política y un rol de IAM.

Para crear una política de IAM para AWS Transfer Family
  1. Abra la consola de IAM en https://console.aws.amazon.com/iam/.

  2. En el panel de navegación, seleccione Policies (Políticas) y, a continuación, seleccione Create policy (Crear política).

  3. En la página Create Policy (Crear política), elija la pestaña JSON.

  4. En el editor que aparece, sustituya el contenido del editor por la política de IAM que desee asociar al rol de IAM.

    Puede conceder acceso de lectura/escritura o restringir a los usuarios a su directorio de inicio. Para obtener más información, consulte Ejemplo de una política de acceso de lectura y escritura.

  5. Elija Revisar política, indique un nombre y una descripción para la política y, a continuación, elija Crear política.

A continuación, cree un rol de IAM y asóciele la nueva política de IAM.

Para crear un rol de IAM para AWS Transfer Family
  1. En el panel de navegación, seleccione Roles y luego seleccione Crear rol.

    En la página Crear rol, asegúrese de que servicio de AWS está seleccionado.

  2. Elija Transfer (Transferencia) en la lista de servicios y, a continuación, elija Next: Permissions (Siguiente: Permisos). Esto establece una relación de confianza entre AWS Transfer Family y AWS.

  3. En la sección Asociar políticas de permisos, busque y elija la política que acaba de crear y, a continuación, elija Siguiente: Etiquetas.

  4. (Opcional) Introduzca una clave y un valor de etiqueta y seleccione Siguiente: Revisión.

  5. En la página Review (Revisión), escriba un nombre y una descripción para el nuevo rol y, a continuación, elija Create role (Crear rol).

Luego, estableces una relación de confianza entre AWS Transfer Family y AWS.

Para establecer una relación de confianza
nota

En nuestros ejemplos, utilizamos tanto ArnLike como ArnEquals. Funcionalmente son idénticos y, por lo tanto, puede utilizar cualquiera de los dos al crear sus políticas. La documentación de Transfer Family utiliza ArnLike cuando la condición contiene un carácter comodín, y utiliza ArnEquals para indicar una condición de coincidencia exacta.

  1. En la consola de IAM, elija el rol que acaba de crear.

  2. En la página Summary (Resumen), elija Trust relationships (Relaciones de confianza) y, a continuación, elija Edit trust relationship (Editar relación de confianza)

  3. En el editor Edit Trust Relationship, asegúrese de que el servicio sea "transfer.amazonaws.com". La política de acceso se muestra a continuación.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "transfer.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

    Le recomendamos que utilice las claves de condición aws:SourceAccount y aws:SourceArn para protegerse contra el problema del suplente confuso. La cuenta de origen es la propietaria del servidor y el ARN de origen es el ARN del usuario. Por ejemplo:

    "Condition": { "StringEquals": { "aws:SourceAccount": "account_id" }, "ArnLike": { "aws:SourceArn": "arn:aws:transfer:region:account_id:user/*" } }

    También puede usar la condición ArnLike si desea restringirlo a un servidor en particular en lugar de a cualquier servidor de la cuenta de usuario. Por ejemplo:

    "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:transfer:region:account-id:user/server-id/*" } }
    nota

    En los ejemplos siguientes, reemplace cada marcador de posición del usuario con su propia información.

    Para obtener más información sobre el confuso problema del diputado y otros ejemplos, consulte Prevención de la sustitución confusa entre servicios.

  4. Elija Actualizar política de confianza para actualizar la política de acceso.

Ahora ha creado un rol de IAM que le permite llamar AWS Transfer Family a AWS los servicios en su nombre. También ha asociado al rol la política de IAM que ha creado para permitir el acceso a su usuario. En la sección Cómo empezar con los puntos finales de los AWS Transfer Family servidores se asignan este rol y esta política al usuario o usuarios.

Véase también

Funcionamiento de las políticas de sesión

Cuando un administrador crea un rol, este suele incluir amplios permisos para abarcar varios casos de uso o miembros del equipo. Si un administrador configura la URL de una consola, puede reducir los permisos de la sesión resultante mediante una política de sesión. Por ejemplo, si crea un rol con acceso de lectura y escritura, puede configurar una URL que limite el acceso de los usuarios únicamente a sus directorios principales.

Las políticas de sesión son políticas avanzadas que se pasan como parámetro cuando se crea una sesión temporal mediante programación para un rol o usuario. Las políticas de sesión son útiles para bloquear a los usuarios, de modo que solo tengan acceso a las partes del bucket en las que los prefijos de los objetos contengan su nombre de usuario. Los siguientes permisos de la sesión son la intersección de las políticas de sesión y las políticas basadas en recursos más la intersección de las políticas de sesión y las políticas basadas en identidades.

Diagrama de Venn de permisos de política de sesión. Muestra la eficacia de los permisos en las intersecciones de las políticas basadas en recursos, las políticas basadas en identidades y las políticas de sesión.

Para obtener más detalles, consulte Políticas de sesión en la Guía del usuario de IAM.

En AWS Transfer Family, solo se admite una política de sesión cuando realiza una transferencia hacia o desde Amazon S3. El ejemplo de política siguiente es una política de ámbito reducido que limita el acceso de los usuarios a sus directorios home. Tenga en cuenta lo siguiente:

  • Los estados de cuenta GetObjectACL y PutObjectACL solo son obligatorios si necesitas habilitar el acceso entre cuentas. Es decir, el servidor de Transfer Family necesita acceder a un bucket de otra cuenta.

  • 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 acción de CreateUser en la Referencia de la API.

  • Si su bucket de Amazon S3 está cifrado con AWS Key Management Service (AWS KMS), debe especificar permisos adicionales en su política. Para obtener más detalles, consulte Cifrado de datos en Amazon S3.

{ "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:DeleteObject", "s3:DeleteObjectVersion", "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 HomeDirectoryyImplementación de su método de API Gateway. Estos parámetros tienen las siguientes definiciones:

  • El parámetro transfer:HomeBucket se sustituye por el primer componente de HomeDirectory.

  • El parámetro transfer:HomeFolder se sustituye por las partes restantes del parámetro HomeDirectory.

  • Se ha eliminado la barra inclinada inicial (/) del parámetro transfer:HomeDirectory para que pueda usarse como parte de un nombre de recurso de Amazon (ARN) de S3 en una declaración de Resource.

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 en home/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/.

Ejemplo de una política de acceso de lectura y escritura

Conceder acceso de lectura/escritura al bucket de Amazon S3

El siguiente ejemplo de política AWS Transfer Family otorga acceso de lectura y escritura a los objetos de su bucket de Amazon S3.

Tenga en cuenta lo siguiente:

  • Sustituya DOC-EXAMPLE-BUCKET por el nombre del bucket de Amazon S3.

  • Los estados de cuenta GetObjectACL y PutObjectACL solo son obligatorios si necesitas habilitar el acceso entre cuentas. Es decir, el servidor de Transfer Family necesita acceder a un bucket de otra cuenta.

  • Las instrucciones GetObjectVersion y DeleteObjectVersion solo son obligatorias si el control de versiones está habilitado en el bucket de Amazon S3 al que se está accediendo.

    nota

    Si alguna vez ha activado el control de versiones para su bucket, necesitará estos permisos, ya que solo puede suspender el control de versiones en Amazon S3 y no desactivarlo por completo. Para obtener más información, consulte Buckets sin control de versiones, con control de versiones activado y con control de versiones suspendido.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowListingOfUserFolder", "Action": [ "s3:ListBucket", "s3:GetBucketLocation" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::DOC-EXAMPLE-BUCKET" ] }, { "Sid": "HomeDirObjectAccess", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:DeleteObject", "s3:DeleteObjectVersion", "s3:GetObjectVersion", "s3:GetObjectACL", "s3:PutObjectACL" ], "Resource": "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*" } ] }
Otorgue acceso al sistema de archivos a los archivos del sistema de archivos Amazon EFS

nota

Además de la política, también debe asegurarse de que los permisos de sus archivos POSIX concedan el acceso adecuado. Para obtener más información, consulte Trabajar con usuarios, grupos y permisos en el nivel del sistema de archivos de red (NFS) en la Guía del usuario de Amazon Elastic File System.

El siguiente ejemplo de política otorga acceso al sistema de archivos raíz a los archivos de su sistema de archivos Amazon EFS.

nota

En los ejemplos siguientes, sustituya region por su región, account-id por la cuenta en la que se encuentra el archivo y file-system-idpor el ID de su Amazon Elastic File System (Amazon EFS).

{ "Version": "2012-10-17", "Statement": [ { "Sid": "RootFileSystemAccess", "Effect": "Allow", "Action": [ "elasticfilesystem:ClientRootAccess", "elasticfilesystem:ClientMount", "elasticfilesystem:ClientWrite" ], "Resource": "arn:aws:elasticfilesystem:region:account-id:file-system/file-system-id" } ] }

El siguiente ejemplo de política otorga al sistema de archivos del usuario acceso a los archivos de su sistema de archivos de Amazon EFS.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "UserFileSystemAccess", "Effect": "Allow", "Action": [ "elasticfilesystem:ClientMount", "elasticfilesystem:ClientWrite" ], "Resource": "arn:aws:elasticfilesystem:region:account-id:file-system/file-system-id" } ] }