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á.
Acessar recursos em outras Contas da AWS no Step Functions
O Step Functions concede acesso entre contas a recursos configurados em diferentes Contas da AWS em seus fluxos de trabalho. Usando as integrações de serviços do Step Functions, é possível invocar qualquer recurso entre contas da AWS, mesmo que esse AWS service (Serviço da AWS) não aceite políticas baseadas em recursos ou chamadas entre contas.
Por exemplo, suponha que você possua duas Contas da AWS, denominadas Desenvolvimento e Teste, na mesma Região da AWS. Usando o acesso entre contas, seu fluxo de trabalho na conta de Desenvolvimento pode acessar recursos, como buckets do Amazon S3, tabelas do Amazon DynamoDB e funções do Lambda que estão disponíveis na conta de Teste.
Importante
As funções do IAM e as políticas baseadas em recurso delegam o acesso entre contas em uma única partição. Por exemplo, suponha que você tenha uma conta no Oeste dos EUA (Norte da Califórnia) na partição aws
padrão. Além disso, você tem uma conta na China (Pequim) na partição aws-cn
. Você não pode usar uma política baseada em recurso do Amazon S3 em sua conta na China (Pequim) para permitir o acesso de usuários em sua conta aws
padrão.
Para ver mais informações sobre o acesso entre contas, consulte Lógica de avaliação de políticas entre contas no Guia do usuário do IAM.
Embora cada Conta da AWS mantenha controle total sobre seus próprios recursos, com o Step Functions, você pode reorganizar, trocar, adicionar ou remover etapas em seus fluxos de trabalho sem a necessidade de personalizar nenhum código. Você pode fazer isso mesmo quando os processos mudam ou os aplicativos evoluem.
Você também pode invocar execuções de máquinas de estado aninhadas para que elas estejam disponíveis em diferentes contas. Fazer isso separa e isola seus fluxos de trabalho de forma eficiente. Ao usar o padrão de integração de serviços de .sync em seus fluxos de trabalho que acessam outro fluxo de trabalho do Step Functions em uma conta diferente, o Step Functions usa uma sondagem que consome sua cota atribuída. Para ter mais informações, consulte Executar um trabalho (.sync).
nota
Atualmente, a integração de SDK da AWS entre regiões e o acesso a recursos da AWS entre regiões não estão disponíveis no Step Functions.
Principais conceitos de recursos entre contas
- Perfil de execução
-
Um perfil do IAM que o Step Functions usa para executar código e acessar recursos da AWS, como a ação invocar da função do AWS Lambda.
- Integração de serviços
-
As ações da API de integração de SDK da AWS que podem ser chamadas de dentro do estado de uma
Task
em seus fluxos de trabalho. - Conta de origem
Uma Conta da AWS que possui a máquina de estado e iniciou sua execução.
- Conta de destino
Uma Conta da AWS para a qual você faz chamadas entre contas.
- Perfil de destino
Um perfil do IAM na conta de destino que a máquina de estado assume para fazer chamadas para recursos que a conta de destino possui.
- Executar um trabalho (.sync)
Um padrão de integração de serviços usado para chamar serviços, como AWS Batch. Também faz com que uma máquina de estado do Step Functions espere a conclusão de um trabalho antes de avançar para o próximo estado. Para indicar que o Step Functions deve aguardar, acrescente o sufixo
.sync
no campoResource
na definição do estadoTask
.
Invocar recursos entre contas
Para invocar um recurso entre contas em seus fluxos de trabalho, faça o seguinte:
Crie um perfil do IAM na conta de destino que contém o recurso. Esse perfil concede permissões à conta de origem que contém a máquina de estado para acessar os recursos da conta de destino.
Na definição do estado da
Task
, especifique o perfil do IAM de destino a ser assumido pela máquina de estado antes de invocar o recurso entre contas.Modifique a política de confiança no perfil do IAM de destino para permitir que a conta de origem assuma esse perfil temporariamente. A política de confiança deve incluir o nome do recurso da Amazon (ARN) da máquina de estado definida na conta de origem. Além disso, defina as permissões apropriadas no perfil do IAM de destino para chamar o recurso da AWS.
Atualize o perfil de execução da conta de origem para incluir a permissão necessária para assumir o perfil do IAM de destino.
Por exemplo, consulte Acessar recursos da AWS entre contas no Step Functions nos tutoriais.
nota
Você pode configurar sua máquina de estado para assumir um perfil do IAM para acessar recursos de várias Contas da AWS. No entanto, uma máquina de estado pode assumir somente um perfil do IAM por vez.
Acesso entre contas para o padrão de integração .sync
Ao usar os padrões de integração de serviços .sync
em seus fluxos de trabalho, o Step Functions pesquisa o recurso entre contas invocado para confirmar que a tarefa foi concluída. Isso causa um pequeno atraso entre o tempo real de conclusão da tarefa e o momento em que o Step Functions reconhece a tarefa como concluída. O perfil do IAM de destino precisa das permissões necessárias para que uma invocação .sync
conclua esse ciclo de sondagem. Para fazer isso, o perfil do IAM de destino deve ter uma política de confiança que permita que a conta de origem a assuma. Além disso, o perfil do IAM de destino precisa das permissões necessárias para concluir o ciclo de sondagem.
nota
Para fluxos de trabalho expressos aninhados, arn:aws:states:::states:startExecution.sync
não é compatível no momento. Use arn:aws:states:::aws-sdk:sfn:startSyncExecution
em vez disso.
Atualização da política de confiança para chamadas .sync
Atualize a política de confiança do perfil do IAM de destino, conforme mostrado no exemplo a seguir. O campo sts:ExternalId
controla ainda mais quem pode assumir o perfil. O nome da máquina de estado deve incluir somente caracteres compatíveis com a API AWS Security Token Service AssumeRole
. Para obter mais informações, consulte AssumeRole na AWS Security Token Service API Reference.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "sts:AssumeRole", "Principal": { "AWS": "arn:aws:iam::
sourceAccountID
:role/InvokeRole
", }, "Condition": { "StringEquals": { "sts:ExternalId": "arn:aws:states:us-east-2:sourceAccountID
:stateMachine:stateMachineName
" } } } ] }
Permissões necessárias para chamadas .sync
Para conceder as permissões necessárias para sua máquina de estado, atualize-as para o perfil do IAM de destino. Para ter mais informações, consulte Como o Step Functions gera políticas do IAM para serviços integrados. As permissões do Amazon EventBridge das políticas de exemplo não são necessárias. Por exemplo, para iniciar uma máquina de estado, adicione as seguintes permissões.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "states:StartExecution" ], "Resource": [ "arn:aws:states:
region
:accountID
:stateMachine:stateMachineName
" ] }, { "Effect": "Allow", "Action": [ "states:DescribeExecution", "states:StopExecution" ], "Resource": [ "arn:aws:states:region
:accountID
:execution:stateMachineName
:*" ] } ] }