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 políticas do IAM para serviços integrados
Quando você cria uma máquina de estado no AWS Step Functions console, o Step Functions produz uma política AWS Identity and Access Management (IAM) com base nos recursos usados na definição da máquina de estado, da seguinte forma:
-
Para integrações otimizadas, o Step Functions criará uma política com todas as permissões e os perfis necessários para a máquina de estado.
Dica: consulte exemplos de políticas em cada uma das páginas de serviço em Integrar serviços otimizados.
-
Para integrações padrão, o Step Functions criará um perfil do IAM com permissões parciais.
Você deve adicionar todas as políticas de perfil ausentes que sua máquina de estado precisa para interagir com o serviço.
Recursos dinâmicos e estáticos
Os recursos estáticos são definidos diretamente no estado da tarefa da máquina de estado. Ao incluir as informações sobre os recursos que você deseja chamar diretamente nos estados de tarefa, o Step Functions pode criar um perfil do IAM somente para esses recursos.
Os recursos dinâmicos são passados como entrada ao iniciar sua máquina de estado ou como entrada para um estado individual e acessados usando JSONata ou JSONPath a. Ao transmitir recursos dinâmicos para sua tarefa, o Step Functions não pode reduzir automaticamente o escopo das permissões, então ele criará uma política mais permissiva que especifica: "Resource": "*".
Permissões adicionais para tarefas usando .sync
Tarefas que usam o padrão Executar um trabalho (.sync) exigem permissões adicionais para monitorar e receber uma resposta da API dos serviços conectados.
O Step Functions usa duas abordagens para monitorar o status de um trabalho quando ele é executado em um serviço conectado: sondagem e eventos.
A sondagem requer permissão para as ações de API Describe ou Get. Por exemplo, para o Amazon ECS, a máquina de estado deve ter permissão de permissão paraecs:DescribeTasks, para AWS Glue a máquina de estado requer permissões de permissão paraglue:GetJobRun. Se as permissões necessárias estiverem ausentes no perfil, o Step Functions talvez não consiga determinar o status do trabalho. Um motivo para usar o método de pesquisa é porque algumas integrações de serviços não oferecem suporte a EventBridge eventos, e alguns serviços só enviam eventos com base no melhor esforço.
Como alternativa, você pode usar eventos enviados de AWS serviços para a Amazon EventBridge. Os eventos são roteados para Step Functions EventBridge por meio de uma regra gerenciada, portanto, a função requer permissões para events:PutTargetsevents:PutRule, e. events:DescribeRule Se essas permissões estiverem ausentes no 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.
Solução de problemas em fluxos de trabalho .sync bloqueados
Para tarefas Executar um trabalho (.sync) compatíveis com sondagem e eventos, a tarefa pode ser concluída corretamente usando eventos, mesmo quando o perfil não possui as permissões necessárias para realizar a sondagem.
No cenário anterior, talvez você não perceba que as permissões de sondagem estão ausentes ou estão incorretas. No raro cenário 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 maneiras
-
Exclua a regra gerenciada EventBridge que é responsável por encaminhar eventos para Step Functions.
nota
Como regras gerenciadas são compartilhadas por todas as máquinas de estado da conta, não use uma conta de teste ou desenvolvimento para evitar impactos não intencionais a outras máquinas de estado.
-
Você pode identificar a regra gerenciada específica a ser excluída inspecionando o campo
Resourceusado paraevents:PutRuleno 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.
Permissões para cancelar fluxos de trabalho
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.
Cancelar uma tarefa requer permissão para as ações de API Cancel, Stop, Terminate ou Delete, como batch:TerminateJob ou eks: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.
Saiba mais sobre padrões de integração
Para saber mais sobre tarefas síncronas, consulte Descobrir padrões de integração de serviços no Step Functions.