

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á.

# Identity and Access Management no Step Functions
<a name="auth-and-access-control-sfn"></a>

As seções a seguir fornecem detalhes sobre como é possível usar o [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) e o Step Functions para ajudar a proteger seus recursos controlando quem pode acessá-los. Por exemplo, você aprenderá a fornecer credenciais AWS Step Functions com permissões para acessar AWS recursos, como recuperar dados de eventos de outros AWS recursos.

AWS Identity and Access Management (IAM) é uma ferramenta AWS service (Serviço da AWS) que ajuda o administrador a controlar com segurança o acesso aos AWS recursos. Os administradores do IAM controlam quem pode ser *autenticado* (fazer login) e *autorizado* (ter permissões) para usar os recursos do Step Functions. O IAM é um AWS service (Serviço da AWS) que você pode usar sem custo adicional.

## Público
<a name="security_iam_audience"></a>

A forma como você usa AWS Identity and Access Management (IAM) difere com base na sua função:
+ **Usuário do serviço**: solicite permissões ao seu administrador se você não conseguir acessar os atributos (consulte [Solucionar problemas de identidade e de acesso no Step Functions](security_iam_troubleshoot.md)).
+ **Administrador do serviço**: determine o acesso do usuário e envie solicitações de permissão (consulte [Como AWS Step Functions funciona com o IAM](security_iam_service-with-iam.md))
+ **Administrador do IAM**: escreva políticas para gerenciar o acesso (consulte [Exemplos de políticas baseadas em identidade para AWS Step Functions](security_iam_id-based-policy-examples.md))

## Autenticação com identidades
<a name="security_iam_authentication"></a>

A autenticação é a forma como você faz login AWS usando suas credenciais de identidade. Você deve estar autenticado como usuário do IAM ou assumindo uma função do IAM. Usuário raiz da conta da AWS

