Políticas do IAM para fluxos de trabalho - AWS Transfer Family

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Políticas do IAM para fluxos de trabalho

Ao adicionar um fluxo de trabalho a um servidor, você deve selecionar uma função de execução. O servidor usa essa função ao executar o fluxo de trabalho. Se a função não tiver as permissões adequadas, não será AWS Transfer Family possível executar o fluxo de trabalho.

Esta seção descreve um conjunto possível de permissões AWS Identity and Access Management (IAM) que você pode usar para executar um fluxo de trabalho. Outros exemplos são descritos mais adiante neste tópico.

nota

Se seus arquivos do Amazon S3 tiverem tags, você precisará adicionar uma ou duas permissões à sua política do IAM.

  • Adicione s3:GetObjectTagging para obter um arquivo Amazon S3 que não tenha versão.

  • Adicione s3:GetObjectVersionTagging para obter um arquivo Amazon S3 que tenha versão.

Como criar uma função de execução para o seu fluxo de trabalho
  1. Crie uma nova função do IAM e adicione a política AWS gerenciada AWSTransferFullAccess à função. Para obter mais informações sobre como criar um perfil do IAM, consulte Criar uma política e um perfil do IAM.

  2. Crie outra política com as seguintes permissões e anexe-a ao seu perfil. Substitua cada user input placeholder por suas próprias informações.

    { "Version":"2012-10-17", "Statement": [ { "Sid": "ConsoleAccess", "Effect": "Allow", "Action": "s3:GetBucketLocation", "Resource": "*" }, { "Sid": "ListObjectsInBucket", "Effect": "Allow", "Action": "s3:ListBucket", "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket" ] }, { "Sid": "AllObjectActions", "Effect": "Allow", "Action": "s3:*Object", "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket/*" ] }, { "Sid": "GetObjectVersion", "Effect": "Allow", "Action": "s3:GetObjectVersion", "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket/*" ] }, { "Sid": "Custom", "Effect": "Allow", "Action": [ "lambda:InvokeFunction" ], "Resource": [ "arn:aws:lambda:us-east-1:123456789012:function:function-name" ] }, { "Sid": "Tag", "Effect": "Allow", "Action": [ "s3:PutObjectTagging", "s3:PutObjectVersionTagging" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket/*" ] } ] }
  3. Salve essa função e especifique-a como a função de execução ao adicionar um fluxo de trabalho a um servidor.

    nota

    Ao criar funções do IAM, AWS recomenda que você restrinja o acesso aos seus recursos o máximo possível para seu fluxo de trabalho.

relação de confiança no fluxo de trabalho

As funções de execução do fluxo de trabalho também exigem uma relação de confiança com transfer.amazonaws.com. Para estabelecer uma relação de confiança para AWS Transfer Family, consulte Estabelecer um relacionamento de confiança.

Ao estabelecer sua relação de confiança, você também pode tomar medidas para evitar o problema substituto confuso. Para obter uma descrição desse problema, bem como exemplos de como evitá-lo, consulte Prevenção do problema do “confused deputy” entre serviços.

Exemplo de função de execução: descriptografar, copiar e marcar

Se você tiver fluxos de trabalho que incluem etapas de marcação, cópia e descriptografia, você pode usar a seguinte política do IAM. Substitua cada user input placeholder por suas próprias informações.

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

Exemplo de função de execução: executar função e excluir

Neste exemplo, você tem um fluxo de trabalho que invoca uma AWS Lambda função. Se o fluxo de trabalho excluir o arquivo carregado e tiver uma etapa de manipulador de exceções para agir em caso de falha na execução do fluxo de trabalho na etapa anterior, use a seguinte política do IAM. Substitua cada user input placeholder por suas próprias informações.

{ "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:us-east-1:123456789012:function:function-name" ] } ] }