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 sorgenti 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/*" ] } } } ] }

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

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

Vincolo temporale

Hai una finestra di tempo limitata (meno di 5 minuti) per creare la politica delle risorse dopo aver ricevuto l'ARN della pipeline. 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:*