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, y compris 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 à l'aide de 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/*" ] } } } ] }

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 en fonction du nom et du type de la source du journal. Utilisez ces clés de condition pour appliquer les politiques de gouvernance au sein de votre organisation.

Clés de condition disponibles
observabilityadmin:SourceName

Limite la création de pipelines à des noms de sources de journaux spécifiques.

observabilityadmin:SourceType

Limite la création de pipelines à des types de sources de journaux spécifiques.

Exemple Politique IAM limitant 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" } } } ] }
Exemple Politique IAM limitant la création de pipelines par nom de source
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowPipelineCreationForSpecificSource", "Effect": "Allow", "Action": "observabilityadmin:CreateTelemetryPipeline", "Resource": "*", "Condition": { "StringEquals": { "observabilityadmin:SourceName": "your-source-name" } } } ] }

Autorisations de configuration du processeur assistées par l'IA

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

Exemple Politique IAM pour la configuration des processeurs assistés par l'IA
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowGeneratePipeline", "Effect": "Allow", "Action": "logs:GeneratePipeline", "Resource": "*" } ] }

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 relative aux 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é.

Contraintes de temps

Vous disposez d’un délai limité (moins de 5 minutes) pour créer la stratégie de ressources après la réception de l’ARN du pipeline. 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

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 en matière 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:*