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 dettare l'uso di autorizzazioni granulari per controllare l'accesso a diverse risorse. AWS Identity and Access Management (IAM) consente di gestire utenti e autorizzazioni utente 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 un frammento.

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. Aggiungete questa azione solo se utilizzate consumatori Enhanced Fan-Out (EFO).

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

Si iscrive a uno shard per consumatori con tecnologia 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 affinché KCL gestisca la tabella di leasing creata in DynamoDB.

Amazon DynamoDB

CreateTable

DescribeTable

Scan

GetItem

PutItem

UpdateItem

DeleteItem

ConditionCheckItem

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 affinché KCL gestisca le metriche dei lavoratori e le tabelle dei metadati sullo stato dei coordinatori in DynamoDB. La CoordinatorState tabella richiede l'ConditionCheckItemazione per supportare le scritture condizionali utilizzate durante la migrazione di una singola tabella.

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 leasing 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 dettagli sulle tabelle di metadati DynamoDB create da KCL, consulta. Tabelle di metadati DynamoDB e bilanciamento del carico in KCL Se usi le configurazioni per personalizzare i nomi delle tabelle di metadati create da KCL, usa i nomi delle tabelle specificati invece del nome dell'applicazione KCL.

Nota

Una volta completata la migrazione a una tabella singola in KCL 3.5, le metriche dei lavoratori precedenti e le tabelle di stato dei coordinatori devono essere eliminate manualmente.

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.