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 dettagliati per le CloudWatch pipeline, tra cui le autorizzazioni per i chiamanti API, le politiche specifiche dell'origine, le relazioni di fiducia e le politiche relative alle risorse.

Autorizzazioni per i chiamanti API

Qualsiasi ruolo specificato nella configurazione della pipeline che chiama l'CreateTelemetryPipelineAPI (come i ruoli di origine S3, i ruoli di accesso di Secrets Manager o i ruoli di origine CloudWatch Logs) deve disporre di autorizzazioni specifiche per passare i ruoli.

PassRole permissions

Richiesto per tutti i ruoli specificati nella configurazione della pipeline (ruoli di origine S3, ruoli di accesso Secrets Manager o ruoli di origine CloudWatch Logs).

Esempio Policy IAM per sorgenti S3
{ "Version": "2012-10-17", "Statement": [ { "Sid": "PassRoleForS3Source", "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::your-account-id:role/your-s3-source-role" } ] }
Esempio Politica IAM per i sorgenti di Secrets Manager
{ "Version": "2012-10-17", "Statement": [ { "Sid": "PassRoleForSecretsManagerSource", "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::your-account-id:role/your-secrets-manager-role" } ] }
Esempio Politica IAM per le CloudWatch fonti dei log
{ "Version": "2012-10-17", "Statement": [ { "Sid": "PassRoleForCloudWatchLogsSource", "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::your-account-id:role/your-cloudwatch-logs-role"" } ] }

Autorizzazioni per le regole della pipeline

Quando si utilizza cloudwatch_logs source for Create/Update operations (logs:PutPipelineRule) e Delete operations (logs:DeletePipelineRule), il ruolo deve disporre anche delle autorizzazioni per eseguire tali operazioni.

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

Riduzione dell'ambito con chiavi di condizione

Per definire la politica di autorizzazione alle pipeline di telemetria, puoi specificare le chiavi di condizione come mostrato negli esempi seguenti:

Esempio Policy IAM per sorgenti S3 (di base)
{ "Version": "2012-10-17", "Statement": [ { "Sid": "PassRoleForS3Source", "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::your-account-id:role/your-s3-source-role" } ] }
Esempio Policy IAM per le sorgenti S3 (definita con chiavi di condizione)
{ "Version": "2012-10-17", "Statement": [ { "Sid": "PassRoleForS3Source", "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::your-account-id:role/your-s3-source-role", "Condition": { "StringEquals": { "iam:PassedToService": [ "telemetry-pipelines.observabilityadmin.amazonaws.com" ], "iam:AssociatedResourceARN": [ "arn:aws:observabilityadmin:your-region:your-account-id:telemetry-pipeline/*" ] } } } ] }
Esempio Policy IAM per i sorgenti di Secrets Manager (base)
{ "Version": "2012-10-17", "Statement": [ { "Sid": "PassRoleForSecretsManagerSource", "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::your-account-id:role/your-secrets-manager-role" } ] }
Esempio Policy IAM per i sorgenti di Secrets Manager (definita con chiavi di condizione)
{ "Version": "2012-10-17", "Statement": [ { "Sid": "PassRoleForSecretsManagerSource", "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::your-account-id:role/your-secrets-manager-role", "Condition": { "StringEquals": { "iam:PassedToService": [ "telemetry-pipelines.observabilityadmin.amazonaws.com" ], "iam:AssociatedResourceARN": [ "arn:aws:observabilityadmin:your-region:your-account-id:telemetry-pipeline/*" ] } } } ] }
Esempio Politica IAM per le fonti CloudWatch di registro (delimitata dalle chiavi condizionali)
{ "Version": "2012-10-17", "Statement": [ { "Sid": "PassRoleForCloudWatchLogsSource", "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::your-account-id:role/your-cloudwatch-logs-role", "Condition": { "StringEquals": { "iam:PassedToService": [ "logs.amazonaws.com" ], "iam:AssociatedResourceARN": [ "arn:aws:observabilityadmin:your-region:your-account-id:telemetry-pipeline/*" ] } } } ] }

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 del registro. Utilizza queste chiavi di condizione per applicare le politiche di governance in tutta l'organizzazione.

Chiavi di condizione disponibili
observabilityadmin:SourceName

Limita la creazione della pipeline a nomi di sorgenti di log specifici.

observabilityadmin:SourceType

Limita la creazione della pipeline a tipi di sorgenti di log specifici.

Esempio La politica IAM limita la creazione di pipeline in base al tipo di sorgente
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowPipelineCreationForSpecificSourceType", "Effect": "Allow", "Action": "observabilityadmin:CreateTelemetryPipeline", "Resource": "*", "Condition": { "StringEquals": { "observabilityadmin:SourceType": "cloudwatch_logs" } } } ] }
Esempio Politica IAM che limita la creazione di pipeline in base al nome della sorgente
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowPipelineCreationForSpecificSource", "Effect": "Allow", "Action": "observabilityadmin:CreateTelemetryPipeline", "Resource": "*", "Condition": { "StringEquals": { "observabilityadmin:SourceName": "your-source-name" } } } ] }

Autorizzazioni di configurazione del processore assistita dall'intelligenza artificiale

Per utilizzare la configurazione del processore assistita dall'intelligenza artificiale nella console delle CloudWatch pipeline, il responsabile IAM deve disporre dell'autorizzazione. logs:GeneratePipeline Questa autorizzazione autorizza la generazione di configurazioni del processore a partire da descrizioni in linguaggio naturale.

Esempio Politica IAM per la configurazione dei processori assistita dall'intelligenza artificiale
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowGeneratePipeline", "Effect": "Allow", "Action": "logs:GeneratePipeline", "Resource": "*" } ] }

Politiche IAM specifiche della fonte

Diversi tipi di fonti richiedono autorizzazioni IAM specifiche per accedere alle rispettive fonti di dati.

CloudWatch Registra le fonti

Per le sorgenti CloudWatch Logs, qualsiasi ruolo IAM specificato nella configurazione della pipeline deve avere una relazione di trust con. logs.amazonaws.com

Esempio Politica di fiducia dei ruoli IAM per le fonti CloudWatch Logs (di base)
{ "Version": "2012-10-17", "Statement": [ { ""Effect": "Allow", "Principal": { "Service": "logs.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

Fonti S3

Per le sorgenti S3, i clienti devono fornire a un ruolo IAM le autorizzazioni per accedere agli oggetti S3 e alle code SQS.

Esempio Policy IAM per 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", "Condition": { "Comment": "Only required if S3 buckets and/or SQS queue uses KMS encryption" } } ] }

Sorgenti che utilizzano AWS Secrets Manager

Per le fonti che fanno riferimento a AWS Secrets Manager (Microsoft Office 365, Microsoft Entra ID, Palo Alto NGFW), i clienti devono fornire un ruolo IAM con accesso a Secrets Manager.

Esempio Politica IAM per i sorgenti 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", "Condition": { "Comment": "Only required if Secrets Manager uses KMS encryption" } } ] }

Relazioni di attendibilità

Qualsiasi ruolo IAM specificato nella configurazione della pipeline deve avere una relazione di fiducia con il responsabile del servizio della CloudWatch pipeline.

Politica di fiducia per i ruoli della pipeline

Tutti i ruoli della pipeline devono fidarsi del responsabile del telemetry-pipelines.observabilityadmin.amazonaws.com servizio.

Esempio Politica di fiducia per i ruoli della pipeline
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "telemetry-pipelines.observabilityadmin.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

Policy delle risorse

CloudWatch Le politiche relative alle risorse dei log sono necessarie per le pipeline che scrivono in gruppi di log, ad eccezione delle pipeline che utilizzano il codice sorgente. cloudwatch_logs

CloudWatch Registra la politica delle risorse

Dopo aver chiamato CreateTelemetryPipeline l'API, riceverai un ARN della pipeline. Per le pipeline in cui l'origine non è presentecloudwatch_logs, i clienti devono effettuare una chiamata logs:PutResourcePolicy per consentire al responsabile del servizio CloudWatch pipelines di scrivere nel gruppo di log configurato.

Vincoli di tempo

La finestra di tempo per creare la policy di risorse dopo aver ricevuto l’ARN della pipeline è limitata (meno di 5 minuti). Se la pipeline diventa attiva prima che la policy sia in vigore, i dati verranno eliminati.

Esempio registri: 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

Questa guida fornisce i passaggi per creare o aggiornare una politica delle risorse CloudWatch Logs per le pipeline di telemetria utilizzando la CLI. AWS

Verifica le politiche esistenti:

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

Ciò restituisce tutte le politiche relative alle risorse esistenti allegate al gruppo di log. Cerca qualsiasi politica che potrebbe essere già associata al tuo gruppo di log.

Se non esiste alcuna politica sulle risorse, creane una nuova:

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 '{ "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" } } } ] }'

Sostituire i seguenti segnaposto:

  • your-region- La tua AWS regione (ad es. us-east-1)

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

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

  • your-pipeline-id- L'ID della tua pipeline di telemetria

Se esiste già una politica in materia di risorse, unisci la nuova istruzione ad essa:

  1. Recupera la politica esistente:

    aws logs describe-resource-policies --resource-arn arn:aws:logs:your-region:your-account-id:log-group:your-log-group-name:*
  2. Apri existing-policy.json e aggiungi la nuova istruzione 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 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://existing-policy.json

Conferma che la politica è 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:*