CloudWatch pipelines, politiques et autorisations IAM - Amazon CloudWatch

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

CloudWatch pipelines, politiques et autorisations IAM

Cette section fournit des exigences IAM détaillées pour les CloudWatch pipelines, notamment les autorisations pour les appelants d'API, les politiques spécifiques à la source, les relations de confiance et les politiques de ressources.

Autorisations des appelants de l'API

Tout rôle spécifié dans la configuration du pipeline qui appelle l'CreateTelemetryPipelineAPI (tel que les rôles source S3, les rôles d'accès Secrets Manager ou CloudWatch les rôles source Logs) doit disposer d'autorisations spécifiques pour transmettre des rôles.

PassRole permissions

Obligatoire pour tous les rôles spécifiés dans la configuration du pipeline (rôles source S3, rôles d'accès à Secrets Manager ou rôles source CloudWatch Logs).

Exemple Politique IAM pour les sources 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" } ] }
Exemple Politique IAM pour les sources de 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" } ] }
Exemple Politique IAM pour les sources de CloudWatch journaux
{ "Version": "2012-10-17", "Statement": [ { "Sid": "PassRoleForCloudWatchLogsSource", "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::your-account-id:role/your-cloudwatch-logs-role"" } ] }

Autorisations relatives aux règles du pipeline

Lorsque vous utilisez la cloudwatch_logs source pour les Create/Update opérations (logs:PutPipelineRule) et les opérations de suppression (logs:DeletePipelineRule), le rôle doit également disposer des autorisations nécessaires pour effectuer ces opérations.

Exemple Politique IAM pour les règles du pipeline CloudWatch Logs
{ "Version": "2012-10-17", "Statement": [ { "Sid": "PipelineRuleForCloudWatchLogs", "Effect": "Allow", "Action": [ "logs:PutPipelineRule", "logs:DeletePipelineRule" ], "Resource": "*" } ] }

Réduction de la portée grâce aux clés de condition

Pour limiter la politique d'autorisation aux pipelines de télémétrie, vous pouvez spécifier des clés de condition comme indiqué dans les exemples suivants :

Exemple Politique IAM pour les sources S3 (de 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" } ] }
Exemple Politique IAM pour les sources S3 (délimitée par des clés de condition)
{ "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/*" ] } } } ] }
Exemple Politique IAM pour les sources de Secrets Manager (de 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" } ] }
Exemple Politique IAM pour les sources de Secrets Manager (définie par des clés de condition)
{ "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/*" ] } } } ] }
Exemple Politique IAM pour les sources de CloudWatch journaux (délimitée par des clés de condition)
{ "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/*" ] } } } ] }

Politiques IAM spécifiques à la source

Les différents types de sources nécessitent des autorisations IAM spécifiques pour accéder à leurs sources de données respectives.

CloudWatch Sources des journaux

Pour les sources de CloudWatch journaux, tout rôle IAM spécifié dans la configuration du pipeline doit avoir une relation de confiance aveclogs.amazonaws.com.

Exemple Politique de confiance des rôles IAM pour les sources de CloudWatch logs (de base)
{ "Version": "2012-10-17", "Statement": [ { ""Effect": "Allow", "Principal": { "Service": "logs.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

Sources S3

Pour les sources S3, les clients doivent fournir un rôle IAM avec des autorisations pour accéder aux objets S3 et aux files d'attente SQS.

Exemple Politique IAM pour les sources 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" } } ] }

Sources utilisant AWS Secrets Manager

Pour les sources qui font référence à AWS Secrets Manager (Microsoft Office 365, Microsoft Entra ID, Palo Alto NGFW), les clients doivent fournir un rôle IAM avec accès à Secrets Manager.

Exemple Politique IAM pour les sources de 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" } } ] }

Relations d'approbation

Tout rôle IAM spécifié dans la configuration du pipeline doit avoir une relation de confiance avec le principal du service des CloudWatch pipelines.

Politique de confiance relative aux rôles dans le pipeline

Tous les rôles du pipeline doivent faire confiance au principal du telemetry-pipelines.observabilityadmin.amazonaws.com service.

Exemple Politique de confiance pour les rôles dans les pipelines
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "telemetry-pipelines.observabilityadmin.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

Politiques basées sur une ressource

CloudWatch Les politiques relatives aux ressources des journaux sont requises pour les pipelines qui écrivent dans des groupes de journaux, à l'exception des pipelines utilisant la cloudwatch_logs source.

CloudWatch Politique de ressources des journaux

Après avoir appelé CreateTelemetryPipeline l'API, vous recevrez un ARN de pipeline. Pour les pipelines dont la source n'est pas la sourcecloudwatch_logs, les clients doivent appeler logs:PutResourcePolicy pour autoriser le principal du service des CloudWatch pipelines à écrire dans le groupe de journaux configuré.

Contrainte temporelle

Vous disposez d'un délai limité (moins de 5 minutes) pour créer la politique de ressources après avoir reçu l'ARN du pipeline. Si le pipeline devient actif avant que la politique ne soit en place, les données seront supprimées.

Exemple logs : PutResourcePolicy demande
{ "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" } } } ] } }

Gestion des politiques relatives aux ressources

Ce guide décrit les étapes à suivre pour créer ou mettre à jour une politique de ressources CloudWatch Logs pour les pipelines de télémétrie à l'aide de la CLI AWS .

Vérifiez les politiques existantes :

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

Cela renvoie toutes les politiques de ressources existantes associées au groupe de journaux. Recherchez toute politique qui pourrait déjà être associée à votre groupe de journaux.

S'il n'existe aucune politique de ressources, créez-en une nouvelle :

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

Remplacez les espaces réservés suivants :

  • your-region- Votre AWS région (par exemple, us-east-1)

  • your-account-id- Votre identifiant de AWS compte à 12 chiffres

  • your-log-group-name- Le nom de votre groupe de CloudWatch journaux Logs

  • your-pipeline-id- L'identifiant de votre pipeline de télémétrie

Si une politique de ressources existe déjà, fusionnez la nouvelle déclaration avec celle-ci :

  1. Récupérez la politique existante :

    aws logs describe-resource-policies --resource-arn arn:aws:logs:your-region:your-account-id:log-group:your-log-group-name:*
  2. Ouvrez existing-policy.json et ajoutez la nouvelle instruction au Statement tableau existant :

    { "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. Mettez à jour la politique :

    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

Vérifiez que la politique a été créée ou mise à jour avec succès :

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