

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
<a name="pipeline-iam-reference"></a>

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
<a name="api-caller-permissions"></a>

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).

**Example 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}}"
        }
    ]
}
```

**Example 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}}"
        }
    ]
}
```

**Example 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. 

**Example 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:

**Example 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}}"
        }
    ]
}
```

**Example 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/*"
                ]
              }
            }
        }
    ]
}
```

**Example 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}}"
        }
    ]
}
```

**Example 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/*"
              ]
            }
          }
        }
    ]
}
```

**Example 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/*"
              ]
            }
          }
        }
    ]
}
```

## Kunci kondisi pipa
<a name="pipeline-condition-keys"></a>

CloudWatch pipelines mendukung kunci kondisi IAM yang memungkinkan Anda membatasi siapa yang dapat membuat pipeline berdasarkan nama dan jenis sumber log. Gunakan kunci kondisi ini untuk menegakkan kebijakan tata kelola di seluruh organisasi Anda.Kunci kondisi yang tersedia

`observabilityadmin:SourceName`  
Membatasi pembuatan pipeline ke nama sumber log tertentu.

`observabilityadmin:SourceType`  
Membatasi pembuatan pipeline ke jenis sumber log tertentu.

**Example Kebijakan IAM membatasi pembuatan pipa berdasarkan jenis sumber**  

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowPipelineCreationForSpecificSourceType",
            "Effect": "Allow",
            "Action": "observabilityadmin:CreateTelemetryPipeline",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "observabilityadmin:SourceType": "cloudwatch_logs"
                }
            }
        }
    ]
}
```

**Example Kebijakan IAM membatasi pembuatan pipa dengan nama sumber**  

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowPipelineCreationForSpecificSource",
            "Effect": "Allow",
            "Action": "observabilityadmin:CreateTelemetryPipeline",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "observabilityadmin:SourceName": "{{your-source-name}}"
                }
            }
        }
    ]
}
```

## Izin konfigurasi prosesor berbantuan AI
<a name="ai-assisted-permissions"></a>

Untuk menggunakan konfigurasi prosesor berbantuan AI di konsol CloudWatch pipelines, prinsipal IAM harus memiliki izin. `logs:GeneratePipeline` Izin ini mengizinkan pembuatan konfigurasi prosesor dari deskripsi bahasa alami.

**Example Kebijakan IAM untuk konfigurasi prosesor berbantuan AI**  

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowGeneratePipeline",
            "Effect": "Allow",
            "Action": "logs:GeneratePipeline",
            "Resource": "*"
        }
    ]
}
```

## Kebijakan IAM khusus sumber
<a name="source-specific-iam-policies"></a>

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 dengan`logs.amazonaws.com`.

**Example 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.

**Example 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 merujuk AWS Secrets Manager (Microsoft Office 365, Microsoft Entra ID, Palo Alto NGFW), pelanggan harus memberikan peran IAM dengan akses Secrets Manager.

**Example 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
<a name="trust-relationships"></a>

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.

**Example 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
<a name="resource-policies"></a>

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 tidak`cloudwatch_logs`, pelanggan harus menelepon `[logs:PutResourcePolicy](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutResourcePolicy.html)` untuk mengizinkan prinsipal layanan CloudWatch pipeline menulis ke grup log yang dikonfigurasi.

**Kendala waktu**  
Anda memiliki periode waktu terbatas (kurang dari 5 menit) untuk membuat kebijakan sumber daya setelah menerima ARN alur. Jika alur menjadi aktif sebelum kebijakan diberlakukan, data akan dihapus.

**Example 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
<a name="managing-resource-policies"></a>

 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}}:*
   ```

1.  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}}"
                   }
               }
           }
       ]
   }
   ```

1. 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}}:*
```