

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

# Memperbarui langganan lintas akun yang ada
<a name="Cross-Account-Log_Subscription-Update-Account"></a>

Jika saat ini Anda memiliki langganan log lintas akun di mana akun tujuan hanya memberikan izin ke akun pengirim tertentu, dan Anda ingin memperbarui langganan ini sehingga akun tujuan memberikan akses ke semua akun di organisasi, ikuti langkah-langkah di bagian ini.

**Topics**
+ [Langkah 1: Perbarui filter berlangganan](Cross-Account-Log_Subscription-Update-filter-Account.md)
+ [Langkah 2: Perbarui kebijakan akses tujuan yang ada](Cross-Account-Log_Subscription-Update-policy-Account.md)

# Langkah 1: Perbarui filter berlangganan
<a name="Cross-Account-Log_Subscription-Update-filter-Account"></a>

**catatan**  
Langkah ini diperlukan hanya untuk langganan lintas akun untuk log yang dibuat oleh layanan yang tercantum di. [Aktifkan pencatatan dari AWS layanan](AWS-logs-and-resource-policy.md) Jika Anda tidak bekerja dengan log yang dibuat oleh salah satu grup log ini, Anda dapat melompat ke[Langkah 2: Perbarui kebijakan akses tujuan yang ada](Cross-Account-Log_Subscription-Update-policy-Account.md).

Dalam kasus tertentu, Anda harus memperbarui filter langganan di semua akun pengirim yang mengirim log ke akun tujuan. Pembaruan menambahkan peran IAM, yang CloudWatch dapat mengasumsikan dan memvalidasi bahwa akun pengirim memiliki izin untuk mengirim log ke akun penerima.

Ikuti langkah-langkah di bagian ini untuk setiap akun pengirim yang ingin Anda perbarui untuk menggunakan ID organisasi untuk izin berlangganan lintas akun.

Dalam contoh di bagian ini, dua akun, `111111111111` dan `222222222222` sudah memiliki filter berlangganan yang dibuat untuk mengirim log ke akun`999999999999`. Nilai filter langganan yang ada adalah sebagai berikut:

```
## Existing Subscription Filter parameter values
{
    "DestinationArn": "arn:aws:logs:region:999999999999:destination:testDestination",
    "FilterPattern": "{$.userIdentity.type = Root}",
    "Distribution": "Random"
}
```

Jika Anda perlu menemukan nilai parameter filter langganan saat ini, masukkan perintah berikut.

```
aws logs describe-account-policies \
--policy-type "SUBSCRIPTION_FILTER_POLICY" \
--policy-name "CrossAccountStreamsExamplePolicy"
```

**Untuk memperbarui filter langganan untuk mulai menggunakan organisasi IDs untuk izin log lintas akun**

1. Buat kebijakan kepercayaan berikut dalam sebuah file`~/TrustPolicyForCWL.json`. Gunakan editor teks untuk membuat file kebijakan ini; jangan gunakan konsol IAM.

   ```
   {
     "Statement": {
       "Effect": "Allow",
       "Principal": { "Service": "logs.amazonaws.com" },
       "Action": "sts:AssumeRole"
     }
   }
   ```

1. Buat peran IAM yang menggunakan kebijakan ini. Perhatikan nilai `Arn` `Arn` nilai yang dikembalikan oleh perintah, Anda akan membutuhkannya nanti dalam prosedur ini. Dalam contoh ini, kita gunakan `CWLtoSubscriptionFilterRole` untuk nama peran yang kita buat.

   ```
   aws iam create-role 
       \ --role-name CWLtoSubscriptionFilterRole 
       \ --assume-role-policy-document file://~/TrustPolicyForCWL.json
   ```

1. Buat kebijakan izin untuk menentukan tindakan yang dapat dilakukan CloudWatch Log di akun Anda.

   1. Pertama, gunakan editor teks untuk membuat kebijakan izin berikut dalam file bernama`/PermissionsForCWLSubscriptionFilter.json`.

      ```
      { 
          "Statement": [ 
              { 
                  "Effect": "Allow", 
                  "Action": "logs:PutLogEvents", 
                  "Resource": "arn:aws:logs:region:111111111111:log-group:LogGroupOnWhichSubscriptionFilterIsCreated:*" 
              } 
          ] 
      }
      ```

   1. Masukkan perintah berikut untuk mengaitkan kebijakan izin yang baru saja Anda buat dengan peran yang Anda buat di langkah 2.

      ```
      aws iam put-role-policy 
          --role-name CWLtoSubscriptionFilterRole 
          --policy-name Permissions-Policy-For-CWL-Subscription-filter 
          --policy-document file://~/PermissionsForCWLSubscriptionFilter.json
      ```

1. Masukkan perintah berikut untuk memperbarui kebijakan filter langganan.

   ```
   aws logs put-account-policy \
       --policy-name "CrossAccountStreamsExamplePolicy" \
       --policy-type "SUBSCRIPTION_FILTER_POLICY" \
       --policy-document '{"DestinationArn":"arn:aws:logs:region:999999999999:destination:testDestination", "FilterPattern": "{$.userIdentity.type = Root}", "Distribution": "Random"}' \
       --selection-criteria 'LogGroupName NOT IN ["LogGroupToExclude1", "LogGroupToExclude2"]' \
       --scope "ALL"
   ```

# Langkah 2: Perbarui kebijakan akses tujuan yang ada
<a name="Cross-Account-Log_Subscription-Update-policy-Account"></a>

Setelah memperbarui filter langganan di semua akun pengirim, Anda dapat memperbarui kebijakan akses tujuan di akun penerima.

Dalam contoh berikut, akun penerima adalah `999999999999` dan tujuan diberi nama`testDestination`.

Pembaruan memungkinkan semua akun yang merupakan bagian dari organisasi dengan ID `o-1234567890` untuk mengirim log ke akun penerima. Hanya akun yang memiliki filter langganan yang dibuat yang benar-benar akan mengirim log ke akun penerima.

**Untuk memperbarui kebijakan akses tujuan di akun penerima untuk mulai menggunakan ID organisasi untuk izin**

1. Di akun penerima, gunakan editor teks untuk membuat `~/AccessPolicy.json` file dengan konten berikut.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "",
               "Effect": "Allow",
               "Principal": "*",
               "Action": [
                   "logs:PutSubscriptionFilter",
                   "logs:PutAccountPolicy"
               ],
               "Resource": "arn:aws:logs:us-east-1:999999999999:destination:testDestination",
               "Condition": {
                   "StringEquals": {
                       "aws:PrincipalOrgID": [
                           "o-1234567890"
                       ]
                   }
               }
           }
       ]
   }
   ```

------

1. Masukkan perintah berikut untuk melampirkan kebijakan yang baru saja Anda buat ke tujuan yang ada. Untuk memperbarui tujuan agar menggunakan kebijakan akses dengan ID organisasi, bukan kebijakan akses yang mencantumkan AWS akun tertentu IDs, sertakan `force` parameternya.
**Awas**  
Jika Anda bekerja dengan log yang dikirim oleh AWS layanan yang terdaftar di[Aktifkan pencatatan dari AWS layanan](AWS-logs-and-resource-policy.md), maka sebelum melakukan langkah ini, Anda harus terlebih dahulu memperbarui filter langganan di semua akun pengirim seperti yang dijelaskan di[Langkah 1: Perbarui filter berlangganan](Cross-Account-Log_Subscription-Update-filter-Account.md).

   ```
   aws logs put-destination-policy 
       \ --destination-name "testDestination" 
       \ --access-policy file://~/AccessPolicy.json
       \ --force
   ```