Políticas de IAM para flujos de trabajo - 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.

Políticas de IAM para flujos de trabajo

Al añadir un flujo de trabajo a un servidor, debe seleccionar un rol de ejecución. El servidor utiliza este rol cuando ejecuta el flujo de trabajo. Si el rol no tiene los permisos adecuados, AWS Transfer Family no podrá ejecutar el flujo de trabajo.

En esta sección se describe un posible conjunto de permisos AWS Identity and Access Management (IAM) que puede utilizar para ejecutar un flujo de trabajo. Más adelante en este tema se describen otros ejemplos.

nota

Si sus archivos de Amazon S3 tienen etiquetas, debe añadir uno o dos permisos a su política de IAM.

  • Añada s3:GetObjectTagging para un archivo de Amazon S3 que no tenga versiones.

  • Añada s3:GetObjectVersionTagging para un archivo de Amazon S3 que tenga versiones.

Creación de un rol de ejecución para su flujo de trabajo
  1. Cree un nuevo rol de IAM y añada la política AWS administrada AWSTransferFullAccess al rol. Para obtener más información sobre cómo crear un nuevo rol de IAM, consulte Creación de una política y un rol de IAM.

  2. Crear otra política con los siguientes permisos y asóciela al rol. Reemplace cada user input placeholder por su propia información.

    { "Version": "2012-10-17", "Statement": [ { "Sid": "ConsoleAccess", "Effect": "Allow", "Action": "s3:GetBucketLocation", "Resource": "*" }, { "Sid": "ListObjectsInBucket", "Effect": "Allow", "Action": "s3:ListBucket", "Resource": [ "arn:aws:s3:::DOC-EXAMPLE-BUCKET" ] }, { "Sid": "AllObjectActions", "Effect": "Allow", "Action": "s3:*Object", "Resource": [ "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*" ] }, { "Sid": "GetObjectVersion", "Effect": "Allow", "Action": "s3:GetObjectVersion", "Resource": [ "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*" ] }, { "Sid": "Custom", "Effect": "Allow", "Action": [ "lambda:InvokeFunction" ], "Resource": [ "arn:aws:lambda:region:account-id:function:function-name" ] }, { "Sid": "Tag", "Effect": "Allow", "Action": [ "s3:PutObjectTagging", "s3:PutObjectVersionTagging" ], "Resource": [ "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*" ] } ] }
  3. Guarde este rol y especifíquelo como rol de ejecución cuando añada un flujo de trabajo a un servidor.

    nota

    Al crear funciones de IAM, le AWS recomienda que restrinja el acceso a sus recursos tanto como sea posible para su flujo de trabajo.

Relaciones de confianza del flujo de trabajo

Los roles de ejecución del flujo de trabajo también requieren una relación de confianza con transfer.amazonaws.com. Para establecer una relación de confianza para AWS Transfer Family, consulte Para establecer una relación de confianza.

Mientras establece su relación de confianza, también puede tomar medidas para evitar el problema del suplente confuso. Para obtener una descripción de este problema, así como ejemplos de cómo evitarlo, consulte Prevención de la sustitución confusa entre servicios.

Ejemplo de rol de ejecución: descifrado, copiado y etiquetado

Si tiene flujos de trabajo que incluyen pasos de etiquetado, copiado y descifrado, puede utilizar la siguiente política de IAM. Reemplace cada user input placeholder por su propia información.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "CopyRead", "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetObjectTagging", "s3:GetObjectVersionTagging" ], "Resource": "arn:aws:s3:::source-bucket-name/*" }, { "Sid": "CopyWrite", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:PutObjectTagging" ], "Resource": "arn:aws:s3:::destination-bucket-name/*" }, { "Sid": "CopyList", "Effect": "Allow", "Action": "s3:ListBucket", "Resource": [ "arn:aws:s3:::source-bucket-name", "arn:aws:s3:::destination-bucket-name" ] }, { "Sid": "Tag", "Effect": "Allow", "Action": [ "s3:PutObjectTagging", "s3:PutObjectVersionTagging" ], "Resource": "arn:aws:s3:::destination-bucket-name/*", "Condition": { "StringEquals": { "s3:RequestObjectTag/Archive": "yes" } } }, { "Sid": "ListBucket", "Effect": "Allow", "Action": "s3:ListBucket", "Resource": [ "arn:aws:s3:::destination-bucket-name" ] }, { "Sid": "HomeDirObjectAccess", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:DeleteObjectVersion", "s3:DeleteObject", "s3:GetObjectVersion" ], "Resource": "arn:aws:s3:::destination-bucket-name/*" }, { "Sid": "Decrypt", "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue" ], "Resource": "arn:aws:secretsmanager:region:account-ID:secret:aws/transfer/*" } ] }

Ejemplo de rol de ejecución: ejecutar un rol y eliminarlo

En este ejemplo, tiene un flujo de trabajo que invoca una AWS Lambda función. Si el flujo de trabajo elimina el archivo cargado y tiene un paso de controlador de excepciones para actuar en caso de que se produzca un error en la ejecución del flujo de trabajo en el paso anterior, utilice la siguiente política de IAM. Reemplace cada user input placeholder por su propia información.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "Delete", "Effect": "Allow", "Action": [ "s3:DeleteObject", "s3:DeleteObjectVersion" ], "Resource": "arn:aws:s3:::bucket-name" }, { "Sid": "Custom", "Effect": "Allow", "Action": [ "lambda:InvokeFunction" ], "Resource": [ "arn:aws:lambda:region:account-id:function:function-name" ] } ] }