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 :
-
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:* -
Ouvrez
existing-policy.jsonet ajoutez la nouvelle instruction auStatementtableau 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:*