View a markdown version of this page

CloudWatch pipeline, politiche e autorizzazioni IAM - Amazon CloudWatch

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

CloudWatch pipeline, politiche e autorizzazioni IAM

Questa sezione fornisce i requisiti IAM per CloudWatch le pipeline. Le autorizzazioni variano in base all'origine dei dati e al metodo di integrazione.

La tabella seguente ti aiuta a identificare quali sezioni IAM si applicano al tuo caso d'uso.

Caso d’uso Metodo di integrazione Tipo di origine nella configurazione della pipeline Le sezioni IAM di cui hai bisogno
Third-party integrazioni (API Pull) La pipeline estrae dall'API del fornitore utilizzando le credenziali archiviate microsoft_office365, okta_sso, palo_alto_ngfw e così via. Autorizzazioni per i chiamanti dell'API + Third-party fonti (API Pull) + Policy delle risorse
Third-party integrazioni (consegna S3) Il fornitore fornisce i file al tuo bucket S3 s3 Autorizzazioni per i chiamanti dell'API + Third-party fonti (consegna S3) + Policy delle risorse
Dati personalizzati da S3 Le tue applicazioni scrivono su S3, la pipeline legge dal bucket s3 Autorizzazioni per i chiamanti dell'API + Dati personalizzati da S3 + Policy delle risorse
Dati personalizzati dai log CloudWatch Le tue applicazioni accedono a un gruppo di CloudWatch log Logs cloudwatch_logs Autorizzazioni per i chiamanti dell'API + Dati personalizzati dai log CloudWatch
Log di AWS servizio venduti AWS i servizi forniscono i log ai CloudWatch log (VPC Flow Logs, Route 53) cloudwatch_logs Autorizzazioni per i chiamanti dell'API + Venduto AWS registri di servizio
CloudWatch Metriche (OTel) AWS i servizi emettono metriche tramite OTLP cloudwatch_metrics Autorizzazioni delle regole di pipeline per le fonti Metrics CloudWatch
Nota

S3-based sources (s3) richiedono una politica delle risorse dopo la creazione della pipeline. CloudWatch I log source (cloudwatch_logs) non lo fanno.

Autorizzazioni per i chiamanti dell'API

Il principale IAM che chiama CreateTelemetryPipeline necessita dell'iam:PassRoleautorizzazione per tutti i ruoli a cui si fa riferimento nella configurazione della pipeline.

Esempio PassRole modello di policy
{ "Version": "2012-10-17", "Statement": [ { "Sid": "PassRoleForPipelineSource", "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::your-account-id:role/your-source-role", "Condition": { "StringEquals": { "iam:PassedToService": [ "service-principal" ], "iam:AssociatedResourceARN": [ "arn:aws:observabilityadmin:your-region:your-account-id:telemetry-pipeline/*" ] } } } ] }

Sostituiscilo service-principal con il valore della seguente tabella in base al tuo caso d'uso.

Caso d’uso Valore principale del servizio
Third-party (API Pull) telemetry-pipelines.observabilityadmin.amazonaws.com
Third-party (consegna S3) telemetry-pipelines.observabilityadmin.amazonaws.com
Dati personalizzati da S3 telemetry-pipelines.observabilityadmin.amazonaws.com
Dati personalizzati dai registri CloudWatch logs.amazonaws.com
Log di AWS servizio venduti logs.amazonaws.com
Nota

Il Condition blocco è consigliato ma facoltativo. Senza di esso, il ruolo può essere passato a qualsiasi servizio.

Autorizzazioni relative alle regole della pipeline (solo sorgenti di CloudWatch log)

Quando si utilizza cloudwatch_logs come fonte, il chiamante dell'API necessita anche delle autorizzazioni per le operazioni relative alle regole della pipeline. L'logs:PutPipelineRuleautorizzazione è richiesta per CreateTelemetryPipeline le operazioni. UpdateTelemetryPipeline L'logs:DeletePipelineRuleautorizzazione è richiesta per DeleteTelemetryPipeline le operazioni.

Esempio Politica IAM per le regole della pipeline CloudWatch Logs
{ "Version": "2012-10-17", "Statement": [ { "Sid": "PipelineRuleForCloudWatchLogs", "Effect": "Allow", "Action": [ "logs:PutPipelineRule", "logs:DeletePipelineRule" ], "Resource": "*" } ] }

