View a markdown version of this page

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 les exigences IAM pour les CloudWatch pipelines. Les autorisations varient en fonction de votre source de données et de votre méthode d'intégration.

Le tableau suivant vous aide à identifier les sections IAM qui s'appliquent à votre cas d'utilisation.

Cas d’utilisation Méthode d'intégration Type de source dans la configuration du pipeline Sections IAM dont vous avez besoin
Third-party intégrations (API Pull) Le pipeline est extrait de l'API du fournisseur à l'aide des informations d'identification stockées microsoft_office365, okta_sso, palo_alto_ngfw, etc. Autorisations des appelants de l'API + Third-party sources (API Pull) + Politiques basées sur une ressource
Third-party intégrations (livraison S3) Le fournisseur fournit des fichiers à votre compartiment S3 s3 Autorisations des appelants de l'API + Third-party sources (livraison S3) + Politiques basées sur une ressource
Données personnalisées provenant de S3 Vos applications écrivent dans S3, le pipeline lit depuis le bucket s3 Autorisations des appelants de l'API + Données personnalisées provenant de S3 + Politiques basées sur une ressource
Données personnalisées issues des CloudWatch journaux Vos applications se connectent à un groupe de CloudWatch journaux Logs cloudwatch_logs Autorisations des appelants de l'API + Données personnalisées issues des CloudWatch journaux
Journaux de AWS service vendus AWS les services fournissent des journaux aux CloudWatch journaux (journaux de flux VPC, Route 53) cloudwatch_logs Autorisations des appelants de l'API + Vendu AWS journaux de service
Note

S3-based sources (s3) nécessitent une politique de ressources après la création du pipeline. CloudWatch Les sources de logs (cloudwatch_logs) ne le font pas.

Autorisations des appelants de l'API

Le principal IAM qui appelle CreateTelemetryPipeline a besoin d'une iam:PassRole autorisation pour tous les rôles référencés dans la configuration du pipeline.

Exemple PassRole modèle de politique
{ "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/*" ] } } } ] }

Remplacez service-principal par la valeur du tableau suivant en fonction de votre cas d'utilisation.

Cas d’utilisation Valeur principale du service
Third-party (API Pull) telemetry-pipelines.observabilityadmin.amazonaws.com
Third-party (livraison S3) telemetry-pipelines.observabilityadmin.amazonaws.com
Données personnalisées provenant de S3 telemetry-pipelines.observabilityadmin.amazonaws.com
Données personnalisées issues des CloudWatch journaux logs.amazonaws.com
Journaux de AWS service vendus logs.amazonaws.com
Note

Le Condition blocage est recommandé mais facultatif. Sans cela, le rôle peut être transféré à n'importe quel service.

Autorisations relatives aux règles du pipeline (sources de CloudWatch journaux uniquement)

Lors de l'utilisation en cloudwatch_logs tant que source, l'appelant de l'API a également besoin d'autorisations pour les opérations relatives aux règles du pipeline. L'logs:PutPipelineRuleautorisation est requise pour CreateTelemetryPipeline les UpdateTelemetryPipeline opérations. L'logs:DeletePipelineRuleautorisation est requise pour les DeleteTelemetryPipeline 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": "*" } ] }

Politiques relatives aux rôles sources

Chaque pipeline nécessite un rôle IAM dédié que le service assume pour lire vos données. Les sous-sections suivantes fournissent les politiques complètes (autorisation et confiance) pour chaque cas d'utilisation.

Third-party sources (API Pull)

Cette section s'applique à Microsoft Office 365, Microsoft Entra ID, Okta SSO, Palo Alto NGFW et aux intégrations d'API d'autres fournisseurs qui stockent les informations d'identification dans Secrets Manager. AWS

Stratégie d'autorisation

La politique suivante permet au rôle de récupérer vos informations d'identification d'API stockées.

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

La kms:Decrypt déclaration n'est requise que si votre secret dans Secrets Manager est chiffré à l'aide d'une clé KMS gérée par le client.

Politique d’approbation

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

Configuration complète de l'IAM pour les pipelines API Pull

L'exemple suivant montre toutes les politiques IAM nécessaires pour créer un pipeline API Pull tiers de bout en bout.

Politique d'identité de l'appelant — joindre à l'appel CreateTelemetryPipeline principal :

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

