

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

# Criar um usuário e uma política do IAM
<a name="tutorial-stock-data-kplkcl2-iam"></a>

Práticas recomendadas de segurança para AWS ditar o uso de permissões refinadas para controlar o acesso a diferentes recursos. AWS Identity and Access Management (IAM) permite gerenciar usuários e permissões de usuários no AWS. Uma [Política do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/PoliciesOverview.html) lista explicitamente as ações permitidas e os recursos aos quais as ações são aplicáveis.

Veja a seguir as permissões mínimas normalmente necessárias para produtores e consumidores do Kinesis Data Streams.


**Produtor**  

| Ações | Recurso | Finalidade | 
| --- | --- | --- | 
| DescribeStream, DescribeStreamSummary, DescribeStreamConsumer | Fluxo de dados do Kinesis | Antes de tentar ler registros, o consumidor verifica se o fluxo de dados existe, se está ativo e se os fragmentos estão contidos no fluxo de dados. | 
| SubscribeToShard, RegisterStreamConsumer | Fluxo de dados do Kinesis | Assina e registra os consumidores em um fragmento. | 
| PutRecord, PutRecords | Fluxo de dados do Kinesis | Grava registros no Kinesis Data Streams. | 


**Consumidor**  

| **Ações** | **Recurso** | **Finalidade** | 
| --- | --- | --- | 
| DescribeStream | Fluxo de dados do Kinesis | Antes de tentar ler registros, o consumidor verifica se o fluxo de dados existe, se está ativo e se os fragmentos estão contidos no fluxo de dados. | 
| GetRecords, GetShardIterator  | Fluxo de dados do Kinesis | Lê registros de um fragmento. | 
| CreateTable, DescribeTable, GetItem, PutItem, Scan, UpdateItem | Tabela do Amazon DynamoDB | Se for desenvolvido usando a Kinesis Client Library (KCL) versão 1.x ou 2.x, o consumidor precisará de permissões para uma tabela do DynamoDB a fim de monitorar o estado de processamento da aplicação. | 
| DeleteItem | Tabela do Amazon DynamoDB | Para quando o consumidor realiza split/merge operações nos fragmentos do Kinesis Data Streams. | 
| PutMetricData |  CloudWatch Registro da Amazon | O KCL também carrega métricas para CloudWatch, que são úteis para monitorar o aplicativo. | 

Neste tutorial, será criada uma única política do IAM que concede todas as permissões acima. Na produção, talvez convenha criar duas políticas, uma para produtores e outra para consumidores.

**Para criar uma política do IAM**

1. Localize o nome do recurso da Amazon (ARN) para o novo fluxo de dados criado na etapa anterior. Esse ARN pdoe ser encontrado listado como **ARN do fluxo** na parte superior da guia **Detalhes**. O formato do ARN é o seguinte:

   ```
   arn:aws:kinesis:region:account:stream/name
   ```  