Autorizzazioni delle regole di pipeline per le fonti Metrics CloudWatch

Quando si utilizza cloudwatch_metrics come fonte, sono necessarie le autorizzazioni per le operazioni con le regole della pipeline. Per creare o aggiornare una pipeline, concedi l'autorizzazione. cloudwatch:PutPipelineRule Per eliminare una pipeline, concedete l'cloudwatch:DeletePipelineRuleautorizzazione. Le pipeline di metriche non richiedono iam:PassRole né CloudWatch registrano le politiche relative alle risorse. È possibile limitare queste azioni alla dataset/default risorsa.

Esempio Politica IAM per le regole della pipeline di CloudWatch metriche
{ "Version": "2012-10-17", "Statement": [ { "Sid": "PipelineRuleForCloudWatchMetrics", "Effect": "Allow", "Action": [ "cloudwatch:PutPipelineRule", "cloudwatch:DeletePipelineRule" ], "Resource": "arn:aws:cloudwatch:your-region:your-account-id:dataset/default" } ] }

Riduzione dell'ambito con chiavi di condizione

Politiche relative ai ruoli di origine

Ogni pipeline richiede un ruolo IAM dedicato che il servizio assume per leggere i tuoi dati. Le sottosezioni seguenti forniscono le politiche complete (autorizzazione e fiducia) per ogni caso d'uso.

Third-party fonti (API Pull)

Questa sezione si applica a Microsoft Office 365, Microsoft Entra ID, Okta SSO, Palo Alto NGFW e alle integrazioni API di altri fornitori che memorizzano le credenziali in Secrets Manager. AWS

Policy di autorizzazione

La seguente policy consente al ruolo di recuperare le credenziali API archiviate.

Esempio Politica IAM per le fonti di Secrets Manager
{ "Version": "2012-10-17", "Statement": [ { "Sid": "secrets-manager-access", "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue" ], "Resource": "arn:aws:secretsmanager:your-region:your-account-id:secret:your-secret-name*" }, { "Sid": "kms-access", "Effect": "Allow", "Action": "kms:Decrypt", "Resource": "arn:aws:kms:your-region:your-account-id:key/your-key-id" } ] }
Nota

La kms:Decrypt dichiarazione è richiesta solo se il tuo segreto in Secrets Manager è crittografato con una chiave KMS gestita dal cliente.

Policy di trust

Esempio Politica di fiducia per le fonti API Pull
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "telemetry-pipelines.observabilityadmin.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

Configurazione IAM completa per le pipeline API Pull

L'esempio seguente mostra tutte le policy IAM necessarie per creare una pipeline API Pull end-to-end di terze parti.

Politica di identità del chiamante: allegata alla chiamata principale: CreateTelemetryPipeline

{ "Version": "2012-10-17", "Statement": [ { "Sid": "CreateApiPullPipeline", "Effect": "Allow", "Action": [ "observabilityadmin:CreateTelemetryPipeline", "iam:PassRole" ], "Resource": "*" } ] }

Politica di autorizzazione del ruolo di origine: da associare al ruolo assunto dalla pipeline:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "SecretsManagerAccess", "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue" ], "Resource": "arn:aws:secretsmanager:your-region:your-account-id:secret:your-secret-name*" } ] }

Politica di attendibilità del ruolo di origine:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "telemetry-pipelines.observabilityadmin.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
Nota

Dopo aver creato la pipeline, è inoltre necessario creare una politica delle risorse entro 5 minuti. Per informazioni, consulta Policy delle risorse.

Nota

Per l'uso in produzione, riduci l'ambito iam:PassRole utilizzando le chiavi di condizione mostrate inAutorizzazioni per i chiamanti dell'API. Se il tuo segreto utilizza una chiave KMS gestita dal cliente, aggiungila kms:Decrypt alla politica di autorizzazione del ruolo di origine.

Third-party fonti (consegna S3)

Questa sezione si applica a qualsiasi fornitore di terze parti che fornisce file di registro al bucket S3 (ad esempio, CrowdStrike Falcon, Wiz o Cisco Umbrella).

Policy di autorizzazione

La seguente policy consente al ruolo di leggere oggetti da S3 e utilizzare le notifiche SQS.

