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.
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 \ --regionyour-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é.
-
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:* -
Ajoutez la nouvelle instruction au
Statementtableau 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" } } } ] } -
Mettez à jour la politique :
aws logs put-resource-policy \ --regionyour-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_logss3microsoft_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": "*" } ] }