Você pode fazer login como uma identidade federada usando credenciais de uma fonte de identidade como Centro de Identidade do AWS IAM (IAM Identity Center), autenticação de login único ou credenciais. Google/Facebook Para ter mais informações sobre como fazer login, consulte [Como fazer login em sua Conta da AWS](https://docs.aws.amazon.com/signin/latest/userguide/how-to-sign-in.html) no *Guia do usuário do Início de Sessão da AWS *.

Para acesso programático, AWS fornece um SDK e uma CLI para assinar solicitações criptograficamente. Para ter mais informações, consulte [AWS Signature Version 4 para solicitações de API](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_sigv.html) no *Guia do usuário do IAM*.

### Conta da AWS usuário root
<a name="security_iam_authentication-rootuser"></a>

 Ao criar um Conta da AWS, você começa com uma identidade de login chamada *usuário Conta da AWS raiz* que tem acesso completo a todos Serviços da AWS os recursos. É altamente recomendável não usar o usuário-raiz em tarefas diárias. Consulte as tarefas que exigem credenciais de usuário-raiz em [Tarefas que exigem credenciais de usuário-raiz](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html#root-user-tasks) no *Guia do usuário do IAM*. 

### Identidade federada
<a name="security_iam_authentication-federated"></a>

Como prática recomendada, exija que os usuários humanos usem a federação com um provedor de identidade para acessar Serviços da AWS usando credenciais temporárias.

Uma *identidade federada* é um usuário do seu diretório corporativo, provedor de identidade da web ou Directory Service que acessa Serviços da AWS usando credenciais de uma fonte de identidade. As identidades federadas assumem funções que oferecem credenciais temporárias.

Para o gerenciamento de acesso centralizado, recomendamos Centro de Identidade do AWS IAM. Para saber mais, consulte [O que é o IAM Identity Center?](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html) no *Guia do usuário do Centro de Identidade do AWS IAM *.

### Usuários e grupos do IAM
<a name="security_iam_authentication-iamuser"></a>

Um *[usuário do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users.html)* é uma identidade com permissões específicas para uma única pessoa ou aplicação. É recomendável usar credenciais temporárias, em vez de usuários do IAM com credenciais de longo prazo. Para obter mais informações, consulte [Exigir que usuários humanos usem a federação com um provedor de identidade para acessar AWS usando credenciais temporárias](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#bp-users-federation-idp) no *Guia do usuário do IAM*.

Um [https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html) especifica um conjunto de usuários do IAM e facilita o gerenciamento de permissões para grandes conjuntos de usuários. Para ter mais informações, consulte [Casos de uso de usuários do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/gs-identities-iam-users.html) no *Guia do usuário do IAM*.

### Perfis do IAM
<a name="security_iam_authentication-iamrole"></a>

Uma *[perfil do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)* é uma identidade com permissões específicas que oferece credenciais temporárias. Você pode assumir uma função [mudando de um usuário para uma função do IAM (console)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-console.html) ou chamando uma operação de AWS API AWS CLI ou. Para saber mais, consulte [Métodos para assumir um perfil](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage-assume.html) no *Manual do usuário do IAM*.

Os perfis do IAM são úteis para acesso de usuário federado, permissões de usuário do IAM temporárias, acesso entre contas, acesso entre serviços e aplicações em execução no Amazon EC2. Consulte mais informações em [Acesso a recursos entre contas no IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-cross-account-resource-access.html) no *Guia do usuário do IAM*.

## Gerenciar o acesso usando políticas
<a name="security_iam_access-manage"></a>

Você controla o acesso AWS criando políticas e anexando-as a AWS identidades ou recursos. Uma política define permissões quando associada a uma identidade ou recurso. AWS avalia essas políticas quando um diretor faz uma solicitação. A maioria das políticas é armazenada AWS como documentos JSON. Para ter mais informações sobre documentos de política JSON, consulte [Visão geral das políticas JSON](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#access_policies-json) no *Guia do usuário do IAM*.

Por meio de políticas, os administradores especificam quem tem acesso a que, definindo qual **entidade principal** pode realizar **ações** em quais **recursos** e sob quais **condições**.

Por padrão, usuários e perfis não têm permissões. Um administrador do IAM cria políticas do IAM e as adiciona aos perfis, os quais os usuários podem então assumir. As políticas do IAM definem permissões, independentemente do método usado para realizar a operação.

### Políticas baseadas em identidade
<a name="security_iam_access-manage-id-based-policies"></a>

As políticas baseadas em identidade são documentos de políticas de permissão JSON que você anexa a uma identidade (usuário, grupo ou perfil). Essas políticas controlam quais ações as identidades podem realizar, em quais recursos e sob quais condições. Para saber como criar uma política baseada em identidade, consulte [Definir permissões personalizadas do IAM com as políticas gerenciadas pelo cliente](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html) no *Guia do Usuário do IAM*.

As políticas baseadas em identidade podem ser políticas *em linha* (incorporadas diretamente em uma única identidade) ou *políticas gerenciadas* (políticas autônomas anexadas a várias identidades). Para saber como escolher entre uma política gerenciada e políticas em linha, consulte [Escolher entre políticas gerenciadas e políticas em linha](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-choosing-managed-or-inline.html) no *Guia do usuário do IAM*.

### Políticas baseadas em recursos
<a name="security_iam_access-manage-resource-based-policies"></a>

Políticas baseadas em recursos são documentos de políticas JSON que você anexa a um recurso. Entre os exemplos estão *políticas de confiança de perfil* do IAM e *políticas de bucket* do Amazon S3. Em serviços compatíveis com políticas baseadas em recursos, os administradores de serviço podem usá-las para controlar o acesso a um recurso específico. É necessário [especificar uma entidade principal](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html) em uma política baseada em recursos.

Políticas baseadas em recursos são políticas em linha localizadas nesse serviço. Você não pode usar políticas AWS gerenciadas do IAM em uma política baseada em recursos.

### Outros tipos de política
<a name="security_iam_access-manage-other-policies"></a>

AWS oferece suporte a tipos de políticas adicionais que podem definir o máximo de permissões concedidas por tipos de políticas mais comuns:
+ **Limites de permissões**: definem o número máximo de permissões que uma política baseada em identidade pode conceder a uma entidade do IAM. Para saber mais sobre limites de permissões, consulte [Limites de permissões para identidades do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html) no *Guia do usuário do IAM*.
+ **Políticas de controle de serviço (SCPs)** — Especifique as permissões máximas para uma organização ou unidade organizacional em AWS Organizations. Para saber mais, consulte [Políticas de controle de serviço](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html) no *Guia do usuário do AWS Organizations *.
+ **Políticas de controle de recursos (RCPs)** — Defina o máximo de permissões disponíveis para recursos em suas contas. Para obter mais informações, consulte [Políticas de controle de recursos (RCPs)](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_rcps.html) no *Guia AWS Organizations do usuário*.
+ **Políticas de sessão**: políticas avançadas transmitidas como um parâmetro durante a criação de uma sessão temporária para um perfil ou um usuário federado. Para saber mais, consulte [Políticas de sessão](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session) no *Guia do usuário do IAM*.

### Vários tipos de política
<a name="security_iam_access-manage-multiple-policies"></a>

Quando vários tipos de política são aplicáveis a uma solicitação, é mais complicado compreender as permissões resultantes. Para saber como AWS determinar se uma solicitação deve ser permitida quando vários tipos de políticas estão envolvidos, consulte [Lógica de avaliação de políticas](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html) no *Guia do usuário do IAM*.

## Controle de acesso
<a name="access-control-sfn"></a>

É possível ter credenciais válidas para autenticar suas solicitações. No entanto, a menos que tenha permissões, não é possível criar nem acessar os recursos do Step Functions. Por exemplo, você deve ter permissões para invocar AWS Lambda alvos do Amazon Simple Notification Service (Amazon SNS) e do Amazon Simple Queue Service (Amazon SQS) associados às suas regras do Step Functions.

As seções a seguir descrevem como gerenciar permissões para o Step Functions.
+ [Criar um perfil do IAM para a máquina de estado no Step Functions](procedure-create-iam-role.md)
+ [Criar permissões granulares para usuários não administradores no Step Functions](concept-create-iam-advanced.md)
+ [Criar endpoints da Amazon VPC para o Step Functions](vpc-endpoints.md)
+ [Como o Step Functions gera políticas do IAM para serviços integrados](service-integration-iam-templates.md)
+ [Políticas do IAM para usar estados de mapa distribuído](iam-policies-eg-dist-map.md)

# Como AWS Step Functions funciona com o IAM
<a name="security_iam_service-with-iam"></a>

Antes de usar o IAM para gerenciar o acesso ao Step Functions, saiba quais recursos do IAM estão disponíveis para uso com o Step Functions.

A tabela a seguir lista os recursos do IAM que você pode usar com AWS Step Functions:


| Recurso do IAM | Suporte ao Step Functions | 
| --- | --- | 
|  [Políticas baseadas em identidade](#security_iam_service-with-iam-id-based-policies)  |   Sim  | 
|  [Políticas baseadas em recurso](#security_iam_service-with-iam-resource-based-policies)  |   Não   | 
|  [Ações de políticas](#security_iam_service-with-iam-id-based-policies-actions)  |   Sim  | 
|  [Recursos de políticas](#security_iam_service-with-iam-id-based-policies-resources)  |   Sim  | 
|  [Chaves de condição de política (específicas do serviço)](#security_iam_service-with-iam-id-based-policies-conditionkeys)  |   Sim  | 
|  [ACLs](#security_iam_service-with-iam-acls)  |   Não   | 
|  [ABAC (tags em políticas)](#security_iam_service-with-iam-tags)  |   Parcial  | 
|  [Credenciais temporárias](#security_iam_service-with-iam-roles-tempcreds)  |   Sim  | 
|  [Permissões de entidade principal](#security_iam_service-with-iam-principal-permissions)  |   Sim  | 
|  [Perfis de serviço](#security_iam_service-with-iam-roles-service)  |   Sim  | 
|  [Perfis vinculados a serviço](#security_iam_service-with-iam-roles-service-linked)  |   Não   | 

Para ter uma visão de alto nível de como o Step Functions e outros AWS serviços funcionam com a maioria dos recursos do IAM, consulte [AWS os serviços que funcionam com o IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html) no *Guia do usuário do IAM*.

## Políticas baseadas em identidade do Step Functions
<a name="security_iam_service-with-iam-id-based-policies"></a>

**Compatível com políticas baseadas em identidade:** sim

As políticas baseadas em identidade são documentos de políticas de permissões JSON que podem ser anexados a uma identidade, como usuário do IAM, grupo de usuários ou perfil. Essas políticas controlam quais ações os usuários e perfis podem realizar, em quais recursos e em que condições. Para saber como criar uma política baseada em identidade, consulte [Definir permissões personalizadas do IAM com as políticas gerenciadas pelo cliente](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html) no *Guia do Usuário do IAM*.

Com as políticas baseadas em identidade do IAM, é possível especificar ações e recursos permitidos ou negados, assim como as condições sob as quais as ações são permitidas ou negadas. Para saber mais sobre todos os elementos que podem ser usados em uma política JSON, consulte [Referência de elemento de política JSON do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html) no *Guia do usuário do IAM*.

### Exemplos de políticas baseadas em identidade do Step Functions
<a name="security_iam_service-with-iam-id-based-policies-examples"></a>

Para visualizar exemplos de políticas baseadas em identidade do Step Functions, consulte [Exemplos de políticas baseadas em identidade para AWS Step Functions](security_iam_id-based-policy-examples.md).

## Políticas do baseadas em recursos no Step Functions
<a name="security_iam_service-with-iam-resource-based-policies"></a>

**Compatibilidade com políticas baseadas em recursos:** não 

Políticas baseadas em recursos são documentos de políticas JSON que você anexa a um recurso. São exemplos de políticas baseadas em recursos as *políticas de confiança de perfil* do IAM e as *políticas de bucket* do Amazon S3. Em serviços compatíveis com políticas baseadas em recursos, os administradores de serviço podem usá-las para controlar o acesso a um recurso específico. Para o atributo ao qual a política está anexada, a política define quais ações uma entidade principal especificado pode executar nesse atributo e em que condições. É necessário [especificar uma entidade principal](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html) em uma política baseada em recursos. Os diretores podem incluir contas, usuários, funções, usuários federados ou. Serviços da AWS

Para permitir o acesso entre contas, é possível especificar uma conta inteira ou as entidades do IAM em outra conta como a entidade principal em uma política baseada em recursos. Consulte mais informações em [Acesso a recursos entre contas no IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-cross-account-resource-access.html) no *Guia do usuário do IAM*.

## Ações de política do Step Functions
<a name="security_iam_service-with-iam-id-based-policies-actions"></a>

**Compatível com ações de políticas:** sim

Os administradores podem usar políticas AWS JSON para especificar quem tem acesso ao quê. Ou seja, qual **entidade principal** pode executar **ações** em quais **recursos** e em que **condições**.

O elemento `Action` de uma política JSON descreve as ações que podem ser usadas para permitir ou negar acesso em uma política. Incluem ações em uma política para conceder permissões para executar a operação associada.

Para ver uma lista das ações do Step Functions, consulte [Recursos definidos pelo AWS Step Functions](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_awsstepfunctions.html) na *Referência de autorização do serviço*.

As ações de políticas no Step Functions usam o seguinte prefixo antes da ação:

```
states
```

Para especificar várias ações em uma única declaração, separe-as com vírgulas.

```
"Action": [
          "states:action1",
          "states:action2"
             ]
```

Para visualizar exemplos de políticas baseadas em identidade do Step Functions, consulte [Exemplos de políticas baseadas em identidade para AWS Step Functions](security_iam_id-based-policy-examples.md).

## Recursos de política do Step Functions
<a name="security_iam_service-with-iam-id-based-policies-resources"></a>

**Compatível com recursos de políticas:** sim

Os administradores podem usar políticas AWS JSON para especificar quem tem acesso ao quê. Ou seja, qual **entidade principal** pode executar **ações** em quais **recursos** e em que **condições**.

O elemento de política JSON `Resource` especifica o objeto ou os objetos aos quais a ação se aplica. Como prática recomendada, especifique um recurso usando seu [nome do recurso da Amazon (ARN)](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference-arns.html). Para ações que não oferecem compatibilidade com permissões em nível de recurso, use um curinga (\$1) para indicar que a instrução se aplica a todos os recursos.

```
"Resource": "*"
```

Para ver uma lista dos tipos de recursos do Step Functions e seus ARNs, consulte [Actions Defined by AWS Step Functions](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_awsstepfunctions.html) na *Referência de Autorização de Serviço*. Para saber com quais ações você pode especificar o ARN de cada recurso, consulte [Recursos definidos pelo AWS Step Functions](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_awsstepfunctions.html).

Para visualizar exemplos de políticas baseadas em identidade do Step Functions, consulte [Exemplos de políticas baseadas em identidade para AWS Step Functions](security_iam_id-based-policy-examples.md).

## Chaves de condição de política do Step Functions
<a name="security_iam_service-with-iam-id-based-policies-conditionkeys"></a>

**Compatível com chaves de condição de política específicas de serviço:** sim

Os administradores podem usar políticas AWS JSON para especificar quem tem acesso ao quê. Ou seja, qual **entidade principal** pode executar **ações** em quais **recursos** e em que **condições**.

O elemento `Condition` especifica quando as instruções são executadas com base em critérios definidos. É possível criar expressões condicionais que usem [agentes de condição](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html), como “igual a” ou “menor que”, para fazer a condição da política corresponder aos valores na solicitação. Para ver todas as chaves de condição AWS globais, consulte as [chaves de contexto de condição AWS global](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html) no *Guia do usuário do IAM*.

Para ver uma lista de chaves de condição do Step Functions, consulte [Chaves de condição do AWS Step Functions](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_awsstepfunctions.html) na *Referência de autorização do serviço*. Para saber com quais ações e recursos você pode usar uma chave de condição, consulte [Recursos definidos por AWS Step Functions](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_awsstepfunctions.html).

 Se a sua política precisa depender do nome da entidade principal de serviço do Step Functions, recomendamos verificar a existência de `states.amazonaws.com` na [chave de contexto com vários valores](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-single-vs-multi-valued-context-keys.html#reference_policies_condition-multi-valued-context-keys) de `aws:PrincipalServiceNamesList` em vez da chave de condição `aws:PrincipalServiceName`. A chave de condição `aws:PrincipalServiceName` contém somente uma entrada da lista de nomes de entidades principais de serviço e pode nem sempre ser `states.amazonaws.com`. O bloco de condição a seguir demonstra a verificação da existência de `states.amazonaws.com`. 

```
{
    "Condition": {
        "ForAnyValue:StringEquals": {
            "aws:PrincipalServiceNamesList": "states.amazonaws.com"
        }
    }
}
```

Para visualizar exemplos de políticas baseadas em identidade do Step Functions, consulte [Exemplos de políticas baseadas em identidade para AWS Step Functions](security_iam_id-based-policy-examples.md).

## ACLs em Step Functions
<a name="security_iam_service-with-iam-acls"></a>

**Suportes ACLs:** Não 

As listas de controle de acesso (ACLs) controlam quais diretores (membros da conta, usuários ou funções) têm permissões para acessar um recurso. ACLs são semelhantes às políticas baseadas em recursos, embora não usem o formato de documento de política JSON.

## ABAC com o Step Functions
<a name="security_iam_service-with-iam-tags"></a>

**Compatível com ABAC (tags em políticas):** parcial

O controle de acesso por atributo (ABAC) é uma estratégia de autorização que define permissões com base em atributos chamados de tags. Você pode anexar tags a entidades e AWS recursos do IAM e, em seguida, criar políticas ABAC para permitir operações quando a tag do diretor corresponder à tag no recurso.

Para controlar o acesso baseado em tags, forneça informações sobre as tags no [elemento de condição](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html) de uma política usando as `aws:ResourceTag/key-name`, `aws:RequestTag/key-name` ou chaves de condição `aws:TagKeys`.

Se um serviço for compatível com as três chaves de condição para cada tipo de recurso, o valor será **Sim** para o serviço. Se um serviço for compatível com as três chaves de condição somente para alguns tipos de recursos, o valor será **Parcial**

Para saber mais sobre o ABAC, consulte [Definir permissões com autorização do ABAC](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction_attribute-based-access-control.html) no *Guia do usuário do IAM*. Para visualizar um tutorial com etapas para configurar o ABAC, consulte [Usar controle de acesso por atributo (ABAC)](https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_attribute-based-access-control.html) no *Guia do usuário do IAM*.

## Usar credenciais temporárias com o Step Functions
<a name="security_iam_service-with-iam-roles-tempcreds"></a>

**Compatível com credenciais temporárias:** sim

As credenciais temporárias fornecem acesso de curto prazo aos AWS recursos e são criadas automaticamente quando você usa a federação ou troca de funções. AWS recomenda que você gere credenciais temporárias dinamicamente em vez de usar chaves de acesso de longo prazo. Para obter mais informações, consulte [Credenciais de segurança temporárias no IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp.html) e [Serviços da Serviços da AWS que funcionam com o IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html) no *Guia do usuário do IAM*.

## Permissões de entidade principal entre serviços para o Step Functions
<a name="security_iam_service-with-iam-principal-permissions"></a>

**Compatibilidade com o recurso de encaminhamento de sessões de acesso (FAS):** sim

 As sessões de acesso direto (FAS) usam as permissões do principal chamando um AWS service (Serviço da AWS), combinadas com a solicitação AWS service (Serviço da AWS) de fazer solicitações aos serviços posteriores. Para obter detalhes da política ao fazer solicitações de FAS, consulte [Sessões de acesso direto](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_forward_access_sessions.html). 

## Perfis de serviço do Step Functions
<a name="security_iam_service-with-iam-roles-service"></a>

**Compatível com perfis de serviço:** sim

 O perfil de serviço é um [perfil do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) que um serviço assume para executar ações em seu nome. Um administrador do IAM pode criar, modificar e excluir um perfil de serviço do IAM. Para saber mais, consulte [Criar um perfil para delegar permissões a um AWS service (Serviço da AWS)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html) no *Guia do Usuário do IAM*. 

**Atenção**  
Alterar as permissões de um perfil de serviço pode prejudicar a funcionalidade do Step Functions. Apenas edite os perfis de serviço quando o Step Functions orientar você a fazer isso.

## Perfis vinculados ao serviço do Step Functions
<a name="security_iam_service-with-iam-roles-service-linked"></a>

**Compatível com perfis vinculados ao serviço:** Não 

 Uma função vinculada ao serviço é um tipo de função de serviço vinculada a um. AWS service (Serviço da AWS) O serviço pode assumir o perfil de executar uma ação em seu nome. As funções vinculadas ao serviço aparecem em você Conta da AWS e são de propriedade do serviço. Um administrador do IAM pode visualizar, mas não editar as permissões para perfis vinculados ao serviço. 

Para obter detalhes sobre como criar ou gerenciar perfis vinculados a serviços, consulte [Serviços da AWS que funcionam com o IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html). Encontre um serviço na tabela que inclua um `Yes` na coluna **Perfil vinculado ao serviço**. Escolha o link **Sim** para visualizar a documentação do perfil vinculado a serviço desse serviço.

# Exemplos de políticas baseadas em identidade para AWS Step Functions
<a name="security_iam_id-based-policy-examples"></a>

Por padrão, usuários e perfis não têm permissão para criar ou modificar recursos do Step Functions. Para conceder permissão aos usuários para executar ações nos recursos que eles precisam, um administrador do IAM pode criar políticas do IAM.

Para aprender a criar uma política baseada em identidade do IAM ao usar esses documentos de política em JSON de exemplo, consulte [Criar políticas do IAM (console)](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create-console.html) no *Guia do usuário do IAM*.

Para obter detalhes sobre ações e tipos de recursos definidos pelo Step Functions, incluindo o formato do ARNs para cada um dos tipos de recursos, consulte [Actions, Resources, and Condition Keys for AWS Step Functions](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_awsstepfunctions.html) the *Service Authorization Reference*.

**Topics**
+ [Práticas recomendadas de política](#security_iam_service-with-iam-policy-best-practices)
+ [Como usar o console do Step Functions](#security_iam_id-based-policy-examples-console)
+ [Permitir que os usuários visualizem suas próprias permissões](#security_iam_id-based-policy-examples-view-own-permissions)

## Práticas recomendadas de política
<a name="security_iam_service-with-iam-policy-best-practices"></a>

As políticas baseadas em identidade determinam se alguém pode criar, acessar ou excluir recursos do Step Functions em sua conta. Essas ações podem incorrer em custos para sua Conta da AWS. Ao criar ou editar políticas baseadas em identidade, siga estas diretrizes e recomendações:
+ **Comece com as políticas AWS gerenciadas e avance para as permissões de privilégios mínimos — Para começar a conceder permissões** aos seus usuários e cargas de trabalho, use as *políticas AWS gerenciadas* que concedem permissões para muitos casos de uso comuns. Eles estão disponíveis no seu Conta da AWS. Recomendamos que você reduza ainda mais as permissões definindo políticas gerenciadas pelo AWS cliente que sejam específicas para seus casos de uso. Para saber mais, consulte [Políticas gerenciadas pela AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies) ou [Políticas gerenciadas pela AWS para funções de trabalho](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_job-functions.html) no *Guia do usuário do IAM*.
+ **Aplique permissões de privilégio mínimo**: ao definir permissões com as políticas do IAM, conceda apenas as permissões necessárias para executar uma tarefa. Você faz isso definindo as ações que podem ser executadas em recursos específicos sob condições específicas, também conhecidas como *permissões de privilégio mínimo*. Para saber mais sobre como usar o IAM para aplicar permissões, consulte [Políticas e permissões no IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html) no *Guia do usuário do IAM*.
+ **Use condições nas políticas do IAM para restringir ainda mais o acesso**: é possível adicionar uma condição às políticas para limitar o acesso a ações e recursos. Por exemplo, é possível escrever uma condição de política para especificar que todas as solicitações devem ser enviadas usando SSL. Você também pode usar condições para conceder acesso às ações de serviço se elas forem usadas por meio de uma ação específica AWS service (Serviço da AWS), como CloudFormation. Para saber mais, consulte [Elementos da política JSON do IAM: condição](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html) no *Guia do usuário do IAM*.
+ **Use o IAM Access Analyzer para validar suas políticas do IAM a fim de garantir permissões seguras e funcionais**: o IAM Access Analyzer valida as políticas novas e existentes para que elas sigam a linguagem de política do IAM (JSON) e as práticas recomendadas do IAM. O IAM Access Analyzer oferece mais de cem verificações de política e recomendações práticas para ajudar a criar políticas seguras e funcionais. Para saber mais, consulte [Validação de políticas do IAM Access Analyzer](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-policy-validation.html) no *Guia do Usuário do IAM*.
+ **Exigir autenticação multifator (MFA**) — Se você tiver um cenário que exija usuários do IAM ou um usuário root, ative Conta da AWS a MFA para obter segurança adicional. Para exigir MFA quando as operações de API forem chamadas, adicione condições de MFA às suas políticas. Para saber mais, consulte [Configuração de acesso à API protegido por MFA](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa_configure-api-require.html) no *Guia do Usuário do IAM*.

Para saber mais sobre as práticas recomendadas do IAM, consulte [Práticas recomendadas de segurança no IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) no *Guia do usuário do IAM*.

## Como usar o console do Step Functions
<a name="security_iam_id-based-policy-examples-console"></a>

Para acessar o AWS Step Functions console, você deve ter um conjunto mínimo de permissões. Essas permissões devem permitir que você liste e visualize detalhes sobre os recursos do Step Functions em seu Conta da AWS. Caso crie uma política baseada em identidade mais restritiva que as permissões mínimas necessárias, o console não funcionará como pretendido para entidades (usuários ou perfis) com essa política.

Você não precisa permitir permissões mínimas do console para usuários que estão fazendo chamadas somente para a API AWS CLI ou para a AWS API. Em vez disso, permita o acesso somente a ações que correspondam à operação de API que estiverem tentando executar.

Para garantir que usuários e funções ainda possam usar o console do Step Functions, anexe também o Step Functions `ConsoleAccess` ou a política `ReadOnly` AWS gerenciada às entidades. Para obter informações, consulte [Adicionar permissões a um usuário](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_change-permissions.html#users_change_permissions-add-console) no *Guia do usuário do IAM*.

## Permitir que os usuários visualizem suas próprias permissões
<a name="security_iam_id-based-policy-examples-view-own-permissions"></a>

Este exemplo mostra como criar uma política que permita que os usuários do IAM visualizem as políticas gerenciadas e em linha anexadas a sua identidade de usuário. Essa política inclui permissões para concluir essa ação no console ou programaticamente usando a API AWS CLI ou AWS .

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ViewOwnUserInfo",
            "Effect": "Allow",
            "Action": [
                "iam:GetUserPolicy",
                "iam:ListGroupsForUser",
                "iam:ListAttachedUserPolicies",
                "iam:ListUserPolicies",
                "iam:GetUser"
            ],
            "Resource": ["arn:aws:iam::*:user/${aws:username}"]
        },
        {
            "Sid": "NavigateInConsole",
            "Effect": "Allow",
            "Action": [
                "iam:GetGroupPolicy",
                "iam:GetPolicyVersion",
                "iam:GetPolicy",
                "iam:ListAttachedGroupPolicies",
                "iam:ListGroupPolicies",
                "iam:ListPolicyVersions",
                "iam:ListPolicies",
                "iam:ListUsers"
            ],
            "Resource": "*"
        }
    ]
}
```

# AWS políticas gerenciadas para AWS Step Functions
<a name="security-iam-awsmanpol"></a>





Uma política AWS gerenciada é uma política autônoma criada e administrada por AWS. AWS as políticas gerenciadas são projetadas para fornecer permissões para muitos casos de uso comuns, para que você possa começar a atribuir permissões a usuários, grupos e funções.

Lembre-se de que as políticas AWS gerenciadas podem não conceder permissões de privilégio mínimo para seus casos de uso específicos porque elas estão disponíveis para uso de todos os AWS clientes. Recomendamos que você reduza ainda mais as permissões definindo as [ políticas gerenciadas pelo cliente](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#customer-managed-policies) que são específicas para seus casos de uso.

Você não pode alterar as permissões definidas nas políticas AWS gerenciadas. Se AWS atualizar as permissões definidas em uma política AWS gerenciada, a atualização afetará todas as identidades principais (usuários, grupos e funções) às quais a política está anexada. AWS é mais provável que atualize uma política AWS gerenciada quando uma nova AWS service (Serviço da AWS) for lançada ou novas operações de API forem disponibilizadas para serviços existentes.

Para saber mais, consulte [AWS Políticas gerenciadas pela ](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies) no *Guia do usuário do IAM*.









## AWS política gerenciada: AWSStep FunctionsConsoleFullAccess
<a name="security-iam-awsmanpol-AWSStepFunctionsConsoleFullAccess"></a>

É possível anexar a política [https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSStepFunctionsConsoleFullAccess.html](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSStepFunctionsConsoleFullAccess.html) às suas identidades do IAM.

Essa política concede *administrator* permissões que permitem que um usuário acesse o console Step Functions. Para uma experiência de console completa, um usuário também pode precisar da PassRole permissão iam: em outras funções do IAM que podem ser assumidas pelo serviço.

## AWS política gerenciada: AWSStep FunctionsReadOnlyAccess
<a name="security-iam-awsmanpol-AWSStepFunctionsReadOnlyAccess"></a>

É possível anexar a política [https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSStepFunctionsReadOnlyAccess.html](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSStepFunctionsReadOnlyAccess.html) às suas identidades do IAM.

Essa política concede *read-only* permissões que permitem que um usuário ou função liste e descreva máquinas de estado, atividades, execuções, atividades MapRuns, tags e alias e versões de máquinas de estado. Essa política também concede permissão para conferir a sintaxe das definições de máquina de estado fornecidas por você.

## AWS política gerenciada: AWSStep FunctionsFullAccess
<a name="security-iam-awsmanpol-AWSStepFunctionsFullAccess"></a>

É possível anexar a política [https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSStepFunctionsFullAccess.html](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSStepFunctionsFullAccess.html) às suas identidades do IAM.

Essa política concede *full* permissões a um usuário ou função para usar a API Step Functions. Para ter acesso total, o usuário deve ter *iam:PassRole* permissão em pelo menos uma função do IAM que possa ser assumida pelo serviço.

## Atualizações do Step Functions para políticas AWS gerenciadas
<a name="security-iam-awsmanpol-updates"></a>

Veja detalhes sobre as atualizações das políticas AWS gerenciadas do Step Functions desde que esse serviço começou a rastrear essas alterações. Para receber alertas automáticos sobre alterações feitas nesta página, assine o feed RSS na página [Histórico do documento](document-history.md) do Step Functions.




| Alteração | Descrição | Data | 
| --- | --- | --- | 
|  [AWSStepFunctionsReadOnlyAccess](#security-iam-awsmanpol-AWSStepFunctionsReadOnlyAccess): atualizar para uma política existente   |  O Step Functions adicionou novas permissões a fim de autorizar a chamada da ação de API `states:ValidateStateMachineDefinition` para conferir a sintaxe das definições de máquina de estado que você fornece.  | 25 de abril de 2024 | 
|  [AWSStepFunctionsReadOnlyAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSStepFunctionsReadOnlyAccess.html) – atualização para uma política existente  |  Step Functions adicionou novas permissões para permitir listar e ler dados relacionados a: Tags (ListTagsForResource), Distributed Map (ListMapRuns, DescribeMapRun), Versions and Aliases (DescribeStateMachineAlias, ListStateMachineAliases, ListStateMachineVersions).   | 2 de abril de 2024 | 
|  O Step Functions começou a monitorar as alterações  |  Step Functions começou a monitorar as mudanças em suas políticas AWS gerenciadas.  | 2 de abril de 2024 | 

# Criar um perfil do IAM para a máquina de estado no Step Functions
<a name="procedure-create-iam-role"></a>

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

[Tutoriais para saber sobre o Step Functions](learning-resources.md#tutorials)Neste guia, você pode aproveitar as funções do IAM geradas automaticamente que são válidas para a AWS região na qual você cria a máquina de estado. No entanto, você pode criar seu próprio perfil do IAM para uma máquina de estado.

Ao ser criada para suas máquinas de estado, uma política do IAM deve incluir as permissões que você gostaria que fossem assumidas pelas máquinas de estado. Você pode usar uma política AWS gerenciada existente como exemplo ou criar uma política personalizada do zero que atenda às suas necessidades específicas. Para ver mais informações, consulte [Criar políticas do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html) no *Guia do usuário do IAM*.

Para criar um perfil do IAM para uma máquina de estado, siga as etapas desta seção.

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

## Criar um perfil para o Step Functions
<a name="create-role-for-step-functions"></a>

1. Faça login no [console do IAM](https://console.aws.amazon.com/iam/home) e escolha **Perfis**, **Criar perfil**.

1. Na página **Selecionar entidade confiável**, em **serviço da AWS **, selecione **Step Functions** na lista e, em seguida, **Próximo: permissões**.

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

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

   O perfil do IAM é exibido na lista de perfis.

Para ver mais informações sobre permissões e políticas do IAM, consulte [Gerenciamento de acesso](https://docs.aws.amazon.com/IAM/latest/UserGuide/access.html) no *Guia do usuário do IAM*.

## Prevenção do problema do substituto confuso entre serviços
<a name="prevent-cross-service-confused-deputy"></a>

O problema "confused deputy" é um problema 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 executar a ação. 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 que delegados confusos, AWS fornece ferramentas que ajudam você a proteger seus dados em 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 delegados confusos entre serviços, específica de AWS Step Functions; no entanto, você pode aprender mais sobre esse tópico na seção [Confused Deputy Problem](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html) do *Guia do usuário do IAM*.

Recomendamos o uso das chaves de contexto de condição global [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn) e [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount) em políticas de recursos para limitar as permissões que o Step Functions concede a outro serviço para acessar seus recursos. Use `aws:SourceArn` se quiser que apenas um recurso seja associado ao acesso entre serviços. 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 problema do substituto confuso é usar a chave de contexto de condição global `aws:SourceArn` com o ARN completo do recurso. Se você não souber o ARN completo do recurso ou estiver especificando vários recursos, use a chave de condição de contexto global `aws:SourceArn` com caracteres curingas (`*`) 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
<a name="attach-inline-policy"></a>

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 ações de API dos serviços que você precisa controlar.

1. Abra o [console do IAM](https://console.aws.amazon.com/iam/home), escolha **Perfis**, procure seu perfil do Step Functions e selecione-o.

1. Selecione **Adicionar política em linha**.

1. Use o **Visual editor (Editor visual)** ou a guia **JSON** a fim de criar políticas para a função.

Para obter mais informações sobre como AWS Step Functions controlar outros AWS serviços, consulte[Integrar serviços ao Step Functions](integrate-services.md).

**nota**  
Para obter exemplos de políticas do IAM criadas pelo console do Step Functions, consulte [Como o Step Functions gera políticas do IAM para serviços integrados](service-integration-iam-templates.md).

# Criar permissões granulares para usuários não administradores no Step Functions
<a name="concept-create-iam-advanced"></a>

As políticas gerenciadas padrão no IAM, como`ReadOnly`, não abrangem totalmente todos os tipos de AWS Step Functions permissões. Esta seção descreve esses tipos diferentes de permissões e apresenta alguns exemplos de configurações. 

O Step Functions tem quatro categorias de permissões. Dependendo do acesso que você deseja fornecer a um usuário, pode controlar o acesso usando as permissões dessas categorias. 

[Permissões no nível do serviço](#concept-create-iam-advanced-service)  
Aplique aos componentes da API que **não** atuam em um recurso específico.

[Permissões no nível da máquina de estado](#concept-create-iam-advanced-state)  
Aplicar a todos os componentes de API que atuam em uma máquina de estado específica.

[Permissões no nível da execução](#concept-create-iam-advanced-execution)  
Aplicar a todos os componentes de API que atuam em uma execução específica.

[Permissões no nível da atividade](#concept-create-iam-advanced-activity)  
Aplicar a todos os componentes de API que atuam em uma atividade específica ou em uma determinada instância de uma atividade.

## Permissões no nível do serviço
<a name="concept-create-iam-advanced-service"></a>

Esse nível de permissão se aplica a todas as ações de API que **não** atuam em um recurso específico. Entre elas estão `[CreateStateMachine](https://docs.aws.amazon.com/step-functions/latest/apireference/API_CreateStateMachine.html)`, `[CreateActivity](https://docs.aws.amazon.com/step-functions/latest/apireference/API_CreateActivity.html)`, `[ListStateMachines](https://docs.aws.amazon.com/step-functions/latest/apireference/API_ListStateMachines.html)`, `[ListActivities](https://docs.aws.amazon.com/step-functions/latest/apireference/API_ListActivities.html)` e `[ValidateStateMachineDefinition](https://docs.aws.amazon.com/step-functions/latest/apireference/API_ValidateStateMachineDefinition.html)`. 

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "states:ListStateMachines",
                "states:ListActivities",
                "states:CreateStateMachine",
                "states:CreateActivity",
                "states:ValidateStateMachineDefinition"
            ],
            "Resource": [
                "arn:aws:states:*:*:*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "iam:PassRole"
            ],
            "Resource": [
                "arn:aws:iam::123456789012:role/my-execution-role"
            ]
        }
    ]
}
```

## Permissões no nível da máquina de estado
<a name="concept-create-iam-advanced-state"></a>

Esse nível de permissão se aplica a todas as ações de API que atuam em uma máquina de estado específica. Essas operações de API requerem o nome do recurso da Amazon (ARN) da máquina de estado como parte da solicitação, como `[DeleteStateMachine](https://docs.aws.amazon.com/step-functions/latest/apireference/API_DeleteStateMachine.html)`, `[DescribeStateMachine](https://docs.aws.amazon.com/step-functions/latest/apireference/API_DescribeStateMachine.html)`, `[StartExecution](https://docs.aws.amazon.com/step-functions/latest/apireference/API_StartExecution.html)` e `[ListExecutions](https://docs.aws.amazon.com/step-functions/latest/apireference/API_ListExecutions.html)`.

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "states:DescribeStateMachine",
        "states:StartExecution",
        "states:DeleteStateMachine",
        "states:ListExecutions",
        "states:UpdateStateMachine",
        "states:TestState",
        "states:RevealSecrets"
      ],
      "Resource": [ 
        "arn:aws:states:*:*:stateMachine:StateMachinePrefix*" 
      ]
    }
  ]
}
```

## Permissões no nível da execução
<a name="concept-create-iam-advanced-execution"></a>

Esse nível de permissão se aplica a todas as ações de API que atuam em uma execução específica. Essas operações de API exigem o ARN da execução como parte da solicitação, como `[DescribeExecution](https://docs.aws.amazon.com/step-functions/latest/apireference/API_DescribeExecution.html)`, `[GetExecutionHistory](https://docs.aws.amazon.com/step-functions/latest/apireference/API_GetExecutionHistory.html)` e `[StopExecution](https://docs.aws.amazon.com/step-functions/latest/apireference/API_StopExecution.html)`.

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "states:DescribeExecution",
        "states:DescribeStateMachineForExecution",
        "states:GetExecutionHistory",
        "states:StopExecution"
      ],
      "Resource": [ 
        "arn:aws:states:*:*:execution:*:ExecutionPrefix*"
      ]
    }
  ]
}
```

## Permissões no nível da atividade
<a name="concept-create-iam-advanced-activity"></a>

Esse nível de permissão se aplica a todas as ações de API que atuam em uma atividade específica ou em uma determinada instância dela. Essas operações de API exigem o ARN da atividade ou o token da instância como parte da solicitação, como `[DeleteActivity](https://docs.aws.amazon.com/step-functions/latest/apireference/API_DeleteActivity.html)`, `[DescribeActivity](https://docs.aws.amazon.com/step-functions/latest/apireference/API_DescribeActivity.html)`, `[GetActivityTask](https://docs.aws.amazon.com/step-functions/latest/apireference/API_GetActivityTask.html)` e `[SendTaskHeartbeat](https://docs.aws.amazon.com/step-functions/latest/apireference/API_SendTaskHeartbeat.html)`.

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "states:DescribeActivity",
        "states:DeleteActivity",
        "states:GetActivityTask",
        "states:SendTaskHeartbeat"
      ],
      "Resource": [
        "arn:aws:states:*:*:activity:ActivityPrefix*"
      ]
    }
  ]
}
```

# Acessando recursos em outros Contas da AWS no Step Functions
<a name="concepts-access-cross-acct-resources"></a>

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

Por exemplo, suponha que você possua dois Contas da AWS, chamados 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**  
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](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic-cross-account.html) no *Guia do usuário do IAM*.

Embora cada um 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`](connect-to-resource.md#connect-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)](connect-to-resource.md#connect-sync).

**nota**  
A integração do AWS SDK entre regiões e o acesso a AWS recursos entre regiões não estão disponíveis no Step Functions.

## Principais conceitos de recursos entre contas
<a name="key-terms-cross-acct-access"></a>

**[Perfil de execução](procedure-create-iam-role.md)**  
Uma função do IAM que Step Functions usa para executar código e acessar AWS recursos, como a ação Invoke da AWS Lambda função.

**[Integração de serviços](integrate-services.md)**  
As ações da API de integração do AWS SDK que podem ser chamadas de dentro de um `Task` estado em seus fluxos de trabalho.

**Conta de origem**  
E Conta da AWS que é dona da máquina estatal e iniciou sua execução.

**Conta de destino**  
E 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)](connect-to-resource.md#connect-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 campo `Resource` na definição do estado `Task`.

## Invocar recursos entre contas
<a name="invoke-cross-acct-resource"></a>

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

1. 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.

1. 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.

1. 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 na função de destino do IAM para chamar o AWS recurso.

1. 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 [Acessando AWS recursos entre contas em Step Functions](tutorial-access-cross-acct-resources.md) 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.

![\[Conceito para acessar recursos entre contas\]](http://docs.aws.amazon.com/pt_br/step-functions/latest/dg/images/cross-account-support-concept.png)


## Acesso entre contas para o padrão de integração .sync
<a name="concepts-cross-acct-sync-pattern"></a>

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
<a name="cross-acct-sync-pattern-policy-update"></a>

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 AWS Security Token Service `AssumeRole` API. Para obter mais informações, consulte [AssumeRole](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html) na *Referência de APIs do AWS Security Token Service *.

```
{
  "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
<a name="cross-acct-sync-pattern-perms-update"></a>

Para conceder as permissões necessárias para sua máquina de estado, atualize-as para o perfil do IAM de destino. Para obter mais informações, consulte [Como o Step Functions gera políticas do IAM para serviços integrados](service-integration-iam-templates.md). 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:us-east-1:123456789012:stateMachine:myStateMachineName"
      ]
    },
    {
      "Effect": "Allow",
      "Action": [
        "states:DescribeExecution",
        "states:StopExecution"
      ],
      "Resource": [
        "arn:aws:states:us-east-1:123456789012:execution:myStateMachineName:*"
      ]
    }
  ]
}
```

# Criar endpoints da Amazon VPC para o Step Functions
<a name="vpc-endpoints"></a>

Se você usa a Amazon Virtual Private Cloud (Amazon VPC) para hospedar seus AWS recursos, você pode estabelecer uma conexão entre sua Amazon VPC e fluxos de trabalho. AWS Step Functions É possível usar essa conexão com seus fluxos de trabalho do Step Functions sem passar pela internet pública. Os endpoints da Amazon VPC são compatíveis com fluxos de trabalho padrão, fluxos de trabalho expressos e fluxos de trabalho expressos síncronos. 

A Amazon VPC permite que você lance AWS recursos em uma rede virtual personalizada. Você pode usar uma VPC para controlar as configurações de rede, como o intervalo de endereços IP, sub-redes, tabelas de rotas e gateways de rede. Para obter mais informações sobre VPCs, consulte o Guia do [usuário da Amazon VPC](https://docs.aws.amazon.com/vpc/latest/userguide/).

Para conectar sua Amazon VPC ao Step Functions, você deve primeiro definir uma interface *VPC endpoint*, que permite conectar sua VPC a outros serviços. AWS O endpoint fornece conectividade confiável e escalável sem a necessidade de um gateway da internet, da instância de conversão de endereço de rede (NAT) ou de uma conexão VPN. Para obter mais informações, consulte [Endpoints da VPC da interface (AWS PrivateLink)](https://docs.aws.amazon.com/vpc/latest/userguide/vpce-interface.html) no *Guia do usuário da Amazon VPC*.

## Criação do endpoint
<a name="vpc-endpoint-create"></a>

Você pode criar um AWS Step Functions endpoint em sua VPC usando Console de gerenciamento da AWS o, AWS Command Line Interface the AWS CLI(), AWS um SDK, AWS Step Functions a API ou. CloudFormation

Para obter informações sobre como criar e configurar um endpoint usando o console da Amazon VPC ou a AWS CLI, consulte [Creating an Interface Endpoint](https://docs.aws.amazon.com/vpc/latest/userguide/vpce-interface.html#create-interface-endpoint) (“Criar um endpoint da interface”) no *Manual do usuário da Amazon VPC*.

**nota**  
 Ao criar um endpoint, especifique o Step Functions como o serviço ao qual a VPC deve se conectar. No console da Amazon VPC, os nomes dos serviços variam de acordo com a AWS região. Por exemplo, se você escolher Leste dos EUA (Norte da Virgínia), o nome do serviço para fluxos de trabalho padrão e expressos será **com.amazonaws.us-east-1.states**, e o nome do serviço para fluxos de trabalho expressos síncronos será **com.amazonaws.us-east-1.sync-states**.

**nota**  
É possível usar Endpoints da VPC sem substituir o endpoint no SDK por meio do [DNS privado](https://docs.aws.amazon.com/vpc/latest/privatelink/verify-domains.html). No entanto, para substituir o endpoint no SDK para fluxos de trabalho expressos síncronos, será necessário definir a configuração `DisableHostPrefixInjection` como `true`. Exemplo (Java SDK V2):   

```
SfnClient.builder()
  .endpointOverride(URI.create("https://vpce-{vpceId}.sync-states.us-east-1.vpce.amazonaws.com"))
  .overrideConfiguration(ClientOverrideConfiguration.builder()
    .advancedOptions(ImmutableMap.of(SdkAdvancedClientOption.DISABLE_HOST_PREFIX_INJECTION, true))
    .build())
  .build();
```

*Para obter informações sobre como criar e configurar um endpoint usando CloudFormation, consulte o VPCEndpoint recurso [AWS: :EC2::](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcendpoint.html) no Guia do usuário.CloudFormation *

## Políticas de endpoint da Amazon VPC
<a name="vpc-endpoint-policy"></a>

Para controlar o acesso de conectividade ao Step Functions, você pode anexar uma política de endpoint AWS Identity and Access Management (IAM) ao criar um endpoint da Amazon VPC. É possível criar regras complexas do IAM anexando várias políticas de endpoint. Para obter mais informações, consulte:
+  [Políticas de endpoint da Amazon Virtual Private Cloud para o Step Functions](#vpc-iam) 
+  [Criar permissões granulares para usuários não administradores no Step Functions](concept-create-iam-advanced.md) 
+  [Controle do acesso a serviços com VPC endpoints](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints-access.html) 

## Políticas de endpoint da Amazon Virtual Private Cloud para o Step Functions
<a name="vpc-iam"></a>

É possível criar uma política de endpoint de Amazon VPC para o Step Functions na qual você especifica o seguinte:
+ A entidade principal que pode realizar ações.
+ As ações que podem ser realizadas.
+ Os recursos nos quais as ações podem ser executadas.

O exemplo a seguir mostra uma política de endpoint da Amazon VPC que permite que um usuário crie máquinas de estado e nega a todos os outros usuários a permissão para excluir máquinas de estado. A política de exemplo também concede permissão de execução a todos os usuários do .

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Action": [
              "states:ListExecutions", "states:StartExecution", "states:StopExecution", "states:DescribeExecution"
            ],
            "Resource": "*",
            "Effect": "Allow",
            "Principal": "*"
        },
        {
            "Action": "states:CreateStateMachine",
            "Resource": "*",
            "Effect": "Allow",
            "Principal": {
              "AWS": "arn:aws:iam::123456789012:user/MyUser"
            }
        },
        {
            "Action": "states:DeleteStateMachine",
            "Resource": "*",
            "Effect": "Deny",
            "Principal": "*"
        }
    ]
}
```

Para obter mais informações sobre como criar políticas de endpoint, consulte o seguinte: 
+  [Criar permissões granulares para usuários não administradores no Step Functions](concept-create-iam-advanced.md) 
+  [Controle do acesso a serviços com VPC endpoints](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints-access.html) 

# Como o Step Functions gera políticas do IAM para serviços integrados
<a name="service-integration-iam-templates"></a>

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](integrate-optimized.md). 
+ 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
<a name="connect-iam-dynamic-static"></a>

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
<a name="connect-iam-sync-async"></a>

Tarefas que usam o padrão [Executar um trabalho (.sync)](connect-to-resource.md#connect-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 para`ecs:DescribeTasks`, para AWS Glue a máquina de estado requer permissões de permissão para`glue: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:PutTargets``events: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](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-service-event.html). 

## Solução de problemas em fluxos de trabalho .sync bloqueados
<a name="polling-events-troubleshooting"></a>

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 `Resource` usado para `events:PutRule` no 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](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-delete-rule.html) uma regra. 

## Permissões para cancelar fluxos de trabalho
<a name="iam-cancel-tasks"></a>

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](connect-to-resource.md#connect-sync).

**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](connect-to-resource.md).

## Políticas do IAM para máquinas de estado do Step Functions somente para atividades
<a name="activities-iam"></a>

Para obter uma máquina de estado que tem apenas tarefas de `Activity` ou nenhuma tarefa, use uma política do IAM que nega o acesso a todos os recursos e ações.

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Deny",
            "Action": "*",
            "Resource": "*"
        }
    ]
}
```

Para obter mais informações sobre como usar tarefas ` Activity `, consulte [Saiba mais sobre atividades no Step Functions.](concepts-activities.md).

# Políticas do IAM para usar estados de mapa distribuído
<a name="iam-policies-eg-dist-map"></a>

Ao criar fluxos de trabalho com o console do Step Functions, o Step Functions pode gerar automaticamente políticas do IAM com base nos recursos na definição de fluxo de trabalho. As políticas geradas incluem os privilégios mínimos necessários para permitir que a função de máquina de estado invoque a ação da `[StartExecution](https://docs.aws.amazon.com/step-functions/latest/apireference/API_StartExecution.html)` API para o *estado do Mapa Distribuído* e acesse AWS recursos, como buckets e objetos do Amazon S3 e funções Lambda.

Recomendamos incluir somente as permissões que forem necessárias em suas políticas do IAM. Por exemplo, se o fluxo de trabalho incluir um estado `Map` no modo distribuído, defina o escopo de suas políticas até o bucket e a pasta específicos do Amazon S3 que contêm os dados.

**Importante**  
Se você especificar um bucket e um objeto do Amazon S3, ou prefixo, com um [caminho de referência](amazon-states-language-paths.md#amazon-states-language-reference-paths) para um par de valores-chave existente na entrada do *estado Mapa Distribuído*, certifique-se de atualizar as políticas de IAM do fluxo de trabalho. Defina o escopo das políticas até o bucket e os nomes de objetos para os quais o caminho é resolvido em runtime.

## Exemplo de política do IAM para executar um estado Mapa Distribuído
<a name="iam-policy-run-dist-map"></a>

Ao incluir um *estado Mapa Distribuído* nos fluxos de trabalho, o Step Functions precisa de permissões apropriadas para permitir que o perfil de máquina de estado invoque a ação da API `[StartExecution](https://docs.aws.amazon.com/step-functions/latest/apireference/API_StartExecution.html)` para o *estado Mapa Distribuído*.

O exemplo de política do IAM a seguir concede os privilégios mínimos necessários ao perfil da máquina de estado para executar o *estado Mapa Distribuído*.

**nota**  
Substitua `stateMachineName` pelo nome da máquina de estado na qual você está usando o *estado Mapa Distribuído*. Por exemplo, .`arn:aws:states:region:account-id:stateMachine:mystateMachine`

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "states:StartExecution"
      ],
      "Resource": [
        "arn:aws:states:us-east-1:123456789012:stateMachine:myStateMachineName"
      ]
    },
    {
      "Effect": "Allow",
      "Action": [
        "states:DescribeExecution"
      ],
      "Resource": "arn:aws:states:us-east-1:123456789012:execution:myStateMachineName:*"
    }
  ]
}
```

## Exemplo de política do IAM para redriving um estado Mapa Distribuído
<a name="iam-policy-redrive-dist-map"></a>

Você pode reiniciar execuções malsucedidas do fluxo de trabalho secundário em uma Execução de mapa [redriving](redrive-executions.md) o [fluxo de trabalho principal](state-map-distributed.md#dist-map-orchestrate-parallel-workloads-key-terms). Um fluxo de trabalho principal redriven redrives todos os estados malsucedidos, incluindo o Mapa distribuído. Certifique-se de que o perfil de execução tenha os privilégios mínimos necessários para permitir que ele invoque a ação da API `[RedriveExecution](https://docs.aws.amazon.com/step-functions/latest/apireference/API_RedriveExecution.html)` no fluxo de trabalho principal.

O exemplo de política do IAM a seguir concede os privilégios mínimos necessários ao perfil da máquina de estado para redriving um *estado Mapa Distribuído*.

**nota**  
Substitua `stateMachineName` pelo nome da máquina de estado na qual você está usando o *estado Mapa Distribuído*. Por exemplo, .`arn:aws:states:region:account-id:stateMachine:mystateMachine`

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "states:RedriveExecution"
      ],
      "Resource": "arn:aws:states:us-east-2:123456789012:execution:myStateMachineName/myMapRunLabel:*"
    }
  ]
}
```

## Exemplos de políticas do IAM para ler dados de conjuntos de dados do Amazon S3
<a name="iam-policy-eg-item-reader"></a>

[Os exemplos a seguir mostram técnicas para conceder os privilégios mínimos necessários para acessar seus conjuntos de dados do Amazon S3 usando ListObjects as ações de V2 e API. [GetObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html)](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html)

**Example condição usando um objeto do Amazon S3 como o conjunto de dados**  
A condição a seguir concede os privilégios mínimos para acessar objetos em uma pasta `processImages` de um bucket do Amazon S3.  

```
"Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket" ],
"Condition": {
   "StringLike": { 
      "s3:prefix": [ "processImages" ]
   }
}
```

**Example usando um arquivo CSV como um conjunto de dados**  
O exemplo a seguir mostra as ações necessárias para acessar um arquivo CSV chamado `ratings.csv`.  

```
"Action": [ "s3:GetObject" ],
"Resource": [
   "arn:aws:s3:::amzn-s3-demo-bucket/csvDataset/ratings.csv"
   ]