Esempio Politica IAM per i sorgenti S3
{ "Version": "2012-10-17", "Statement": [ { "Sid": "s3-access", "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": "arn:aws:s3:::your-bucket-name/*" }, { "Sid": "sqs-access", "Effect": "Allow", "Action": [ "sqs:ReceiveMessage", "sqs:DeleteMessage", "sqs:ChangeMessageVisibility" ], "Resource": "arn:aws:sqs:your-region:your-account-id:your-queue-name" }, { "Sid": "kms-access", "Effect": "Allow", "Action": "kms:Decrypt", "Resource": "arn:aws:kms:your-region:your-account-id:key/your-key-id" } ] }
Nota

L'kms:Decryptistruzione è richiesta solo se il bucket S3 o la coda SQS utilizza una chiave KMS gestita dal cliente per la crittografia.

Policy di trust

Esempio Politica di fiducia per le fonti di distribuzione S3
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "telemetry-pipelines.observabilityadmin.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

Configurazione IAM completa per le pipeline di distribuzione S3

L'esempio seguente mostra tutte le politiche IAM necessarie per creare una pipeline di distribuzione S3 end-to-end.

Politica di identità del chiamante: allegata alla chiamata principale: CreateTelemetryPipeline

{ "Version": "2012-10-17", "Statement": [ { "Sid": "CreateS3Pipeline", "Effect": "Allow", "Action": [ "observabilityadmin:CreateTelemetryPipeline", "iam:PassRole" ], "Resource": "*" } ] }

Politica di autorizzazione del ruolo di origine: da associare al ruolo assunto dalla pipeline:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "S3Access", "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": "arn:aws:s3:::your-bucket-name/*" }, { "Sid": "SqsAccess", "Effect": "Allow", "Action": [ "sqs:ReceiveMessage", "sqs:DeleteMessage", "sqs:ChangeMessageVisibility" ], "Resource": "arn:aws:sqs:your-region:your-account-id:your-queue-name" } ] }

Politica di attendibilità del ruolo di origine:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "telemetry-pipelines.observabilityadmin.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
Nota

Dopo aver creato la pipeline, è inoltre necessario creare una politica delle risorse entro 5 minuti. Per informazioni, consulta Policy delle risorse.

Nota

Per l'uso in produzione, riduci l'ambito iam:PassRole utilizzando le chiavi di condizione mostrate inAutorizzazioni per i chiamanti dell'API. Se il bucket S3 o la coda SQS utilizza una chiave KMS gestita dal cliente, aggiungila alla politica di autorizzazione del ruolo di origine. kms:Decrypt

Dati personalizzati da S3

Questa sezione si applica alle tue applicazioni o infrastrutture che scrivono file di registro in un bucket S3.

La configurazione IAM è identica a. Third-party fonti (consegna S3) Utilizza la stessa politica di autorizzazione e politica di fiducia. La pipeline legge i dati dal bucket tramite le notifiche degli eventi SQS indipendentemente da chi ha scritto i dati.

Dati personalizzati dai log CloudWatch

Questa sezione si applica alle tue applicazioni che effettuano l'accesso a un gruppo di CloudWatch log Logs (ad esempio, funzioni Lambda, contenitori ECS o applicazioni EC2 personalizzate).

Policy di autorizzazione

La seguente politica consente al ruolo di elaborare i log dai gruppi di log specificati.

Esempio Politica IAM per le fonti di CloudWatch log
{ "Version": "2012-10-17", "Statement": [ { "Sid": "logs-processing-access", "Effect": "Allow", "Action": [ "logs:processWithPipeline" ], "Resource": [ "arn:aws:logs:your-region:your-account-id:log-group:your-log-group-01", "arn:aws:logs:your-region:your-account-id:log-group:your-log-group-02" ] } ] }

È possibile limitare l'ambito di questa autorizzazione utilizzando le chiavi di logs:data_source_type condizione logs:data_source_name e per limitare le fonti della pipeline che possono richiamare le trasformazioni. Il logs:data_source_name valore corrisponde alla configurazione data_source_name della pipeline e logs:data_source_type corrisponde alla configurazione della data_source_type pipeline.

Esempio Politica di autorizzazione per le fonti CloudWatch Logs (descritta con chiavi di condizione)
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowProcessWithPipelineScopedDown", "Effect": "Allow", "Action": "logs:ProcessWithPipeline", "Resource": "arn:aws:logs:your-region:your-account-id:log-group:your-log-group-name", "Condition": { "StringEquals": { "aws:ResourceAccount": "your-account-id", "logs:data_source_name": "your-source-name", "logs:data_source_type": "your-source-type" } } } ] }
Nota

