Políticas do IAM para usar estados de mapa distribuído - AWS Step Functions

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 usar estados de mapa distribuído

Ao criar fluxos de trabalho com o console do Step Functions, o Step Functions pode gerar automaticamente políticas do IAM com base nos recursos na definição de fluxo de trabalho. As políticas geradas incluem os privilégios mínimos necessários para permitir que a função de máquina de estado invoque a ação da StartExecution API para o estado do Mapa Distribuído e acesse AWS recursos, como buckets e objetos do Amazon S3 e funções Lambda.

Recomendamos incluir somente as permissões necessárias em suas políticas do IAM. Por exemplo, se seu fluxo de trabalho incluir um Map estado no modo distribuído, defina o escopo de suas políticas até o bucket e a pasta específicos do Amazon S3 que contém seus dados.

Importante

Se você especificar um bucket e um objeto do Amazon S3, ou prefixo, com um caminho de referência para um par de valores-chave existente na entrada do estado Mapa Distribuído, certifique-se de atualizar as políticas de IAM do fluxo de trabalho. Defina o escopo das políticas até o bucket e os nomes de objetos para os quais o caminho é resolvido em runtime.

Exemplo de política do IAM para executar um estado Mapa Distribuído

Ao incluir um estado Mapa Distribuído nos fluxos de trabalho, o Step Functions precisa de permissões apropriadas para permitir que o perfil de máquina de estado invoque a ação da API StartExecution para o estado Mapa Distribuído.

O exemplo de política do IAM a seguir concede os privilégios mínimos necessários ao perfil da máquina de estado para executar o estado Mapa Distribuído.

nota

Substitua stateMachineName pelo nome da máquina de estado na qual você está usando o estado Mapa Distribuído. Por exemplo, .arn:aws:states:region:account-id:stateMachine:mystateMachine

{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "states:StartExecution" ], "Resource": [ "arn:aws:states:us-east-1:123456789012:stateMachine:myStateMachineName" ] }, { "Effect": "Allow", "Action": [ "states:DescribeExecution" ], "Resource": "arn:aws:states:us-east-1:123456789012:execution:myStateMachineName:*" } ] }

Exemplo de política do IAM para redriving um estado Mapa Distribuído

Você pode reiniciar execuções malsucedidas do fluxo de trabalho secundário em uma Execução de mapa redriving o fluxo de trabalho principal. Um fluxo de trabalho principal redriven redrives todos os estados malsucedidos, incluindo o Mapa distribuído. Certifique-se de que o perfil de execução tenha os privilégios mínimos necessários para permitir que ele invoque a ação da API RedriveExecution no fluxo de trabalho principal.

O exemplo de política do IAM a seguir concede os privilégios mínimos necessários ao perfil da máquina de estado para redriving um estado Mapa Distribuído.

nota

Substitua stateMachineName pelo nome da máquina de estado na qual você está usando o estado Mapa Distribuído. Por exemplo, .arn:aws:states:region:account-id:stateMachine:mystateMachine

{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "states:RedriveExecution" ], "Resource": "arn:aws:states:us-east-2:123456789012:execution:myStateMachineName/myMapRunLabel:*" } ] }

Exemplos de políticas do IAM para ler dados de conjuntos de dados do Amazon S3

Os exemplos a seguir mostram técnicas para conceder os privilégios mínimos necessários para acessar seus conjuntos de dados do Amazon S3 usando ListObjects as ações de V2 e API. GetObject

exemplo condição usando um objeto Amazon S3 como conjunto de dados

A condição a seguir concede o mínimo de privilégios para acessar objetos em uma processImages pasta de um bucket do Amazon S3.

"Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket" ], "Condition": { "StringLike": { "s3:prefix": [ "processImages" ] } }
exemplo usando um arquivo CSV como conjunto de dados

O exemplo a seguir mostra as ações necessárias para acessar um arquivo CSV chamadoratings.csv.

"Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket/csvDataset/ratings.csv" ]
exemplo usando um inventário do Amazon S3 como conjunto de dados

Veja a seguir exemplos de recursos para um manifesto de inventário e arquivos de dados do Amazon S3.

"Resource": [ "arn:aws:s3:::myPrefix/amzn-s3-demo-bucket/myConfig-id/YYYY-MM-DDTHH-MMZ/manifest.json", "arn:aws:s3:::myPrefix/amzn-s3-demo-bucket/myConfig-id/data/*" ]
exemplo usando ListObjects V2 para restringir a um prefixo de pasta

Ao usar a ListObjectsV2, duas políticas serão geradas. Uma é necessária para permitir a listagem do conteúdo do bucket (ListBucket) e outra política permitirá recuperar objetos no bucket (GetObject).

Veja a seguir exemplos de ações, recursos e uma condição:

"Action": [ "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket" ], "Condition": { "StringLike": { "s3:prefix": [ "/path/to/your/json/" ] } }
"Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket/path/to/your/json/*" ]

Observe que não GetObject será definido o escopo e você usará um curinga (*) para o objeto.

Exemplo de política do IAM para gravar dados em um bucket do Amazon S3

O exemplo de política do IAM a seguir concede os privilégios mínimos necessários para gravar os resultados da execução do fluxo de trabalho secundário em uma pasta nomeada csvJobs em um bucket do Amazon S3 usando PutObject a ação de API.

{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:ListMultipartUploadParts", "s3:AbortMultipartUpload" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-destination-bucket/csvJobs/*" ] } ] }

Permissões do IAM para AWS KMS key bucket criptografado do Amazon S3

O estado Mapa Distribuído usa uploads de várias partes para gravar os resultados da execução do fluxo de trabalho secundário em um bucket do Amazon S3. Se o bucket for criptografado usando uma chave AWS Key Management Service (AWS KMS), será necessário também incluir permissões em sua política do IAM para realizar as ações kms:Decrypt, kms:Encrypt e kms:GenerateDataKey na chave. Essas permissões são necessárias porque o Amazon S3 precisa descriptografar e ler os dados de partes de arquivos criptografados antes de concluir o multipart upload.

O exemplo de política do IAM a seguir concede permissão para as ações kms:Decrypt, kms:Encrypt e kms:GenerateDataKey na chave usada para criptografar o bucket do Amazon S3.

{ "Version":"2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:Encrypt", "kms:GenerateDataKey" ], "Resource": [ "arn:aws:kms:us-east-1:123456789012:key/111aa2bb-333c-4d44-5555-a111bb2c33dd" ] } }

Para obter mais informações, consulte Carregando um arquivo grande para o Amazon S3 com criptografia usando uma AWS KMS key na Central de Conhecimento da AWS .

Se seu usuário ou função do IAM for Conta da AWS igual aoKMS key, você deverá ter essas permissões na política de chaves. Se o seu usuário ou perfil do IAM pertencer a uma conta diferente da KMS key, será necessário ter as permissões na política de chave e no usuário ou perfil do IAM.