```

**Example usando um inventário Amazon S3 como um conjunto de dados**  
Veja a seguir exemplos de recursos para um manifesto de arquivos de dados e Inventário Amazon S3.  

```
"Resource": [
   "arn:aws:s3:::myPrefix/amzn-s3-demo-bucket/myConfig-id/YYYY-MM-DDTHH-MMZ/manifest.json",
   "arn:aws:s3:::myPrefix/amzn-s3-demo-bucket/myConfig-id/data/*"
   ]
```

**Example usando ListObjects V2 para restringir a um prefixo de pasta**  
Ao usar a [ListObjectsV2](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html), duas políticas serão geradas. Uma é necessária para permitir a **listagem** do conteúdo do bucket (`ListBucket`) e outra política permitirá **recuperar objetos** no bucket (`GetObject`).   
Veja a seguir exemplos de ações, recursos e uma condição:  

```
"Action": [ "s3:ListBucket" ],
"Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket" ],
"Condition": {
   "StringLike": {
      "s3:prefix": [ "/path/to/your/json/" ]
   }
}
```

```
"Action": [ "s3:GetObject" ],
"Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket/path/to/your/json/*" ]
```
Observe que `GetObject` não será definido no escopo e você usará um curinga (`*`) para o objeto.

## Exemplo de política do IAM para gravar dados em um bucket do Amazon S3
<a name="iam-policy-eg-result-writer"></a>

O exemplo de política do IAM a seguir concede os privilégios mínimos necessários para gravar os resultados da execução do fluxo de trabalho secundário em uma pasta nomeada *csvJobs* em um bucket do Amazon S3 usando `[PutObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html)` a ação de API.

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:PutObject",
                "s3:GetObject",
                "s3:ListMultipartUploadParts",
                "s3:AbortMultipartUpload"
            ],
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-destination-bucket/csvJobs/*"
            ]
        }
    ]
}
```