Il ruolo IAM per le fonti CloudWatch Logs richiede sia la politica di fiducia (logs.amazonaws.com.rproxy.goskope.comper consentire l'assunzione del ruolo) sia la politica di autorizzazione (per la concessionelogs:ProcessWithPipeline). Senza entrambe le politiche, le CloudWatch pipeline non possono trasformare gli eventi di log durante l'inserimento.

Policy di trust

Esempio Politica di fiducia per le fonti di log CloudWatch
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "logs.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
Nota

Non è necessaria alcuna politica in materia di risorse per le pipeline di origine di CloudWatch Logs.

Configurazione IAM completa per le pipeline CloudWatch Logs

L'esempio seguente mostra tutte le policy IAM necessarie per creare una pipeline CloudWatch Logs end-to-end.

Politica di identità del chiamante: allegata alla chiamata principale: CreateTelemetryPipeline

{ "Version": "2012-10-17", "Statement": [ { "Sid": "CreateLogsPipeline", "Effect": "Allow", "Action": [ "observabilityadmin:CreateTelemetryPipeline", "logs:PutPipelineRule", "logs:DeletePipelineRule", "iam:PassRole" ], "Resource": "*" } ] }

Politica di autorizzazione del ruolo di origine: da associare al ruolo assunto dalla pipeline:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "LogsProcessing", "Effect": "Allow", "Action": [ "logs:processWithPipeline" ], "Resource": [ "arn:aws:logs:your-region:your-account-id:log-group:your-log-group" ] } ] }

Politica di attendibilità del ruolo di origine:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "logs.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
Nota

Per l'uso in produzione, riduci l'ambito iam:PassRole utilizzando le chiavi di condizione mostrate inAutorizzazioni per i chiamanti dell'API.

Venduto AWS registri di servizio

Questa sezione si applica ai log AWS di servizio forniti a CloudWatch Logs, come VPC Flow Logs, Query Log di Route 53 e altri tipi di log AWS venduti.

La configurazione IAM è identica a. Dati personalizzati dai log CloudWatch Utilizza la stessa politica di autorizzazione (logs:processWithPipelinelimitata al gruppo di log) e la stessa politica di fiducia (logs.amazonaws.com).

Poiché utilizza il tipo di cloudwatch_logs origine, anche il chiamante necessita logs:PutPipelineRule di autorizzazioni. logs:DeletePipelineRule Per informazioni, consulta Autorizzazioni relative alle regole della pipeline (solo sorgenti di CloudWatch log).

Policy delle risorse

CloudWatch Le policy relative alle risorse di log sono obbligatorie per le S3-based fonti e Secrets Manager-based (integrazioni di terze parti). Le politiche relative alle risorse non sono richieste per le fonti CloudWatch Logs (dati personalizzati o log forniti).

Dopo la chiamataCreateTelemetryPipeline, riceverai un ARN della pipeline. È quindi necessario chiamare logs:PutResourcePolicy per consentire al responsabile del servizio CloudWatch pipelines di scrivere nel gruppo di log configurato.

Vincoli di tempo

Hai meno di 5 minuti dalla ricezione dell'ARN della pipeline per creare questa policy sulle risorse. Se la pipeline diventa attiva prima che la policy sia in vigore, i dati verranno eliminati.

Esempio log: richiesta PutResourcePolicy
{ "policyName": "resourceArn=arn:aws:logs:your-region:your-account-id:log-group:your-log-group-name:*", "policyDocument": { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "telemetry-pipelines.observabilityadmin.amazonaws.com" }, "Action": [ "logs:CreateLogStream", "logs:PutLogEvents" ], "Condition": { "StringEquals": { "aws:SourceArn": "arn:aws:observabilityadmin:your-region:your-account-id:telemetry-pipeline/your-pipeline-id" } } } ] } }

Gestione delle politiche relative alle risorse

Usa la AWS CLI per creare o aggiornare le politiche delle risorse di CloudWatch Logs per le CloudWatch pipeline.

Per verificare le politiche esistenti

aws logs describe-resource-policies \ --resource-arn arn:aws:logs:your-region:your-account-id:log-group:your-log-group-name:*

Per creare una nuova politica

aws logs put-resource-policy \ --region your-region \ --policy-name "resourceArn=arn:aws:logs:your-region:your-account-id:log-group:your-log-group-name:*" \ --policy-document file://policy.json

