CloudWatch Pipelines, IAM-Richtlinien und -Berechtigungen - Amazon CloudWatch

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

CloudWatch Pipelines, IAM-Richtlinien und -Berechtigungen

Dieser Abschnitt enthält detaillierte IAM-Anforderungen für CloudWatch Pipelines, einschließlich Berechtigungen für API-Aufrufer, quellenspezifische Richtlinien, Vertrauensbeziehungen und Ressourcenrichtlinien.

Berechtigungen für API-Aufrufer

Jede in der Pipeline-Konfiguration angegebene Rolle, die die CreateTelemetryPipeline API aufruft (z. B. S3-Quellrollen, Secrets Manager Manager-Zugriffsrollen oder CloudWatch Logs-Quellrollen), muss über spezifische Berechtigungen zum Übergeben von Rollen verfügen.

PassRole permissions

Erforderlich für alle in der Pipeline-Konfiguration angegebenen Rollen (S3-Quellrollen, Secrets Manager Manager-Zugriffsrollen oder CloudWatch Logs-Quellrollen).

Beispiel IAM-Richtlinie für S3-Quellen
{ "Version": "2012-10-17", "Statement": [ { "Sid": "PassRoleForS3Source", "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::your-account-id:role/your-s3-source-role" } ] }
Beispiel IAM-Richtlinie für Secrets Manager Manager-Quellen
{ "Version": "2012-10-17", "Statement": [ { "Sid": "PassRoleForSecretsManagerSource", "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::your-account-id:role/your-secrets-manager-role" } ] }
Beispiel IAM-Richtlinie für Protokollquellen CloudWatch
{ "Version": "2012-10-17", "Statement": [ { "Sid": "PassRoleForCloudWatchLogsSource", "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::your-account-id:role/your-cloudwatch-logs-role"" } ] }

Berechtigungen für Pipeline-Regeln

Wenn Sie cloudwatch_logs source for Create/Update operations (logs:PutPipelineRule) und Delete operations (logs:DeletePipelineRule) verwenden, muss die Rolle auch über Berechtigungen zur Ausführung dieser Operationen verfügen.

Beispiel IAM-Richtlinie für CloudWatch Log-Pipeline-Regeln
{ "Version": "2012-10-17", "Statement": [ { "Sid": "PipelineRuleForCloudWatchLogs", "Effect": "Allow", "Action": [ "logs:PutPipelineRule", "logs:DeletePipelineRule" ], "Resource": "*" } ] }

Reduzierung des Umfangs mit Bedingungsschlüsseln

Um die Berechtigungsrichtlinie auf Telemetrie-Pipelines zu beschränken, können Sie Bedingungsschlüssel angeben, wie in den folgenden Beispielen gezeigt:

Beispiel IAM-Richtlinie für S3-Quellen (einfach)
{ "Version": "2012-10-17", "Statement": [ { "Sid": "PassRoleForS3Source", "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::your-account-id:role/your-s3-source-role" } ] }
Beispiel IAM-Richtlinie für S3-Quellen (eingeschränkt mit Bedingungsschlüsseln)
{ "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/*" ] } } } ] }
Beispiel IAM-Richtlinie für Secrets Manager Manager-Quellen (einfach)
{ "Version": "2012-10-17", "Statement": [ { "Sid": "PassRoleForSecretsManagerSource", "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::your-account-id:role/your-secrets-manager-role" } ] }
Beispiel IAM-Richtlinie für Secrets Manager Manager-Quellen (eingeschränkt mit Bedingungsschlüsseln)
{ "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/*" ] } } } ] }
Beispiel IAM-Richtlinie für CloudWatch Protokollquellen (eingeschränkt mit Bedingungsschlüsseln)
{ "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/*" ] } } } ] }

Zustandsschlüssel für Pipelines

CloudWatch Pipelines unterstützt IAM-Bedingungsschlüssel, mit denen Sie anhand des Namens und des Typs der Protokollquelle einschränken können, wer Pipelines erstellen kann. Verwenden Sie diese Bedingungsschlüssel, um Governance-Richtlinien in Ihrer gesamten Organisation durchzusetzen.

Verfügbare Bedingungsschlüssel
observabilityadmin:SourceName

Schränkt die Pipelineerstellung auf bestimmte Protokollquellennamen ein.

observabilityadmin:SourceType

Schränkt die Pipelineerstellung auf bestimmte Protokollquelltypen ein.

Beispiel IAM-Richtlinie, die die Pipelineerstellung nach Quelltyp einschränkt
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowPipelineCreationForSpecificSourceType", "Effect": "Allow", "Action": "observabilityadmin:CreateTelemetryPipeline", "Resource": "*", "Condition": { "StringEquals": { "observabilityadmin:SourceType": "cloudwatch_logs" } } } ] }
Beispiel IAM-Richtlinie, die die Pipelineerstellung anhand des Quellnamens einschränkt
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowPipelineCreationForSpecificSource", "Effect": "Allow", "Action": "observabilityadmin:CreateTelemetryPipeline", "Resource": "*", "Condition": { "StringEquals": { "observabilityadmin:SourceName": "your-source-name" } } } ] }

KI-gestützte Berechtigungen für die Prozessorkonfiguration