### Permissões do IAM para AWS KMS key bucket criptografado do Amazon S3
<a name="multiupload-dmap-result-policy"></a>

O *estado Mapa Distribuído* usa uploads de várias partes para gravar os resultados da execução do fluxo de trabalho secundário em um bucket do Amazon S3. Se o bucket for criptografado usando uma chave AWS Key Management Service (AWS KMS), será necessário também incluir permissões em sua política do IAM para realizar as ações `kms:Decrypt`, `kms:Encrypt` e `kms:GenerateDataKey` na chave. Essas permissões são necessárias porque o Amazon S3 precisa descriptografar e ler os dados de partes de arquivos criptografados antes de concluir o multipart upload.

O exemplo de política do IAM a seguir concede permissão para as ações `kms:Decrypt`, `kms:Encrypt` e `kms:GenerateDataKey` na chave usada para criptografar o bucket do Amazon S3.

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": {
    "Effect": "Allow",
    "Action": [
      "kms:Decrypt",
      "kms:Encrypt",
      "kms:GenerateDataKey"
    ],
    "Resource": [
      "arn:aws:kms:us-east-1:123456789012:key/111aa2bb-333c-4d44-5555-a111bb2c33dd"
    ]
  }
}
```

Para obter mais informações, consulte [Carregando um arquivo grande para o Amazon S3 com criptografia usando uma AWS KMS key](https://aws.amazon.com/premiumsupport/knowledge-center/s3-large-file-encryption-kms-key/) na *Central de Conhecimento da AWS *.

Se seu usuário ou função do IAM for Conta da AWS igual aoKMS key, você deverá ter essas permissões na política de chaves. Se o seu usuário ou perfil do IAM pertencer a uma conta diferente da KMS key, será necessário ter as permissões na política de chave e no usuário ou perfil do IAM.

# Criar políticas do IAM baseadas em tags no Step Functions
<a name="tag-based-policies"></a>

O Step Functions oferece suporte a políticas baseadas em tags. Por exemplo, é possível restringir o acesso a todos os recursos do Step Functions que incluam uma tag com a chave `environment` e o valor `production`.

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Deny",
            "Action": [
                "states:TagResource",
                "states:UntagResource",
                "states:DeleteActivity",
                "states:DeleteStateMachine",
                "states:StopExecution"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {"aws:ResourceTag/environment": "production"}
            }
        }
    ]
}
```

