

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

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