Acessando recursos em outros Contas da AWS em Step Functions - 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á.

Acessando recursos em outros Contas da AWS em Step Functions

O Step Functions fornece acesso entre contas a recursos configurados em diferentes Contas da AWS em seus fluxos de trabalho. Usando as integrações de serviços Step Functions, você pode invocar qualquer conta cruzada AWS recurso, mesmo que AWS service (Serviço da AWS) não oferece suporte a políticas baseadas em recursos ou chamadas entre contas.

Por exemplo, suponha que você possua dois Contas da AWS, chamado de Desenvolvimento e Teste, no mesmo 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

IAMfunções e políticas baseadas em recursos delegam o acesso entre contas somente 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 obter mais informações sobre o acesso entre contas, consulte a lógica de avaliação de políticas entre contas no Guia do IAMusuário.

Apesar de cada Conta da AWS mantém 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 obter mais informações, consulte Executar um trabalho (.sync).

nota

Atualmente, entre regiões AWS SDKintegração e entre regiões AWS o acesso a recursos não está disponível no Step Functions.

Conceitos-chave de recursos entre contas

Perfil de execução

Uma IAM função que o Step Functions usa para executar código e acessar AWS recursos, como o AWS Lambda ação Invocar da função.

Integração de serviços

A ferramenta AWS SDKAPIações de integração que podem ser chamadas de dentro de um Task estado em seus fluxos de trabalho.

Conta de origem

Uma Conta da AWS que é dona da máquina estatal e iniciou sua execução.

Conta de destino

Uma Conta da AWS para o qual você faz chamadas entre contas.

Perfil de destino

Uma IAM função 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 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 campo Resource na definição do estado Task.

Invocar recursos entre contas

Para invocar um recurso entre contas em seus fluxos de trabalho, faça o seguinte:

  1. Crie uma IAM função 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.

  2. Na definição do Task estado, especifique a IAM função de destino a ser assumida pela máquina de estado antes de invocar o recurso entre contas.

  3. Modifique a política de confiança na IAM função de destino para permitir que a conta de origem assuma essa função temporariamente. A política de confiança deve incluir o Amazon Resource Name (ARN) da máquina de estado definida na conta de origem. Além disso, defina as permissões apropriadas na IAM função de destino para chamar o AWS recurso.

  4. Atualize a função de execução da conta de origem para incluir a permissão necessária para assumir a IAM função de destino.

Veja um exemplo Acessando várias contas AWS recursos em Step Functions nos tutoriais.

nota

Você pode configurar sua máquina de estado para assumir uma IAM função de acessar recursos de vários Contas da AWS. No entanto, uma máquina de estado só pode assumir uma IAM função em um determinado momento.

Conceito para acessar recursos entre contas

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. A IAM função de destino precisa das permissões necessárias para que uma .sync invocação conclua esse ciclo de pesquisa. Para fazer isso, a IAM função de destino deve ter uma política de confiança que permita que a conta de origem a assuma. Além disso, a IAM função de destino precisa das permissões necessárias para concluir o ciclo de pesquisa.

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 da sua IAM função 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 que o AWS Security Token Service AssumeRoleAPIsuportes. Para obter mais informações, consulte AssumeRoleno AWS Security Token Service APIReferência.

{ "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 permissões necessárias para a IAM função de destino. Para obter mais informações, consulte Como o Step Functions gera IAM políticas para serviços integrados. As EventBridge permissões da Amazon 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:*" ] } ] }