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 da AWS entre contas no Step Functions
Com o suporte de acesso entre contas no Step Functions, você pode compartilhar recursos configurados em diferentes Contas da AWS. Neste tutorial, mostraremos o processo de acesso a uma função do Lambda entre contas definida em uma conta denominada Produção. Essa função é invocada de uma máquina de estado em uma conta denominada Desenvolvimento. Neste tutorial, a conta de Desenvolvimento é chamada de conta de origem, enquanto a conta de Produção é a conta de destino que contém o perfil do IAM de destino.
Para começar, na definição do estado Task
, você especifica o perfil do IAM de destino que a máquina de estado deve assumir antes de invocar a função do Lambda entre contas. Em seguida, modifique a política de confiança no perfil do IAM de destino para permitir que a conta de origem assuma o perfil de destino temporariamente. Além disso, para chamar o recurso da AWS, defina as permissões apropriadas no perfil do IAM de destino. Por fim, atualize o perfil de execução da conta de origem para especificar a permissão necessária para assumir o perfil de destino.
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 com base na definição do estado da Task
.
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.
Pré-requisitos
-
Este tutorial usa o exemplo de uma função do Lambda para demonstrar como configurar o acesso entre contas. Você pode usar qualquer outro recurso da AWS, mas certifique-se de ter configurado o recurso em uma conta diferente.
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çãoaws-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 contaaws
padrão. -
Anote o nome do recurso da Amazon (ARN) do recurso entre contas em um arquivo de texto. Posteriormente neste tutorial, você fornecerá esse ARN na definição do estado
Task
da sua máquina de estado. Veja a seguir um exemplo de um ARN de função do Lambda:arn:aws:lambda:us-east-2:123456789012:function:
functionName
-
Crie o perfil do IAM de destino que a máquina de estado precisa assumir.
Etapa 1: atualizar a definição do estado Tarefa para especificar o perfil de destino
No estado Task
do fluxo de trabalho, adicione um campo Credentials
contendo a identidade que a máquina de estado deve assumir antes de invocar a função do Lambda entre contas.
O procedimento a seguir demonstra como acessar uma função do Lambda entre contas chamada Echo
. Você pode chamar qualquer recurso da AWS seguindo estas etapas.
-
Abra o console do Step Functions
e clique em Criar máquina de estado. -
Na página Escolher método de criação, escolha Projetar seu fluxo de trabalho visualmente e mantenha todas as seleções padrão.
-
Para abrir o Workflow Studio, escolha Próximo.
Na guia Ações, arraste e solte o estado
Task
na tela. Isso invoca a função do Lambda entre contas que está usando esse estado daTask
.-
Na guia Configuração, faça o seguinte:
-
Renomeie o estado para
Cross-account call
. -
Em Nome da função, escolha Inserir nome da função e, em seguida, insira o ARN da função do Lambda na caixa. Por exemplo,
arn:aws:lambda:us-east-2:111122223333:function:
.Echo
-
Em Fornecer ARN do perfil do IAM, especifique o ARN do perfil do IAM. Por exemplo,
arn:aws:iam::111122223333:role/LambdaRole
.dica
Como alternativa, você também pode especificar um caminho de referência para um par de valores-chave existente na entrada JSON do estado que contém o ARN do perfil do IAM. Para fazer isso, escolha Obter ARN do perfil do IAM em runtime na entrada de estado. Para obter um exemplo de especificação de um valor usando um caminho de referência, consulte Especificando JSONPath como função IAM ARN.
-
-
Escolha Próximo.
-
Na página Revisar código gerado, escolha Próximo.
-
Na página Especificar configurações da máquina de estado, especifique detalhes da nova máquina de estado, como nome, permissões e nível de registro em log.
-
Escolha Criar uma máquina de estado.
-
Anote o ARN do perfil do IAM e o ARN da máquina de estado em um arquivo de texto. Você precisará apresentar esses ARNs na política de confiança da conta de destino.
A definição do estado da Task
agora deve ser semelhante à definição a seguir.
{
"StartAt": "Cross-account call",
"States": {
"Cross-account call": {
"Type": "Task",
"Resource": "arn:aws:states:::lambda:invoke",
"Credentials": {
"RoleArn": "arn:aws:iam::111122223333:role/LambdaRole"
},
"Parameters": {
"FunctionName": "arn:aws:lambda:us-east-2:111122223333:function:Echo
",
},
"End": true
}
}
}
Etapa 2: atualizar a política de confiança do perfil de destino
O perfil do IAM deve existir na conta de destino e você deve modificar sua política de confiança para permitir que a conta de origem assuma esse perfil temporariamente. Além disso, você pode controlar quem pode assumir o perfil do IAM de destino.
Depois de criar o relacionamento de confiança, um usuário da conta de origem pode usar a operação da API AWS Security Token Service (AWS STS) Perfil de apropriação. Essa operação apresenta credenciais de segurança temporárias que permitem acesso aos recursos da AWS em uma conta de destino.
-
Abra o console do IAM em https://console.aws.amazon.com/iam/
. -
No painel de navegação do console, escolha Perfis e, em seguida, use a caixa Pesquisar para pesquisar o perfil do IAM de destino. Por exemplo,
.LambdaRole
-
Selecione a guia Trust relationships (Relações de confiança).
-
Selecione Editar política de confiança e cole a seguinte política de confiança. Substitua o número da Conta da AWS e o ARN do perfil do IAM. 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 ServiceAssumeRole
. 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::123456789012:role/ExecutionRole" // The source account's state machine execution role ARN }, "Condition": { // Control which account and state machine can assume the target IAM role "StringEquals": { "sts:ExternalId": "arn:aws:states:us-east-1:123456789012:stateMachine:testCrossAccount" //// ARN of the state machine that will assume the role. } } } ] }
-
Mantenha essa janela aberta e prossiga para a próxima etapa para realizar outras ações.
Etapa 3: adicionar a permissão necessária no perfil de destino
As permissões nas políticas do IAM determinam se uma solicitação específica será permitida ou negada. O perfil do IAM de destino deve ter a permissão correta para invocar a função do Lambda.
-
Escolha a aba Permissões.
-
Escolha Adicionar permissões e depois Criar política em linha.
-
Escolha a guia JSON e substitua o conteúdo existente pela permissão a seguir. Substitua o ARN da função do Lambda.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "lambda:InvokeFunction", "Resource": "arn:aws:lambda:us-east-2:111122223333:function:
Echo
" // The cross-account AWS resource being accessed } ] } -
Escolha Revisar política.
-
Na página Revisar política, insira um nome da permissão e, em seguida, selecione Criar política.
Etapa 4: adicionar permissão no perfil de execução para assumir o perfil de destino
O Step Functions não gera automaticamente a política Perfil de apropriação para todas as integrações de serviços entre contas. Você deve adicionar a permissão necessária no perfil de execução da máquina de estado para permitir que ela assuma um perfil do IAM de destino em uma ou mais Contas da AWS.
-
Abra o perfil de execução da sua máquina de estado no console do IAM em https://console.aws.amazon.com/iam/
. Para fazer isso: -
Abra a máquina de estado que você criou na Etapa 1 na conta de origem.
-
Na página Detalhes da máquina de estado, selecione ARN do perfil do IAM.
-
-
Na guia Permissões, selecione Adicionar permissões e Criar política em linha.
-
Escolha a guia JSON e substitua o conteúdo existente pela permissão a seguir. Substitua o ARN da função do Lambda.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "arn:aws:iam::111122223333:role/
LambdaRole
" // The target role to be assumed } ] } -
Escolha Revisar política.
-
Na página Revisar política, insira um nome da permissão e, em seguida, selecione Criar política.