Criando uma IAM função para sua máquina de estado 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á.

Criando uma IAM função para sua máquina de estado em Step Functions

AWS Step Functions pode executar código e acessar AWS recursos (como invocar um AWS Lambda função). Para manter a segurança, você deve conceder ao Step Functions acesso a esses recursos usando uma IAM função.

Tutoriais para aprender Step FunctionsNeste guia, você pode aproveitar as IAM funções geradas automaticamente que são válidas para o AWS Região na qual você cria a máquina de estado. No entanto, você pode criar sua própria IAM função para uma máquina de estado.

Ao criar uma IAM política para suas máquinas de estado usarem, a política deve incluir as permissões que você gostaria que as máquinas de estado assumissem. Você pode usar um existente AWS política gerenciada como exemplo ou você pode criar uma política personalizada do zero que atenda às suas necessidades específicas. Para obter mais informações, consulte Criação de IAM políticas no Guia IAM do usuário

Para criar sua própria IAM função para uma máquina de estado, siga as etapas nesta seção.

Neste exemplo, você cria uma IAM função com permissão para invocar uma função Lambda.

Criar um perfil para o Step Functions

  1. Entre no IAMconsole e escolha Funções, Criar função.

  2. Na página Selecionar entidade confiável, em AWS serviço, selecione Step Functions na lista e escolha Next: Permissions.

  3. Na página Attached permissions policy, escolha Next: Review.

  4. Na página Review (Revisão), insira StepFunctionsLambdaRole para Role Name (Nome da função) e escolha Create role (Criar função).

    A IAM função aparece na lista de funções.

Para obter mais informações sobre IAM permissões e políticas, consulte Gerenciamento de acesso no Guia IAM do usuário.

Prevenção do problema do substituto confuso entre serviços

O problema de "confused deputy" é uma questão de segurança em que uma entidade que não tem permissão para executar uma ação pode coagir uma entidade mais privilegiada a executá-la. Em AWS, a falsificação de identidade entre serviços pode resultar no problema confuso do deputado. A personificação entre serviços pode ocorrer quando um serviço (o serviço de chamada) chama outro serviço (o serviço chamado). Esse tipo de falsificação de identidade pode ocorrer entre contas e serviços. O serviço de chamada pode ser manipulado de modo a usar suas permissões para atuar nos recursos de outro cliente de uma forma na qual ele não deveria ter permissão para acessar.

Para evitar deputados confusos, AWS fornece ferramentas que ajudam você a proteger seus dados para todos os serviços com diretores de serviços que receberam acesso aos recursos em sua conta. Esta seção se concentra na prevenção de delegações confusas entre serviços, específica para AWS Step Functions; no entanto, você pode aprender mais sobre esse tópico na seção confusa de problemas auxiliares do Guia IAM do usuário.

Recomendamos usar as chaves de contexto de condição aws:SourceAccountglobal aws:SourceArne as chaves de contexto nas políticas de recursos para limitar as permissões que Step Functions fornece outro serviço para acessar seus recursos. Use aws:SourceArn se quiser apenas um recurso associado a acessibilidade de serviço. Use aws:SourceAccount se quiser permitir que qualquer recurso nessa conta seja associado ao uso entre serviços.

A maneira mais eficaz de se proteger contra o confuso problema do deputado é usar a chave de contexto ARN de condição aws:SourceArn global com todo o recurso. Se você não souber a totalidade ARN do recurso ou se estiver especificando vários recursos, use a chave de condição de contexto aws:SourceArn global com caracteres curinga (*) para as partes desconhecidas do. ARN Por exemplo, arn:aws:states:*:111122223333:*.

Aqui está um exemplo de uma política confiável que mostra como você pode usar aws:SourceArn e aws:SourceAccount com o Step Functions para evitar o problema de substituto confuso.

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Principal":{ "Service":[ "states.amazonaws.com" ] }, "Action":"sts:AssumeRole", "Condition":{ "ArnLike":{ "aws:SourceArn":"arn:aws:states:us-east-1:111122223333:stateMachine:*" }, "StringEquals":{ "aws:SourceAccount":"111122223333" } } } ] }

Anexar uma política em linha

O Step Functions pode controlar outros serviços diretamente em no estado de uma Task. Anexe políticas em linha para permitir que o Step Functions acesse as API ações dos serviços que você precisa controlar.

  1. Abra o IAMconsole, escolha Roles, pesquise sua função Step Functions e selecione essa função.

  2. Selecione Adicionar política em linha.

  3. Use o editor visual ou a JSONguia para criar políticas para sua função.

Para obter mais informações sobre como AWS Step Functions pode controlar outros AWS serviços, consulteIntegrando serviços com Step Functions.

nota

Para obter exemplos de IAM políticas criadas pelo console Step Functions, consulteComo o Step Functions gera IAM políticas para serviços integrados.