View a markdown version of this page

Autorizzazioni IAM richieste per le applicazioni consumer KCL - Flusso di dati Amazon Kinesis

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Autorizzazioni IAM richieste per le applicazioni consumer KCL

Devi aggiungere le seguenti autorizzazioni al ruolo o all'utente IAM associato alla tua applicazione consumer KCL.

Le migliori pratiche di sicurezza per AWS imporre l'uso di autorizzazioni granulari per controllare l'accesso a diverse risorse. AWS Identity and Access Management (IAM) consente di gestire gli utenti e le autorizzazioni degli utenti in. AWS Una policy IAM elenca in modo esplicito le operazioni consentite e le risorse per le quali sono applicabili le operazioni.

La tabella seguente mostra le autorizzazioni IAM minime generalmente richieste per le applicazioni consumer KCL:

Autorizzazioni IAM minime per le applicazioni consumer KCL
Servizio Azioni Risorse (ARN) Scopo
Flusso di dati Amazon Kinesis

DescribeStream

DescribeStreamSummary

RegisterStreamConsumer

Flusso di dati Kinesis da cui l'applicazione KCL elaborerà i dati.

arn:aws:kinesis:region:account:stream/StreamName

Prima di leggere i record, il consumer verifica se il flusso di dati esiste, è attivo e contiene il flusso di dati.

Registra i consumatori su uno shard.

Flusso di dati Amazon Kinesis

GetRecords

GetShardIterator

ListShards

Flusso di dati Kinesis da cui l'applicazione KCL elaborerà i dati.

arn:aws:kinesis:region:account:stream/StreamName

Legge record da uno shard.

Flusso di dati Amazon Kinesis

SubscribeToShard

DescribeStreamConsumer

Flusso di dati Kinesis da cui l'applicazione KCL elaborerà i dati. Aggiungi questa azione solo se utilizzi utenti Enhanced Fan-Out (EFO).

arn:aws:kinesis:region:account:stream/StreamName/consumer/*

Si abbona a uno shard per consumatori Enhanced Fan-out (EFO).

Amazon DynamoDB

CreateTable

DescribeTable

UpdateTable

Scan

GetItem

PutItem

UpdateItem

DeleteItem

Tabella di leasing (tabella dei metadati) in DynamoDB creata da KCL.

arn:aws:dynamodb:region:account:table/KCLApplicationName

Queste azioni sono necessarie per consentire a KCL di gestire la tabella di lease creata in DynamoDB.

Amazon DynamoDB

CreateTable

DescribeTable

Scan

GetItem

PutItem

UpdateItem

DeleteItem

DeleteTable

Metriche dei lavoratori e tabella dello stato del coordinatore (tabelle di metadati in DynamoDB) creata da KCL.

arn:aws:dynamodb:region:account:table/KCLApplicationName-WorkerMetricStats

arn:aws:dynamodb:region:account:table/KCLApplicationName-CoordinatorState

Queste azioni sono necessarie per consentire a KCL di gestire le metriche dei lavoratori e le tabelle dei metadati dello stato del coordinatore in DynamoDB.

Amazon DynamoDB

Query

Indice secondario globale nella tabella dei contratti di locazione.

arn:aws:dynamodb:region:account:table/KCLApplicationName/index/*

Questa azione è necessaria affinché KCL legga l'indice secondario globale della tabella di lease creata in DynamoDB.

Amazon CloudWatch

PutMetricData

*

Carica metriche utili per monitorare l'applicazione. CloudWatch L'asterisco (*) viene utilizzato perché non esiste una risorsa specifica in CloudWatch cui viene richiamata l'azione. PutMetricData

Nota

Sostituisci «region», «account»StreamName, "» e "KCLApplicationName" negli ARN rispettivamente con il tuo Account AWS numero Regione AWS, il nome del flusso di dati Kinesis e il nome dell'applicazione KCL. KCL 3.x crea altre due tabelle di metadati in DynamoDB. Per informazioni dettagliate sulle tabelle di metadati DynamoDB create da KCL, vedere. Tabelle di metadati DynamoDB e bilanciamento del carico in KCL Se utilizzi configurazioni per personalizzare i nomi delle tabelle di metadati create da KCL, usa i nomi di tabella specificati anziché il nome dell'applicazione KCL.

Nota

L'DeleteTableautorizzazione per le metriche dei lavoratori e le tabelle degli stati dei coordinatori è richiesta solo se si utilizza il formato a tabella singola. Al termine della migrazione, è necessario eliminare manualmente le vecchie tabelle. L'DeleteTableautorizzazione consente di eseguire questa pulizia. Per ulteriori informazioni, consulta Formato a tabella singola per KCL.

Di seguito è riportato un esempio di documento politico per un'applicazione consumer KCL.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kinesis:DescribeStream", "kinesis:DescribeStreamSummary", "kinesis:RegisterStreamConsumer", "kinesis:GetRecords", "kinesis:GetShardIterator", "kinesis:ListShards" ], "Resource": "arn:aws:kinesis:us-east-1:123456789012:stream/STREAM_NAME" }, { "Effect": "Allow", "Action": [ "kinesis:SubscribeToShard", "kinesis:DescribeStreamConsumer" ], "Resource": "arn:aws:kinesis:us-east-1:123456789012:stream/STREAM_NAME/consumer/*" }, { "Effect": "Allow", "Action": [ "dynamodb:CreateTable", "dynamodb:DescribeTable", "dynamodb:UpdateTable", "dynamodb:GetItem", "dynamodb:UpdateItem", "dynamodb:PutItem", "dynamodb:DeleteItem", "dynamodb:Scan" ], "Resource": [ "arn:aws:dynamodb:us-east-1:123456789012:table/KCL_APPLICATION_NAME" ] }, { "Effect": "Allow", "Action": [ "dynamodb:CreateTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:UpdateItem", "dynamodb:PutItem", "dynamodb:DeleteItem", "dynamodb:Scan" ], "Resource": [ "arn:aws:dynamodb:us-east-1:123456789012:table/KCL_APPLICATION_NAME-WorkerMetricStats", "arn:aws:dynamodb:us-east-1:123456789012:table/KCL_APPLICATION_NAME-CoordinatorState" ] }, { "Effect": "Allow", "Action": [ "dynamodb:Query" ], "Resource": [ "arn:aws:dynamodb:us-east-1:123456789012:table/KCL_APPLICATION_NAME/index/*" ] }, { "Effect": "Allow", "Action": [ "cloudwatch:PutMetricData" ], "Resource": "*" } ] }

Prima di utilizzare questa politica di esempio, controlla i seguenti elementi:

  • Sostituisci REGION con il tuo Regione AWS (ad esempio, us-east-1).

  • Sostituisci ACCOUNT_ID con il tuo ID. Account AWS

  • Sostituisci STREAM_NAME con il nome del tuo flusso di dati Kinesis.

  • Sostituisci CONSUMER_NAME con il nome del tuo consumatore, in genere il nome dell'applicazione quando usi KCL.

  • Sostituisci KCL_APPLICATION_NAME con il nome della tua applicazione KCL.