Esta política aplica `Deny` à capacidade de excluir máquinas de estado ou atividades, interromper execuções e adicionar ou excluir novas tags para todos os recursos que foram marcados como `environment/production`.

Para autorização baseada em tags, os recursos de execução da máquina de estado, conforme mostrado no exemplo a seguir, herdam as tags associadas a uma máquina de estado.

```
arn:partition:states:region:account-id:execution:<StateMachineName>:<ExecutionId>
```

Quando você chama [DescribeExecution](https://docs.aws.amazon.com/step-functions/latest/apireference/API_DescribeExecution.html)ou outra APIs na qual você especifica o ARN do recurso de execução, o Step Functions usa tags associadas à máquina de estado para aceitar ou negar a solicitação enquanto executa a autorização baseada em tags. Isso ajuda você a permitir ou negar acesso às execuções no nível da máquina de estado.

Para obter mais informações sobre a marcação, consulte o seguinte:
+ [Marcar máquinas de estado e atividades no Step Functions](sfn-best-practices.md#concepts-tagging)
+ [Controlar o acesso com tags do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_iam-tags.html)

# Solucionar problemas de identidade e de acesso no Step Functions
<a name="security_iam_troubleshoot"></a>

Use as seguintes informações para ajudar a diagnosticar e corrigir problemas comuns que podem ser encontrados ao trabalhar com o Step Functions e o IAM.

**Topics**
+ [Não tenho autorização para executar uma ação no Step Functions](#security_iam_troubleshoot-no-permissions)
+ [Não estou autorizado a realizar iam: PassRole](#security_iam_troubleshoot-passrole)
+ [Quero permitir que pessoas fora da minha acessem meus Conta da AWS recursos do Step Functions](#security_iam_troubleshoot-cross-account-access)

## Não tenho autorização para executar uma ação no Step Functions
<a name="security_iam_troubleshoot-no-permissions"></a>

Se você receber uma mensagem de erro informando que não tem autorização para executar uma ação, suas políticas deverão ser atualizadas para permitir que você realize a ação.

O erro do exemplo a seguir ocorre quando o usuário `mateojackson` tenta usar o console para visualizar detalhes sobre um recurso do `my-example-widget` fictício, mas não tem as permissões fictícias do `states:GetWidget`.

```
User: arn:aws:iam::123456789012:user/mateojackson is not authorized to perform: states:GetWidget on resource: my-example-widget
```

Nesse caso, a política de Mateo deve ser atualizada para permitir que ele tenha acesso ao recurso `my-example-widget` usando a ação `states:GetWidget`.

Se precisar de ajuda, entre em contato com seu AWS administrador. Seu administrador é a pessoa que forneceu suas credenciais de login.

## Não estou autorizado a realizar iam: PassRole
<a name="security_iam_troubleshoot-passrole"></a>

Se você receber uma mensagem de erro informando que não tem autorização para executar a ação `iam:PassRole`, as suas políticas deverão ser atualizadas para permitir a passagem de um perfil para o Step Functions.

Alguns Serviços da AWS permitem que você passe uma função existente para esse serviço em vez de criar uma nova função de serviço ou uma função vinculada ao serviço. Para fazer isso, é preciso ter permissões para passar o perfil para o serviço.

O exemplo de erro a seguir ocorre quando um usuário do IAM chamado `marymajor` tenta usar o console para executar uma ação no Step Functions. No entanto, a ação exige que o serviço tenha permissões concedidas por um perfil de serviço. Mary não tem permissões para passar o perfil para o serviço.

```
User: arn:aws:iam::123456789012:user/marymajor is not authorized to perform: iam:PassRole
```

Nesse caso, as políticas de Mary devem ser atualizadas para permitir que ela realize a ação `iam:PassRole`.

Se precisar de ajuda, entre em contato com seu AWS administrador. Seu administrador é a pessoa que forneceu suas credenciais de login.

## Quero permitir que pessoas fora da minha acessem meus Conta da AWS recursos do Step Functions
<a name="security_iam_troubleshoot-cross-account-access"></a>

É possível criar um perfil que os usuários de outras contas ou pessoas fora da organização podem usar para acessar seus recursos. É possível especificar quem é confiável para assumir o perfil. Para serviços que oferecem suporte a políticas baseadas em recursos ou listas de controle de acesso (ACLs), você pode usar essas políticas para conceder às pessoas acesso aos seus recursos.

Para saber mais, consulte:
+ Para saber se o Step Functions é compatível com esses recursos, consulte [Como AWS Step Functions funciona com o IAM](security_iam_service-with-iam.md).
+ Para saber como fornecer acesso aos seus recursos em todos os Contas da AWS que você possui, consulte Como [fornecer acesso a um usuário do IAM em outro Conta da AWS que você possui](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_aws-accounts.html) no *Guia do usuário do IAM*.
+ Para saber como fornecer acesso aos seus recursos a terceiros Contas da AWS, consulte Como [fornecer acesso Contas da AWS a terceiros](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_third-party.html) no *Guia do usuário do IAM*.
+ Para saber como conceder acesso por meio da federação de identidades, consulte [Conceder acesso a usuários autenticados externamente (federação de identidades)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_federated-users.html) no *Guia do usuário do IAM*.
+ Para conhecer a diferença entre perfis e políticas baseadas em recurso para acesso entre contas, consulte [Acesso a recursos entre contas no IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-cross-account-resource-access.html) no *Guia do usuário do IAM*.