Politique d'autorisation du rôle source : attachez-la au rôle assumé par le 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*" } ] }

Politique de confiance relative au rôle source :

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

Après avoir créé le pipeline, vous devez également créer une politique de ressources dans les 5 minutes. Consultez Politiques basées sur une ressource.

Note

Pour une utilisation en production, réduisez le iam:PassRole périmètre à l'aide des clés de condition indiquées dansAutorisations des appelants de l'API. Si votre secret utilise une clé KMS gérée par le client, ajoutez-la kms:Decrypt à la politique d'autorisation du rôle source.

Third-party sources (livraison S3)

Cette section s'applique à tout fournisseur tiers qui fournit des fichiers journaux à votre compartiment S3 (par exemple, CrowdStrike Falçon, Wiz ou Cisco Umbrella).

Stratégie d'autorisation

La politique suivante permet au rôle de lire des objets depuis S3 et de consommer des notifications 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" } ] }
Note

L'kms:Decryptinstruction n'est requise que si votre compartiment S3 ou votre file d'attente SQS utilise une clé KMS gérée par le client pour le chiffrement.

Politique d’approbation

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

Configuration complète de l'IAM pour les pipelines de distribution S3

L'exemple suivant montre toutes les politiques IAM nécessaires pour créer un pipeline de livraison S3 de bout en bout.

Politique d'identité de l'appelant — joindre à l'appel CreateTelemetryPipeline principal :

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

Politique d'autorisation du rôle source : attachez-la au rôle assumé par le 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" } ] }

Politique de confiance relative au rôle source :

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

Après avoir créé le pipeline, vous devez également créer une politique de ressources dans les 5 minutes. Consultez Politiques basées sur une ressource.

Note

Pour une utilisation en production, réduisez le iam:PassRole périmètre à l'aide des clés de condition indiquées dansAutorisations des appelants de l'API. Si votre compartiment S3 ou votre file d'attente SQS utilise une clé KMS gérée par le client, ajoutez-la kms:Decrypt à la politique d'autorisation du rôle source.

Données personnalisées provenant de S3

Cette section s'applique à vos propres applications ou infrastructures qui écrivent des fichiers journaux dans un compartiment S3.

La configuration IAM est identique à. Third-party sources (livraison S3) Utilisez la même politique d'autorisation et la même politique de confiance. Le pipeline lit les données de votre bucket via les notifications d'événements SQS, quel que soit l'auteur des données.

Données personnalisées issues des CloudWatch journaux

Cette section s'applique à vos propres applications qui se connectent à un groupe de CloudWatch journaux Logs (par exemple, les fonctions Lambda, les conteneurs ECS ou les applications EC2 personnalisées).

Stratégie d'autorisation

La politique suivante autorise le rôle à traiter les journaux provenant des groupes de journaux que vous avez spécifiés.

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

Vous pouvez limiter cette autorisation en utilisant les touches de logs:data_source_type condition logs:data_source_name et pour limiter les sources de pipeline qui peuvent invoquer des transformations. La logs:data_source_name valeur correspond data_source_name à la configuration de votre pipeline et logs:data_source_type correspond data_source_type à la configuration de votre pipeline.

Exemple Politique d'autorisation pour les sources de CloudWatch journaux (délimitée par des clés de condition)
{ "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" } } } ] }
Note

Le rôle IAM pour les sources de CloudWatch logs nécessite à la fois la politique de confiance (logs.amazonaws.com.rproxy.govskope.capour autoriser à assumer le rôle) et la politique d'autorisation (pour accorderlogs:ProcessWithPipeline). Sans ces deux politiques, les CloudWatch pipelines ne peuvent pas transformer les événements du journal pendant l'ingestion.

Politique d’approbation

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

Aucune politique de ressources n'est requise pour les pipelines de sources CloudWatch Logs.

Configuration complète de l'IAM pour les pipelines CloudWatch Logs

L'exemple suivant montre toutes les politiques IAM nécessaires pour créer un pipeline CloudWatch Logs de bout en bout.

Politique d'identité de l'appelant — joindre à l'appel CreateTelemetryPipeline principal :

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

Politique d'autorisation du rôle source : attachez-la au rôle assumé par le 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" ] } ] }

Politique de confiance relative au rôle source :

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

