CloudWatch jalur pipa kebijakan dan izin IAM - Amazon CloudWatch

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

CloudWatch jalur pipa kebijakan dan izin IAM

Bagian ini menyediakan persyaratan IAM terperinci untuk CloudWatch pipeline, termasuk izin untuk pemanggil API, kebijakan khusus sumber, hubungan kepercayaan, dan kebijakan sumber daya.

Izin pemanggil API

Setiap peran yang ditentukan dalam konfigurasi pipeline yang memanggil CreateTelemetryPipeline API (seperti peran sumber S3, peran akses Secrets Manager, atau peran sumber CloudWatch Log) harus memiliki izin khusus untuk meneruskan peran.

PassRole izin

Diperlukan untuk setiap peran yang ditentukan dalam konfigurasi pipeline (peran sumber S3, peran akses Secrets Manager, atau peran sumber CloudWatch Log).

contoh Kebijakan IAM untuk sumber 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" } ] }
contoh Kebijakan IAM untuk sumber 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" } ] }
contoh Kebijakan IAM untuk Sumber CloudWatch Log
{ "Version": "2012-10-17", "Statement": [ { "Sid": "PassRoleForCloudWatchLogsSource", "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::your-account-id:role/your-cloudwatch-logs-role"" } ] }

Izin aturan pipa

Saat menggunakan cloudwatch_logs sumber untuk Create/Update operasi (logs:PutPipelineRule) dan Hapus operasi (logs:DeletePipelineRule) peran juga harus memiliki izin untuk melakukan operasi tersebut.

contoh Kebijakan IAM untuk aturan pipa CloudWatch Log
{ "Version": "2012-10-17", "Statement": [ { "Sid": "PipelineRuleForCloudWatchLogs", "Effect": "Allow", "Action": [ "logs:PutPipelineRule", "logs:DeletePipelineRule" ], "Resource": "*" } ] }

Mengurangi ruang lingkup dengan tombol kondisi

Untuk mencakupkan kebijakan izin ke pipeline telemetri, Anda dapat menentukan Kunci Kondisi seperti yang ditunjukkan pada contoh berikut:

contoh Kebijakan IAM untuk sumber S3 (dasar)
{ "Version": "2012-10-17", "Statement": [ { "Sid": "PassRoleForS3Source", "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::your-account-id:role/your-s3-source-role" } ] }
contoh Kebijakan IAM untuk sumber S3 (dicakup dengan kunci kondisi)
{ "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/*" ] } } } ] }
contoh Kebijakan IAM untuk sumber Secrets Manager (dasar)
{ "Version": "2012-10-17", "Statement": [ { "Sid": "PassRoleForSecretsManagerSource", "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::your-account-id:role/your-secrets-manager-role" } ] }
contoh Kebijakan IAM untuk sumber Secrets Manager (dicakup dengan tombol kondisi)
{ "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/*" ] } } } ] }
contoh Kebijakan IAM untuk sumber CloudWatch Log (dicakup dengan kunci kondisi)
{ "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/*" ] } } } ] }

Kebijakan IAM khusus sumber

Jenis sumber yang berbeda memerlukan izin IAM khusus untuk mengakses sumber data masing-masing.

CloudWatch Sumber log

Untuk sumber CloudWatch Log, peran IAM apa pun yang ditentukan dalam konfigurasi pipeline harus memiliki hubungan kepercayaan denganlogs.amazonaws.com.

contoh Kebijakan kepercayaan peran IAM untuk sumber CloudWatch Log (dasar)
{ "Version": "2012-10-17", "Statement": [ { ""Effect": "Allow", "Principal": { "Service": "logs.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

Sumber S3

Untuk sumber S3, pelanggan harus memberikan peran IAM dengan izin untuk mengakses objek S3 dan antrian SQS.

contoh Kebijakan IAM untuk sumber 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" } } ] }

Sumber menggunakan AWS Secrets Manager

Untuk sumber yang mereferensikan AWS Secrets Manager (Microsoft Office 365, Microsoft Entra ID, Palo Alto NGFW), pelanggan harus memberikan peran IAM dengan akses Secrets Manager.

contoh Kebijakan IAM untuk sumber 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" } } ] }

Hubungan kepercayaan

Setiap peran IAM yang ditentukan dalam konfigurasi pipeline harus memiliki hubungan kepercayaan dengan prinsipal layanan CloudWatch pipeline.

Kebijakan kepercayaan peran saluran pipa

Semua peran pipeline harus mempercayai prinsipal telemetry-pipelines.observabilityadmin.amazonaws.com layanan.

contoh Kebijakan kepercayaan untuk peran pipeline
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "telemetry-pipelines.observabilityadmin.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

Kebijakan sumber daya

CloudWatch Kebijakan sumber daya log diperlukan untuk saluran pipa yang menulis ke grup log, kecuali untuk saluran pipa yang menggunakan sumber. cloudwatch_logs

CloudWatch Kebijakan sumber daya log

Setelah memanggil CreateTelemetryPipeline API, Anda akan menerima ARN pipeline. Untuk saluran pipa di mana sumbernya tidakcloudwatch_logs, pelanggan harus menelepon logs:PutResourcePolicy untuk mengizinkan prinsipal layanan CloudWatch pipeline menulis ke grup log yang dikonfigurasi.

Kendala waktu

Anda memiliki jendela waktu terbatas (kurang dari 5 menit) untuk membuat kebijakan sumber daya setelah menerima ARN pipeline. Jika pipeline menjadi aktif sebelum kebijakan diberlakukan, data akan dijatuhkan.

contoh log: PutResourcePolicy permintaan
{ "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" } } } ] } }

Mengelola kebijakan sumber daya

Panduan ini menyediakan langkah-langkah untuk membuat atau memperbarui kebijakan sumber daya CloudWatch Log untuk pipeline telemetri menggunakan CLI. AWS

Periksa kebijakan yang ada:

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

Ini mengembalikan semua kebijakan sumber daya yang ada yang dilampirkan ke grup log. Cari kebijakan apa pun yang mungkin sudah dikaitkan dengan grup log Anda.

Jika tidak ada kebijakan sumber daya, buat yang baru:

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

Ganti placeholder berikut:

  • your-region- AWS Wilayah Anda (mis., us-east-1)

  • your-account-id- ID AWS akun 12 digit Anda

  • your-log-group-name- Nama grup CloudWatch log Log Anda

  • your-pipeline-id- ID pipa telemetri Anda

Jika kebijakan sumber daya sudah ada, gabungkan pernyataan baru dengannya:

  1. Ambil kebijakan yang ada:

    aws logs describe-resource-policies --resource-arn arn:aws:logs:your-region:your-account-id:log-group:your-log-group-name:*
  2. Buka existing-policy.json dan tambahkan pernyataan baru ke Statement array yang ada:

    { "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. Perbarui kebijakan:

    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

Konfirmasikan bahwa kebijakan telah dibuat atau diperbarui dengan sukses:

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