Per fondersi con una politica esistente

Se esiste già una policy sulle risorse, aggiungete la nuova istruzione all'Statementarray esistente nel documento della politica, quindi richiamate put-resource-policy nuovamente con il file unito.

  1. Recupera la policy esistente:

    aws logs describe-resource-policies \ --resource-arn arn:aws:logs:your-region:your-account-id:log-group:your-log-group-name:*
  2. Aggiungi la nuova dichiarazione all'Statementarray esistente:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "existing-service.amazonaws.com" }, "Action": [ "logs:SomeAction" ] }, { "Effect": "Allow", "Principal": { "Service": "telemetry-pipelines.observabilityadmin.amazonaws.com" }, "Action": [ "logs:CreateLogStream", "logs:PutLogEvents" ], "Condition": { "StringEquals": { "aws:SourceArn": "arn:aws:observabilityadmin:your-region:your-account-id:telemetry-pipeline/your-pipeline-id" } } } ] }
  3. Aggiorna la policy:

    aws logs put-resource-policy \ --region your-region \ --policy-name "resourceArn=arn:aws:logs:your-region:your-account-id:log-group:your-log-group-name:*" \ --policy-document file://existing-policy.json

Conferma che la policy è stata creata o aggiornata correttamente:

aws logs describe-resource-policies \ --resource-arn arn:aws:logs:your-region:your-account-id:log-group:your-log-group-name:*

Sostituire i seguenti segnaposto:

  • your-region— La tua AWS regione (ad esempio, us-east-1)

  • your-account-id— L'ID del tuo account a 12 cifre AWS

  • your-log-group-name— Il nome del tuo gruppo CloudWatch di log Logs

  • your-pipeline-id— L'ID della pipeline di telemetria (restituito da) CreateTelemetryPipeline

Chiavi relative alle condizioni della pipeline

CloudWatch pipelines supporta le chiavi di condizione IAM che consentono di limitare chi può creare pipeline in base al nome e al tipo di origine. Usa queste chiavi di condizione per applicare le politiche di governance in tutta l'organizzazione.

Chiavi di condizione disponibili
observabilityadmin:SourceName

Limita la creazione di pipeline a nomi di sorgente specifici. Si applica solo alle pipeline di log.

observabilityadmin:SourceType

Limita la creazione di pipeline a tipi di origine specifici.

Utilizza queste chiavi di condizione nelle politiche di identità per controllare quali pipeline può creare un principale.

observabilityadmin:SourceType

Limita la creazione di pipeline a tipi di origine specifici. I valori supportati includonocloudwatch_logs,s3, microsoft_office365okta_sso, e. palo_alto_ngfw

Esempio Limita la creazione di pipeline in base al tipo di origine
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowPipelineCreationForSpecificSourceType", "Effect": "Allow", "Action": "observabilityadmin:CreateTelemetryPipeline", "Resource": "*", "Condition": { "StringEquals": { "observabilityadmin:SourceType": "cloudwatch_logs" } } } ] }

Condizioni della politica di fiducia del ruolo di origine

Utilizza queste chiavi di condizione nella politica di fiducia del tuo ruolo di origine per limitare l'account che può assumere il ruolo. In questo modo si evitano attacchi confusi da vice, in cui il servizio potrebbe agire per conto di un altro account.

aws:SourceAccount

Limita l'assunzione del ruolo alle richieste provenienti da un account specifico. AWS

aws:SourceArn

Limita l'assunzione del ruolo alle richieste provenienti da un ARN di risorse specifico (ad esempio, un gruppo di log).

Esempio Politica di fiducia con SourceAccount condizione (fonti di log) CloudWatch
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "logs.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "your-account-id" }, "ArnLike": { "aws:SourceArn": "arn:aws:logs:your-region:your-account-id:log-group:*" } } } ] }

AI-assisted autorizzazioni di configurazione del processore

Per utilizzare la configurazione AI-assisted del processore nella console delle CloudWatch pipeline, il responsabile IAM deve disporre dell'logs:GeneratePipelineautorizzazione. Questa autorizzazione autorizza la generazione di configurazioni del processore a partire da descrizioni in linguaggio naturale.

Esempio Politica IAM per la configurazione del processore AI-assisted
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowGeneratePipeline", "Effect": "Allow", "Action": "logs:GeneratePipeline", "Resource": "*" } ] }