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 per la consegna dei dati
Utilizza questo argomento per conoscere le autorizzazioni IAM necessarie per creare e gestire le risorse di distribuzione in Amazon Kinesis Data Streams, nonché il ruolo di esecuzione del servizio che la distribuzione dei dati assume per consegnare i dati alla destinazione.
Autorizzazioni per la gestione del ciclo di vita
Per creare, aggiornare, eliminare, descrivere ed elencare le risorse di consegna, il principale IAM chiamante deve disporre delle seguenti autorizzazioni.
| Azione | Risorsa | Description |
|---|---|---|
kinesis:CreateChannel |
ARN in streaming () arn:aws:kinesis: |
Crea una distribuzione su un flusso Kinesis Data Streams. |
kinesis:AssociateStreamsWithChannel |
ARN in streaming () arn:aws:kinesis: |
Associa uno stream a una consegna. Questa è un'azione virtuale che deve essere concessa al principale chiamante per creare una consegna che legga dal flusso specificato. È autorizzato in aggiunta a. kinesis:CreateChannel |
kinesis:UpdateChannel |
ARN del canale () arn:aws:kinesis: |
Aggiorna una configurazione di consegna esistente. |
kinesis:DeleteChannel |
Canale ARN | Eliminare una consegna esistente. |
kinesis:DescribeChannel |
Canale ARN | Recupera i dettagli di una consegna. |
kinesis:ListChannels |
Livello di account () arn:aws:kinesis: |
Elenca tutte le consegne nell'account. |
Ruolo di esecuzione del servizio
La consegna dei dati presuppone un ruolo di esecuzione del servizio IAM per consegnare i dati alla destinazione. È necessario creare questo ruolo e allegare sia una politica di fiducia che una politica di autorizzazione.
Policy di attendibilità
La policy di fiducia consente al servizio Kinesis Data Streams di assumere il ruolo. Includi i tasti relativi alle condizioni per evitare il confuso problema del vice.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "kinesis.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "<account-id>" }, "ArnLike": { "aws:SourceArn": "arn:aws:kinesis:<region>:<account-id>:channel/*" } } } ] }
Politica di autorizzazione per lo streaming di tabelle su Apache Iceberg
Quando si esegue la distribuzione a tabelle di streaming su Apache Iceberg, il ruolo di esecuzione del servizio richiede le seguenti autorizzazioni:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "S3TablesAccess", "Effect": "Allow", "Action": [ "s3tables:GetTable", "s3tables:GetTableBucket", "s3tables:GetTableMetadataLocation", "s3tables:UpdateTableMetadataLocation", "s3tables:CreateTable", "s3tables:CreateNamespace", "s3tables:PutTableData", "s3tables:GetTableData", "s3tables:TagResource", "s3tables:PutTableRecordExpirationConfiguration", "s3tables:PutTableEncryption" ], "Resource": [ "arn:aws:s3tables:<region>:<account-id>:bucket/<table-bucket-name>", "arn:aws:s3tables:<region>:<account-id>:bucket/<table-bucket-name>/table/*" ] }, { "Sid": "AllowCreateTableWithTag", "Effect": "Allow", "Action": "s3tables:CreateTable", "Resource": [ "arn:aws:s3tables:<region>:<account-id>:bucket/<table-bucket-name>/table/*", "arn:aws:s3tables:<region>:<account-id>:bucket/<table-bucket-name>" ], "Condition": { "StringEquals": { "aws:RequestTag/TableName": "<table-name>" } } }, { "Sid": "AllowPutTableDataWithTag", "Effect": "Allow", "Action": "s3tables:PutTableData", "Resource": "arn:aws:s3tables:<region>:<account-id>:bucket/<table-bucket-name>/table/*", "Condition": { "StringEquals": { "aws:ResourceTag/TableName": "<table-name>" } } }, { "Sid": "DLQBucketAccess", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:ListBucket", "s3:ListBucketMultipartUploads" ], "Resource": [ "arn:aws:s3:::<dlq-bucket-name>", "arn:aws:s3:::<dlq-bucket-name>/*" ], "Condition": { "StringEquals": { "aws:ResourceAccount": "<dlq-account-id>" } } }, { "Sid": "GlueSchemaRegistryAccess", "Effect": "Allow", "Action": [ "glue:GetSchemaVersion" ], "Resource": [ "arn:aws:glue:<region>:<account-id>:registry/<registry-name>", "arn:aws:glue:<region>:<account-id>:schema/<registry-name>/<schema-name>" ] }, { "Sid": "KMSForCreateTimeValidation", "Effect": "Allow", "Action": ["kms:Decrypt", "kms:GenerateDataKey"], "Resource": ["arn:aws:kms:<region>:<account-id>:key/<key-id>"], "Condition": { "StringEqualsIfExists": { "kms:ViaService": "kinesis.<region>.amazonaws.com" } } }, { "Sid": "KMSForS3TablesEncryption", "Effect": "Allow", "Action": ["kms:Decrypt", "kms:GenerateDataKey"], "Resource": ["arn:aws:kms:<region>:<account-id>:key/<key-id>"], "Condition": { "StringEquals": { "kms:ViaService": "s3.<region>.amazonaws.com" }, "StringLike": { "kms:EncryptionContext:aws:s3:arn": [ "arn:aws:s3tables:<region>:<account-id>:bucket/<table-bucket-name>/*", "arn:aws:s3:::<dlq-bucket-name>/*" ] } } }, { "Sid": "KMSForCreateTable", "Effect": "Allow", "Action": ["kms:DescribeKey"], "Resource": ["arn:aws:kms:<region>:<account-id>:key/<key-id>"], "Condition": { "StringEquals": { "kms:ViaService": "s3tables.<region>.amazonaws.com" } } }, { "Sid": "KMSForDecryptSourceStreamRecords", "Effect": "Allow", "Action": "kms:Decrypt", "Resource": ["arn:aws:kms:<region>:<account-id>:key/<stream-key-id>"], "Condition": { "StringEqualsIfExists": { "kms:ViaService": "kinesis.<region>.amazonaws.com" }, "StringEquals": { "kms:EncryptionContext:aws:kinesis:arn": "arn:aws:kinesis:<region>:<account-id>:stream/<stream-name>" } } } ] }
-
s3tables:PutTableEncryptionè richiesto solo quando si crittografa la tabella di destinazione con una chiave gestita dal cliente. AWS KMS Senza di essa,CreateTableriesce, ma la crittografia della tabella fallisce e la tabella non viene mai creata. -
s3tables:TagResourceè obbligatorio perché il servizio contrassegna le tabelle che crea. -
Le
AllowPutTableDataWithTagistruzioniAllowCreateTableWithTagand sono facoltative. Includili solo se desideri il controllo degli accessi basato su tag anziché l'ambito esclusivamente in base all'ARN della tabella. Limitanos3tables:CreateTablee limitanos3tables:PutTableDatale risorse che contengono un tag corrispondente.TableNameOmettili se esegui l'analisi in base all'ARN. -
glue:GetSchemaVersionÈ richiesto solo per il Glue Schema Registry. È richiesto sia per i formati di input che per quelliGSR_JSONdi input.JSON -
L'
KMSForCreateTimeValidationinformativa consente ad Amazon Kinesis Data Streams di AWS KMS convalidare la chiave al momento della creazione della distribuzione. È richiesta solo quando la tabella di destinazione o il flusso di origine utilizza una chiave gestita dal cliente. AWS KMS -
L'
KMSForS3TablesEncryptionistruzione garantisce le AWS KMS operazioni utilizzate per crittografare i dati della tabella forniti a riposo. È necessario solo quando il table bucket utilizza una chiave gestita dal cliente. -
L'
KMSForCreateTableistruzione consente ad Amazon Kinesis Data Streams di leggere la configurazione chiave quando crea la tabella di destinazione. È richiesta solo quando il table bucket utilizza una chiave gestita dal cliente. -
L'
KMSForDecryptSourceStreamRecordsistruzione consente al ruolo di decrittografare i record letti dal flusso di origine. È necessario solo quando il flusso Kinesis Data Streams è crittografato con una chiave gestita dal cliente.
Politica di autorizzazione per i bucket Amazon S3 per uso generico
Per la distribuzione a bucket Amazon S3 generici, il ruolo di esecuzione del servizio richiede le seguenti autorizzazioni:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "DeliveryBucketList", "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:ListBucketMultipartUploads" ], "Resource": [ "arn:aws:s3:::<delivery-bucket-name>", "arn:aws:s3:::<delivery-bucket-name>/*" ] }, { "Sid": "DeliveryBucketWrite", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:CreateMultipartUpload", "s3:UploadPart", "s3:CompleteMultipartUpload", "s3:ListMultipartUploads", "s3:ListMultipartUploadParts" ], "Resource": [ "arn:aws:s3:::<delivery-bucket-name>/*" ] }, { "Sid": "DLQBucketAccess", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:ListBucket", "s3:ListBucketMultipartUploads" ], "Resource": [ "arn:aws:s3:::<dlq-bucket-name>", "arn:aws:s3:::<dlq-bucket-name>/*" ], "Condition": { "StringEquals": { "aws:ResourceAccount": "<dlq-account-id>" } } }, { "Sid": "KMSForCreateTimeValidation", "Effect": "Allow", "Action": ["kms:Decrypt", "kms:GenerateDataKey"], "Resource": ["arn:aws:kms:<region>:<account-id>:key/<key-id>"], "Condition": { "StringEqualsIfExists": { "kms:ViaService": "kinesis.<region>.amazonaws.com" } } }, { "Sid": "KMSForS3BucketEncryption", "Effect": "Allow", "Action": ["kms:Decrypt", "kms:GenerateDataKey"], "Resource": ["arn:aws:kms:<region>:<account-id>:key/<key-id>"], "Condition": { "StringEquals": { "kms:ViaService": "s3.<region>.amazonaws.com" }, "StringLike": { "kms:EncryptionContext:aws:s3:arn": [ "arn:aws:s3:::<delivery-bucket-name>/*", "arn:aws:s3:::<dlq-bucket-name>/*" ] } } }, { "Sid": "KMSForDecryptSourceStreamRecords", "Effect": "Allow", "Action": "kms:Decrypt", "Resource": ["arn:aws:kms:<region>:<account-id>:key/<stream-key-id>"], "Condition": { "StringEqualsIfExists": { "kms:ViaService": "kinesis.<region>.amazonaws.com" }, "StringEquals": { "kms:EncryptionContext:aws:kinesis:arn": "arn:aws:kinesis:<region>:<account-id>:stream/<stream-name>" } } } ] }
-
L'
KMSForCreateTimeValidationinformativa consente ad Amazon Kinesis Data Streams di AWS KMS convalidare la chiave al momento della creazione della distribuzione. È necessaria solo quando il bucket di destinazione o il flusso di origine utilizza una chiave gestita dal cliente. AWS KMS -
La
KMSForS3BucketEncryptiondichiarazione garantisce le AWS KMS operazioni utilizzate da Amazon S3 per crittografare gli oggetti distribuiti a riposo. È richiesta solo quando il bucket di destinazione o il bucket di coda con lettere non scritte vengono utilizzati con una chiave gestita dal cliente. SSE-KMS Ikms:EncryptionContext:aws:s3:arnvalori mostrati utilizzano l'oggetto ARN, che si applica quando le chiavi S3 Bucket sono disabilitate. Se abiliti S3 Bucket Keys nel bucket di destinazione o nel bucket di coda di lettere morte, Amazon S3 utilizza l'ARN del bucket come contesto di crittografia anziché l'ARN dell'oggetto, quindi devi modificare il valore corrispondente in quel bucket ARN (ad esempio o).arn:aws:s3:::delivery-bucket-namearn:aws:s3:::Per ulteriori informazioni, consulta Configurazione di una chiave S3 Bucket nella Amazon S3 User Guide.dlq-bucket-name -
L'
KMSForDecryptSourceStreamRecordsistruzione consente al ruolo di decrittografare i record letti dal flusso di origine. È necessario solo quando il flusso Kinesis Data Streams è crittografato con una chiave gestita dal cliente.
Importante
Se limiti la s3:PutObject risorsa a un prefisso specifico (ad esempio,arn:aws:s3:::my-bucket/data*), le chiavi oggetto generate dal modello della chiave di output devono iniziare con lo stesso prefisso. Una mancata corrispondenza tra il prefisso della risorsa IAM e il modello della chiave di output comporta errori di accesso negato e la mancata consegna di dati.
Ad esempio, se la policy prevede l'attivazionearn:aws:s3:::my-bucket/data*, s3:PutObject il modello della chiave di output deve iniziare condata/, ad esempio. data/!{yyyy}/!{MM}/!{dd}/!{HH}/ Per evitare ciò, assegnate la risorsa all'intero bucket (arn:aws:s3:::my-bucket/*) o assicuratevi che i prefissi corrispondano esattamente.
Autorizzazioni opzionali per i log CloudWatch
Se abiliti CloudWatch i log per la consegna, aggiungi le seguenti autorizzazioni al ruolo di esecuzione del servizio:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "CloudWatchLogsAccess", "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": "arn:aws:logs:<region>:<account-id>:log-group:<log-group-name>:*" } ] }