Um die KI-gestützte Prozessorkonfiguration in der CloudWatch Pipeline-Konsole verwenden zu können, muss der IAM-Prinzipal über die entsprechende Berechtigung verfügen. logs:GeneratePipeline Diese Berechtigung autorisiert die Generierung von Prozessorkonfigurationen anhand von Beschreibungen in natürlicher Sprache.

Beispiel IAM-Richtlinie für die KI-gestützte Prozessorkonfiguration
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowGeneratePipeline", "Effect": "Allow", "Action": "logs:GeneratePipeline", "Resource": "*" } ] }

Quellenspezifische IAM-Richtlinien

Verschiedene Quelltypen erfordern spezifische IAM-Berechtigungen für den Zugriff auf ihre jeweiligen Datenquellen.

CloudWatch Protokolliert Quellen

Für CloudWatch Protokollquellen muss jede in der Pipeline-Konfiguration angegebene IAM-Rolle eine Vertrauensbeziehung mit logs.amazonaws.com haben.

Beispiel Vertrauensrichtlinie für IAM-Rollen für CloudWatch Protokollquellen (einfach)
{ "Version": "2012-10-17", "Statement": [ { ""Effect": "Allow", "Principal": { "Service": "logs.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

S3-Quellen

Für S3-Quellen müssen Kunden eine IAM-Rolle mit Berechtigungen für den Zugriff auf S3-Objekte und SQS-Warteschlangen bereitstellen.

Beispiel IAM-Richtlinie für S3-Quellen
{ "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" } } ] }

Quellen, die AWS Secrets Manager verwenden

Für Quellen, die auf AWS Secrets Manager verweisen (Microsoft Office 365, Microsoft Entra ID, Palo Alto NGFW), müssen Kunden eine IAM-Rolle mit Secrets Manager Manager-Zugriff bereitstellen.

Beispiel IAM-Richtlinie für Secrets Manager Manager-Quellen
{ "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" } } ] }

Vertrauensstellungen

Jede in der Pipeline-Konfiguration angegebene IAM-Rolle muss über eine Vertrauensbeziehung mit dem Dienstprinzipal der CloudWatch Pipelines verfügen.

Vertrauensrichtlinie für die Pipeline-Rolle

Alle Pipeline-Rollen müssen dem telemetry-pipelines.observabilityadmin.amazonaws.com Dienstprinzipal vertrauen.

Beispiel Vertrauensrichtlinie für Pipeline-Rollen
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "telemetry-pipelines.observabilityadmin.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

Ressourcenrichtlinien

CloudWatch Für Pipelines, die in Protokollgruppen schreiben, sind Ressourcenrichtlinien für Protokolle erforderlich, mit Ausnahme von Pipelines, die die cloudwatch_logs Quelle verwenden.

CloudWatch Protokolliert die Ressourcenrichtlinie

Nach dem Aufruf der CreateTelemetryPipeline API erhalten Sie einen Pipeline-ARN. Bei Pipelines, bei denen sich die Quelle nicht befindetcloudwatch_logs, müssen Kunden anrufen, logs:PutResourcePolicy damit der CloudWatch Pipeline-Dienstprinzipal in die konfigurierte Protokollgruppe schreiben kann.

Zeitliche Einschränkungen

Nach Erhalt des Pipeline-ARN steht Ihnen ein begrenztes Zeitfenster (weniger als 5 Minuten) zur Verfügung, um die Ressourcenrichtlinie zu erstellen. Wenn die Pipeline aktiv wird, bevor die Richtlinie in Kraft getreten ist, werden Daten gelöscht.

Beispiel Protokolle: Anfrage PutResourcePolicy
{ "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" } } } ] } }

Verwaltung von Ressourcenrichtlinien

Dieses Handbuch enthält Schritte zum Erstellen oder Aktualisieren einer CloudWatch Protokollressourcenrichtlinie für Telemetrie-Pipelines mithilfe der AWS CLI.

Suchen Sie nach vorhandenen Richtlinien:

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

Dadurch werden alle vorhandenen Ressourcenrichtlinien zurückgegeben, die der Protokollgruppe zugeordnet sind. Suchen Sie nach Richtlinien, die möglicherweise bereits mit Ihrer Protokollgruppe verknüpft sind.

Wenn keine Ressourcenrichtlinie vorhanden ist, erstellen Sie eine neue:

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

Ersetzen die folgenden Platzhalter:

  • your-region- Ihre AWS Region (z. B. us-east-1)

  • your-account-id- Ihre 12-stellige Konto-ID AWS

  • your-log-group-name- Name Ihrer CloudWatch Logs-Protokollgruppe

  • your-pipeline-id- Ihre Telemetrie-Pipeline-ID

Wenn bereits eine Ressourcenrichtlinie existiert, führen Sie die neue Anweisung damit zusammen:

  1. Rufen Sie die bestehende Richtlinie ab:

    aws logs describe-resource-policies --resource-arn arn:aws:logs:your-region:your-account-id:log-group:your-log-group-name:*
  2. Öffnen Sie die neue Anweisung existing-policy.json und fügen Sie sie dem vorhandenen Statement Array hinzu:

    { "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. Aktualisieren Sie die Richtlinie:

    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

Bestätigen Sie, dass die Richtlinie erfolgreich erstellt oder aktualisiert wurde:

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