*region*  
O código AWS da região; por exemplo,`us-west-2`. Para obter mais informações, consulte [Conceitos de região e zona de disponibilidade](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html#concepts-regions-availability-zones).  
*account*  
O ID da AWS conta, conforme mostrado nas [Configurações da conta](https://console.aws.amazon.com/billing/home?#/account).  
*name*  
O nome do fluxo de dados criado na etapa anterior, que é `StockTradeStream`.

1. Determine o ARN da tabela do DynamoDB a ser usada pelo consumidor (e a ser criado pela primeira instância de consumidor). Ele deve estar no seguinte formato:

   ```
   arn:aws:dynamodb:region:account:table/name
   ```

   A região e o ID da conta são idênticos aos valores do ARN do fluxo de dados sendo usado neste tutorial, mas o *nome* é o nome da tabela do DynamoDB criada e usada pela aplicação de consumo. A KCL usa o nome do aplicativo como nome da tabela. Nesta etapa, use `StockTradesProcessor` como o nome da tabela do DynamoDB, pois esse é o nome da aplicação usada nas etapas posteriores do tutorial.

1. No console do IAM, em **Políticas** ([https://console.aws.amazon.com/iam/home \$1policies](https://console.aws.amazon.com/iam/home#policies)), escolha **Create policy**. Se este for o primeiro contato com políticas do IAM, escolha **Conceitos básicos** e **Criar política**.

1. Escolha **Selecionar** ao lado de **Gerador de políticas**.

1. Escolha o **Amazon Kinesis** como serviço. AWS 

1. Selecione `DescribeStream`, `GetShardIterator`, `GetRecords`, `PutRecord`e `PutRecords` como ações permitidas.

1. Insira o ARN do fluxo de dados sendo usado neste tutorial.

1. Use **Adicionar instrução** para cada um dos seguintes:    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/streams/latest/dev/tutorial-stock-data-kplkcl2-iam.html)

   O asterisco (`*`) é usado quando não é necessário especificar um ARN. Nesse caso, é porque não há nenhum recurso específico CloudWatch no qual a `PutMetricData` ação seja invocada.

1. Escolha **Próxima etapa**.

1. Altere **Nome da política** para `StockTradeStreamPolicy`, revise o código e selecione **Criar política**.

O documento de política resultante deve ser semelhante a:

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "Stmt123",
            "Effect": "Allow",
            "Action": [
                "kinesis:DescribeStream",
                "kinesis:PutRecord",
                "kinesis:PutRecords",
                "kinesis:GetShardIterator",
                "kinesis:GetRecords",
                "kinesis:ListShards",
                "kinesis:DescribeStreamSummary",
                "kinesis:RegisterStreamConsumer"
            ],
            "Resource": [
                "arn:aws:kinesis:us-west-2:111122223333:stream/StockTradeStream"
            ]
        },
        {
            "Sid": "Stmt234",
            "Effect": "Allow",
            "Action": [
                "kinesis:SubscribeToShard",
                "kinesis:DescribeStreamConsumer"
            ],
            "Resource": [
                "arn:aws:kinesis:us-west-2:111122223333:stream/StockTradeStream/*"
            ]
        },
        {
            "Sid": "Stmt456",
            "Effect": "Allow",
            "Action": [
                "dynamodb:*"
            ],
            "Resource": [
                "arn:aws:dynamodb:us-west-2:111122223333:table/StockTradesProcessor"
            ]
        },
        {
            "Sid": "Stmt789",
            "Effect": "Allow",
            "Action": [
                "cloudwatch:PutMetricData"
            ],
            "Resource": [
                "*"
            ]
        }
    ]
}
```

------

**Para criar um usuário do IAM**

1. Abra o console do IAM em [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Na página **Usuários**, selecione **Adicionar usuário**.

1. Em **Nome de usuário**, digite `StockTradeStreamUser`.

1. Em **Tipo de acesso**, selecione **Aceso programático** e, em seguida, selecione **Próximo: permissões**.

1. Escolha **Anexar políticas existentes diretamente**.

1. Pesquise por nome a política criada no procedimento anterior (`StockTradeStreamPolicy`). Selecione a caixa à esquerda do nome da política e selecione **Próximo: revisão**.

1. Revise os detalhes e o resumo e, em seguida, selecione **Criar usuário**.

1. Copie o **ID da chave de acesso** e salve-o de forma privada. Em **Chave de acesso secreta**, selecione **Mostrar** e salve a chave de forma privada também.

1. Cole as chaves de acesso e chaves secretas em um arquivo local em lugar seguro de acesso restrito. Para esse aplicativo, crie um arquivo denominado ` ~/.aws/credentials` (com permissões restritas). O arquivo deverá estar no seguinte formato:

   ```
   [default]
   aws_access_key_id=access key
   aws_secret_access_key=secret access key
   ```

**Para anexar uma política do IAM a um usuário**

1. No console do IAM, abra [Políticas](https://console.aws.amazon.com/iam/home?#policies) e selecione **Ações da política**. 

1. Selecione `StockTradeStreamPolicy` e **Anexar**.

1. Selecione `StockTradeStreamUser` e **Anexar política**.

## Próximas etapas
<a name="tutorial-stock-data-kplkcl2-iam-next"></a>

[Fazer download e criar o código](tutorial-stock-data-kplkcl2-download.md)