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á.
Como o Step Functions gera IAM políticas para serviços integrados
Quando você cria uma máquina de estado no AWS Step Functions console, Step Functions produz um AWS Identity and Access Management (IAM) política baseada nos recursos usados em sua definição de máquina de estado da seguinte forma:
-
Se sua máquina de estado usar uma das integrações otimizadas, o Step Functions criará uma política com as permissões e funções necessárias para sua máquina de estado. (Exceção: a MediaConvert integração exige que você configure manualmente as permissões — consulteIAMpolíticas para chamadas AWS Elemental MediaConvert.)
-
Se sua máquina de estado usa um dos AWS SDKintegrações, uma IAM função com permissões parciais será criada. Depois, você pode usar o IAM console para adicionar quaisquer políticas de função ausentes.
Os exemplos a seguir mostram como o Step Functions gera uma IAM política com base na definição da sua máquina de estado. Itens no código de exemplo, como
são substituídos pelos recursos estáticos listados na definição da sua máquina de estado. Se você tiver vários recursos estáticos, haverá uma entrada para cada um na IAM função.[[resourceName]]
Recursos dinâmicos e estáticos
Os recursos estáticos são definidos diretamente no estado da tarefa da máquina de estado. Quando você inclui as informações sobre os recursos que deseja chamar diretamente nos estados da tarefa, o Step Functions cria uma IAM função somente para esses recursos.
Os recursos dinâmicos são aqueles transmitidos para a entrada de estado e acessados usando um caminho (consulte Usando caminhos para acessar a entrada para fluxos de trabalho do Step Functions). Se você estiver transmitindo recursos dinâmicos para sua tarefa, o Step Functions criará uma política mais privilegiada que especifica: "Resource": "*"
.
Permissões adicionais para tarefas usando o padrão Executar um trabalho
Para tarefas que usam o padrão Run a Job (aquelas que terminam em.sync
), permissões adicionais são necessárias para monitorar e receber uma resposta das API ações dos serviços conectados. As políticas relacionadas incluem mais permissões do que para tarefas que usam os padrões Solicitar resposta ou Aguardar o retorno de chamada. Consulte Descubra padrões de integração de serviços em Step Functions para obter informações sobre tarefas síncronas.
nota
Você precisa fornecer permissões adicionais para integrações de serviços que ofereçam suporte ao padrão Run a Job (.sync).
O Step Functions usa dois métodos para monitorar o status de um trabalho quando um trabalho é executado em um serviço conectado, sondagem e eventos.
A pesquisa requer permissão Describe
ou Get
API ações, como ecs:DescribeTasks
ouglue:GetJobRun
. Se essas permissões estiverem ausentes em seu perfil, talvez o Step Functions não consiga determinar o status do trabalho. Isso ocorre porque algumas integrações de serviços Run a Job (.sync) não oferecem suporte a EventBridge eventos, e alguns serviços só enviam eventos com base no melhor esforço.
Eventos enviados de AWS os serviços para a Amazon EventBridge são direcionados para Step Functions usando uma regra gerenciada e exigem permissões para events:PutTargets
events:PutRule
, events:DescribeRule
e. Se essas permissões estiverem ausentes em seu perfil, pode haver um atraso antes que o Step Functions tome conhecimento da conclusão de seu trabalho. Para obter mais informações sobre EventBridge eventos, consulte Eventos de AWS serviços.
nota
Para tarefas Executar um trabalho (.sync) compatíveis com pesquisas e eventos, sua tarefa ainda pode ser concluída corretamente usando eventos. Isso pode ocorrer mesmo que seu perfil não tenha as permissões necessárias para a sondagem. Nesse caso, talvez você não perceba imediatamente que as permissões de sondagem estão incorretas ou ausentes. Na raras instâncias em que o evento não é entregue ou processado pelo Step Functions, sua execução pode ficar travada. Para verificar se suas permissões de enquete estão configuradas corretamente, você pode executar uma execução em um ambiente sem EventBridge eventos das seguintes formas:
-
Exclua a regra gerenciada de EventBridge, que é responsável por encaminhar eventos para Step Functions. Essa regra gerenciada é compartilhada por todas as máquinas de estado em sua conta; portanto, você deve realizar essa ação somente em uma conta de teste ou desenvolvimento para evitar qualquer impacto não intencional em outras máquinas de estado. Você pode identificar a regra gerenciada específica a ser excluída inspecionando o campo
Resource
usado paraevents:PutRule
no modelo de política do serviço de destino. A regra gerenciada será recriada na próxima vez que você criar ou atualizar uma máquina de estado que usa essa integração de serviços. Para obter mais informações sobre como excluir EventBridge regras, consulte Desabilitar ou excluir uma regra. -
Teste com o Step Functions Local, que não é compatível com o uso de eventos para concluir tarefas Executar um trabalho (.sync). Para usar o Step Functions Local, assuma a IAM função usada pela sua máquina de estado. Pode ser necessário editar o relacionamento de confiança. Defina as variáveis de ambiente
AWS_ACCESS_KEY_ID
,AWS_SECRET_ACCESS_KEY
eAWS_SESSION_TOKEN
com os valores do perfil assumido e, em seguida, inicie o Step Functions Local usando java -jar StepFunctionsLocal.jar. Por último, use o AWS CLI com o --endpoint-url parâmetro para criar uma máquina de estado, iniciar uma execução e obter o histórico de execução. Para obter mais informações, consulte Testando máquinas de estado localmente em Step Functions.
Se uma tarefa que usa o padrão Executar um trabalho (.sync) for interrompida, o Step Functions fará o possível para cancelar a tarefa. Isso requer permissão paraCancel
, Stop
Terminate
,, ou Delete
API ações, como batch:TerminateJob
oueks:DeleteCluster
. Se essas permissões estiverem ausentes em seu perfil, o Step Functions não poderá cancelar sua tarefa e você poderá acumular cobranças adicionais enquanto ela continuar em execução. Para ver mais informações sobre como interromper tarefas, consulte Executar um trabalho.