Pour une utilisation en production, réduisez le iam:PassRole périmètre à l'aide des clés de condition indiquées dansAutorisations des appelants de l'API.

Vendu AWS journaux de service

Cette section s'applique aux journaux de AWS service fournis aux CloudWatch journaux, tels que les journaux de flux VPC, les journaux de requêtes Route 53 et les autres types de journaux AWS vendus.

La configuration IAM est identique à. Données personnalisées issues des CloudWatch journaux Utilisez la même politique d'autorisation (logs:processWithPipelineétendue au groupe de journaux) et la même politique de confiance (logs.amazonaws.com).

Comme cela utilise le type de cloudwatch_logs source, l'appelant a également besoin logs:PutPipelineRule d'logs:DeletePipelineRuleautorisations. Consultez Autorisations relatives aux règles du pipeline (sources de CloudWatch journaux uniquement).

Politiques basées sur une ressource

CloudWatch Les politiques relatives aux ressources des journaux sont requises pour les S3-based sources et les Manager-based sources secrètes (intégrations tierces). Les politiques de ressources ne sont pas requises pour CloudWatch les sources de journaux (données personnalisées ou journaux vendus).

Après l'appelCreateTelemetryPipeline, vous recevez un ARN de pipeline. Vous devez ensuite appeler logs:PutResourcePolicy pour autoriser le principal du service des CloudWatch pipelines à écrire dans le groupe de journaux configuré.

Contraintes de temps

Vous disposez de moins de 5 minutes après avoir reçu l'ARN du pipeline pour créer cette politique de ressources. Si le pipeline devient actif avant que la stratégie ne soit en place, les données sont 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

Utilisez la AWS CLI pour créer ou mettre à jour CloudWatch les politiques de ressources CloudWatch Logs pour les pipelines.

Pour vérifier les politiques existantes

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

Pour créer une nouvelle 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://policy.json

Pour fusionner avec une politique existante

Si une politique de ressources existe déjà, ajoutez la nouvelle instruction au Statement tableau existant dans le document de politique, puis appelez put-resource-policy à nouveau avec le fichier fusionné.

  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. 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:*

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 (renvoyé par) CreateTelemetryPipeline

Clés d'état du pipeline

CloudWatch les pipelines prennent en charge les clés de condition IAM qui vous permettent de limiter les personnes autorisées à créer des pipelines et les comptes pouvant assumer des rôles sources. Utilisez ces clés de condition pour appliquer les politiques de gouvernance au sein de votre organisation.

CreateTelemetryPipeline conditions

Utilisez ces clés de condition dans les politiques d'identité pour contrôler les pipelines qu'un principal peut créer.

observabilityadmin:SourceType

Limite la création de pipelines à des types de sources spécifiques. Les valeurs prises en charge incluent cloudwatch_logs s3microsoft_office365,okta_sso,, etpalo_alto_ngfw.

Exemple Restreindre la création de pipelines par type de source
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowPipelineCreationForSpecificSourceType", "Effect": "Allow", "Action": "observabilityadmin:CreateTelemetryPipeline", "Resource": "*", "Condition": { "StringEquals": { "observabilityadmin:SourceType": "cloudwatch_logs" } } } ] }

Conditions de la politique de confiance en matière de rôle source

Utilisez ces clés de condition dans la politique de confiance de votre rôle source afin de limiter le compte autorisé à assumer le rôle. Cela permet d'éviter les attaques d'adjoints confuses dans lesquelles le service pourrait agir pour le compte d'un autre compte.

aws:SourceAccount

Limite l'attribution de rôles aux demandes provenant d'un AWS compte spécifique.

aws:SourceArn

Limite l'attribution de rôle aux demandes provenant d'un ARN de ressource spécifique (par exemple, un groupe de journaux).

Exemple Politique de confiance assortie de SourceAccount conditions (sources de CloudWatch logs)
{ "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 autorisations de configuration du processeur

Pour utiliser la configuration AI-assisted du processeur dans la console des CloudWatch pipelines, le principal IAM doit disposer de l'logs:GeneratePipelineautorisation. Cette autorisation autorise la génération de configurations de processeur à partir de descriptions en langage naturel.

Exemple Politique IAM pour la configuration AI-assisted du processeur
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowGeneratePipeline", "Effect": "Allow", "Action": "logs:GeneratePipeline", "Resource": "*" } ] }