

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

# Menyiapkan langganan lintas akun baru


Ikuti langkah-langkah di bagian ini untuk menyiapkan langganan log lintas akun baru.

**Topics**
+ [

# Langkah 1: Buat tujuan
](CreateDestination.md)
+ [

# Langkah 2: (Hanya jika menggunakan organisasi) Buat peran IAM
](CreateSubscriptionFilter-IAMrole.md)
+ [

# Langkah 3: Add/validate Izin IAM untuk tujuan lintas akun
](Subscription-Filter-CrossAccount-Permissions.md)
+ [

# Langkah 4: Buat filter berlangganan
](CreateSubscriptionFilter.md)
+ [

# Validasi alur peristiwa log
](ValidateLogEventFlow.md)
+ [

# Ubah keanggotaan tujuan saat runtime
](ModifyDestinationMembership.md)

# Langkah 1: Buat tujuan


**penting**  
Semua langkah dalam prosedur ini harus dilakukan di akun penerima data log.

Untuk contoh ini, akun penerima data log memiliki ID akun 999999999999, sedangkan ID AWS akun pengirim AWS data log adalah 111111111111.

 Contoh ini membuat tujuan menggunakan aliran Amazon Kinesis Data RecipientStream Streams yang disebut, dan peran CloudWatch yang memungkinkan Log untuk menulis data ke sana. 

Saat tujuan dibuat, CloudWatch Log mengirimkan pesan pengujian ke tujuan atas nama akun penerima. Saat filter langganan aktif nanti, CloudWatch Log mengirimkan peristiwa log ke tujuan atas nama akun sumber.

**Untuk membuat tujuan**

1. Di akun penerima, buat aliran tujuan di Amazon Kinesis Data Streams. Di jendela perintah, ketik:

   ```
   aws kinesis create-stream --stream-name "RecipientStream" --shard-count 1
   ```

1. Tunggu hingga streaming menjadi aktif. **Anda dapat menggunakan perintah **aws kinesis describe-stream** untuk memeriksa. StreamDescription StreamStatus**properti. Selain itu, perhatikan **StreamDescriptionnilai.streaMarn** karena Anda akan meneruskannya ke CloudWatch Log nanti:

   ```
   aws kinesis describe-stream --stream-name "RecipientStream"
   {
     "StreamDescription": {
       "StreamStatus": "ACTIVE",
       "StreamName": "RecipientStream",
       "StreamARN": "arn:aws:kinesis:us-east-1:999999999999:stream/RecipientStream",
       "Shards": [
         {
           "ShardId": "shardId-000000000000",
           "HashKeyRange": {
             "EndingHashKey": "34028236692093846346337460743176EXAMPLE",
             "StartingHashKey": "0"
           },
           "SequenceNumberRange": {
             "StartingSequenceNumber": "4955113521868881845667950383198145878459135270218EXAMPLE"
           }
         }
       ]
     }
   }
   ```

   Mungkin diperlukan satu atau dua menit bagi pengaliran Anda untuk muncul dalam keadaan aktif.

1. Buat peran IAM yang memberikan izin kepada CloudWatch Log untuk memasukkan data ke aliran Anda. Pertama, Anda harus membuat kebijakan kepercayaan dalam file **\$1/ TrustPolicyFor CWL.json**. Gunakan editor teks untuk membuat file kebijakan ini, jangan menggunakan konsol IAM.

   Kebijakan ini mencakup kunci konteks kondisi `aws:SourceArn` global yang menentukan `sourceAccountId` untuk membantu mencegah masalah keamanan wakil yang membingungkan. Jika Anda belum mengetahui ID akun sumber pada panggilan pertama, kami sarankan Anda memasukkan ARN tujuan di bidang ARN sumber. Dalam panggilan berikutnya, Anda harus mengatur ARN sumber menjadi ARN sumber sebenarnya yang Anda kumpulkan dari panggilan pertama. Untuk informasi selengkapnya, lihat [Pencegahan Deputi Bingung](Subscriptions-confused-deputy.md). 

   ```
   {
       "Statement": {
           "Effect": "Allow",
           "Principal": {
               "Service": "logs.amazonaws.com"
           },
           "Condition": {
               "StringLike": {
                   "aws:SourceArn": [
                       "arn:aws:logs:region:sourceAccountId:*",
                       "arn:aws:logs:region:recipientAccountId:*"
                   ]
               }
           },
           "Action": "sts:AssumeRole"
       }
   }
   ```

1. Gunakan perintah **aws iam create-role** untuk membuat IAM role, dengan menentukan file kebijakan kepercayaan. Perhatikan nilai Role.Arn yang dikembalikan karena itu juga akan diteruskan ke Log nanti: CloudWatch 

   ```
   aws iam create-role \
   --role-name CWLtoKinesisRole \
   --assume-role-policy-document file://~/TrustPolicyForCWL.json
   
   {
       "Role": {
           "AssumeRolePolicyDocument": {
               "Statement": {
                   "Action": "sts:AssumeRole",
                   "Effect": "Allow",
                   "Condition": {
                       "StringLike": {
                           "aws:SourceArn": [
                               "arn:aws:logs:region:sourceAccountId:*",
                               "arn:aws:logs:region:recipientAccountId:*"
                           ]
                       }
                   },
                   "Principal": {
                       "Service": "logs.amazonaws.com"
                   }
               }
           },
           "RoleId": "AAOIIAH450GAB4HC5F431",
           "CreateDate": "2015-05-29T13:46:29.431Z",
           "RoleName": "CWLtoKinesisRole",
           "Path": "/",
           "Arn": "arn:aws:iam::999999999999:role/CWLtoKinesisRole"
       }
   }
   ```

1. Buat kebijakan izin untuk menentukan tindakan yang dapat dilakukan CloudWatch Log di akun Anda. Pertama, gunakan editor teks untuk membuat kebijakan izin dalam file **\$1/ PermissionsFor** CWL.json:

   ```
   {
     "Statement": [
       {
         "Effect": "Allow",
         "Action": "kinesis:PutRecord",
         "Resource": "arn:aws:kinesis:region:999999999999:stream/RecipientStream"
       }
     ]
   }
   ```

1. Kaitkan kebijakan izin dengan peran dengan menggunakan perintah **aws iam: put-role-policy**

   ```
   aws iam put-role-policy \
       --role-name CWLtoKinesisRole \
       --policy-name Permissions-Policy-For-CWL \
       --policy-document file://~/PermissionsForCWL.json
   ```

1. Setelah aliran dalam keadaan aktif dan Anda telah membuat peran IAM, Anda dapat membuat tujuan CloudWatch Log.

   1. Langkah ini tidak mengaitkan kebijakan akses dengan tujuan Anda dan hanya langkah pertama dari dua langkah yang menyelesaikan pembuatan tujuan. Catat **DestinationArn**yang dikembalikan dalam muatan:

      ```
      aws logs put-destination \
          --destination-name "testDestination" \
          --target-arn "arn:aws:kinesis:region:999999999999:stream/RecipientStream" \
          --role-arn "arn:aws:iam::999999999999:role/CWLtoKinesisRole"
      
      {
        "DestinationName" : "testDestination",
        "RoleArn" : "arn:aws:iam::999999999999:role/CWLtoKinesisRole",
        "DestinationArn" : "arn:aws:logs:us-east-1:999999999999:destination:testDestination",
        "TargetArn" : "arn:aws:kinesis:us-east-1:999999999999:stream/RecipientStream"
      }
      ```

   1. Setelah langkah 7a selesai, di akun penerima data log, kaitkan kebijakan akses dengan tujuan. Kebijakan ini harus menentukan PutSubscriptionFilter tindakan **log:** dan memberikan izin ke akun pengirim untuk mengakses tujuan.

      Kebijakan memberikan izin ke AWS akun yang mengirim log. Anda dapat menentukan hanya satu akun ini dalam kebijakan, atau jika akun pengirim adalah anggota organisasi, kebijakan dapat menentukan ID organisasi organisasi. Dengan cara ini, Anda dapat membuat hanya satu kebijakan untuk mengizinkan beberapa akun dalam satu organisasi mengirim log ke akun tujuan ini.

      Gunakan editor teks untuk membuat file bernama `~/AccessPolicy.json` dengan salah satu pernyataan kebijakan berikut.

      Kebijakan contoh pertama ini memungkinkan semua akun di organisasi yang memiliki ID `o-1234567890` untuk mengirim log ke akun penerima.

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

****  

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

------

      Contoh berikutnya ini memungkinkan hanya akun pengirim data log (111111111111) untuk mengirim log ke akun penerima data log.

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

****  

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": [
              {
                  "Sid": "",
                  "Effect": "Allow",
                  "Principal": {
                      "AWS": "111111111111"
                  },
                  "Action": "logs:PutSubscriptionFilter",
                  "Resource": "arn:aws:logs:us-east-1:999999999999:destination:testDestination"
              }
          ]
      }
      ```

------

   1. Lampirkan kebijakan yang Anda buat pada langkah sebelumnya ke tujuan.

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

      Kebijakan akses ini memungkinkan pengguna di AWS Akun dengan ID 111111111111 untuk memanggil tujuan dengan ARN arn:aws:logs **PutSubscriptionFilter**::999999999999:destination:testDestination. *region* Upaya pengguna lain untuk menelepon PutSubscriptionFilter terhadap tujuan ini akan ditolak.

      Untuk memvalidasi hak istimewa pengguna berdasarkan kebijakan akses, lihat [Menggunakan Validator Kebijakan](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies_policy-validator.html) dalam *Panduan Pengguna IAM*.

Setelah selesai, jika Anda menggunakan AWS Organizations izin lintas akun, ikuti langkah-langkahnya. [Langkah 2: (Hanya jika menggunakan organisasi) Buat peran IAM](CreateSubscriptionFilter-IAMrole.md) Jika Anda memberikan izin langsung ke akun lain alih-alih menggunakan Organizations, Anda dapat melewati langkah itu dan melanjutkan ke. [Langkah 4: Buat filter berlangganan](CreateSubscriptionFilter.md)

# Langkah 2: (Hanya jika menggunakan organisasi) Buat peran IAM


Di bagian sebelumnya, jika Anda membuat tujuan menggunakan kebijakan akses yang memberikan izin kepada organisasi tempat akun `111111111111` berada, alih-alih memberikan izin langsung ke akun`111111111111`, ikuti langkah-langkah di bagian ini. Jika tidak, Anda dapat melompat ke[Langkah 4: Buat filter berlangganan](CreateSubscriptionFilter.md).

Langkah-langkah di bagian ini membuat peran IAM, yang CloudWatch dapat mengasumsikan dan memvalidasi apakah akun pengirim memiliki izin untuk membuat filter langganan terhadap tujuan penerima. 

Lakukan langkah-langkah di bagian ini di akun pengirim. Peran harus ada di akun pengirim, dan Anda menentukan ARN peran ini dalam filter berlangganan. Dalam contoh ini, akun pengirim adalah`111111111111`.

**Untuk membuat peran IAM yang diperlukan untuk langganan log lintas akun menggunakan AWS Organizations**

1. Buat kebijakan kepercayaan berikut dalam sebuah file`/TrustPolicyForCWLSubscriptionFilter.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 `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://~/TrustPolicyForCWLSubscriptionFilter.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
      ```

Setelah selesai, Anda dapat melanjutkan ke[Langkah 4: Buat filter berlangganan](CreateSubscriptionFilter.md).

# Langkah 3: Add/validate Izin IAM untuk tujuan lintas akun


Menurut logika evaluasi kebijakan AWS lintas akun, untuk mengakses sumber daya lintas akun (seperti aliran Kinesis atau Firehose yang digunakan sebagai tujuan filter langganan), Anda harus memiliki kebijakan berbasis identitas di akun pengirim yang menyediakan akses eksplisit ke sumber tujuan lintas akun. Untuk informasi selengkapnya tentang logika evaluasi kebijakan, lihat [Logika evaluasi kebijakan lintas akun](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic-cross-account.html).

Anda dapat melampirkan kebijakan berbasis identitas ke peran IAM atau pengguna IAM yang Anda gunakan untuk membuat filter langganan. Kebijakan ini harus ada di akun pengiriman. Jika Anda menggunakan peran Administrator untuk membuat filter langganan, Anda dapat melewati langkah ini dan melanjutkan ke[Langkah 4: Buat filter berlangganan](CreateSubscriptionFilter.md).

**Untuk menambah atau memvalidasi izin IAM yang diperlukan untuk lintas akun**

1. Masukkan perintah berikut untuk memeriksa peran IAM atau pengguna IAM mana yang digunakan untuk menjalankan perintah AWS log.

   ```
   aws sts get-caller-identity
   ```

   Perintah tersebut mengembalikan output serupa dengan berikut ini:

   ```
   {
   "UserId": "User ID",
   "Account": "sending account id",
   "Arn": "arn:aws:sending account id:role/user:RoleName/UserName"
   }
   ```

   Catat nilai yang diwakili oleh *RoleName* atau*UserName*.

1.  Konsol Manajemen AWS Masuk ke akun pengiriman dan cari kebijakan terlampir dengan peran IAM atau pengguna IAM yang dikembalikan dalam output perintah yang Anda masukkan pada langkah 1.

1. Verifikasi bahwa kebijakan yang dilampirkan pada peran ini atau pengguna memberikan izin eksplisit untuk memanggil sumber `logs:PutSubscriptionFilter` daya tujuan lintas akun. 

   Kebijakan berikut memberikan izin untuk membuat filter langganan pada sumber daya tujuan apa pun hanya dalam satu AWS akun, akun`999999999999`:

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

****  

   ```
   {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
           {
               "Sid": "AllowSubscriptionFiltersOnAccountResources",
               "Effect": "Allow",
               "Action": "logs:PutSubscriptionFilter",
               "Resource": [
                   "arn:aws:logs:*:*:log-group:*",
                   "arn:aws:logs:*:123456789012:destination:*"
               ]
           }
       ]
   }
   ```

------

   Kebijakan berikut memberikan izin untuk membuat filter langganan hanya pada sumber daya tujuan tertentu yang dinamai `sampleDestination` dalam satu AWS akun, akun`123456789012`:

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "AllowSubscriptionFiltersonAccountResource",
               "Effect": "Allow",
               "Action": "logs:PutSubscriptionFilter",
               "Resource": [
                   "arn:aws:logs:*:*:log-group:*",
                   "arn:aws:logs:*:123456789012:destination:sampleDestination"
               ]
           }
       ]
   }
   ```

------

# Langkah 4: Buat filter berlangganan


Setelah Anda membuat tujuan, akun penerima data log dapat berbagi ARN tujuan (arn:aws:logs:us-east-1:999999999999:destination:testDestination) dengan akun AWS lain sehingga mereka dapat mengirim log acara ke tujuan yang sama. Para pengguna akun pengirim ini kemudian membuat filter langganan pada grup log masing-masing berdasarkan tujuan ini. Filter langganan segera memulai aliran data log waktu nyata dari grup log yang dipilih ke tujuan yang ditentukan.

**catatan**  
Jika Anda memberikan izin untuk filter langganan ke seluruh organisasi, Anda harus menggunakan ARN dari peran IAM yang Anda buat. [Langkah 2: (Hanya jika menggunakan organisasi) Buat peran IAM](CreateSubscriptionFilter-IAMrole.md)

Dalam contoh berikut, filter langganan dibuat di akun pengiriman. filter dikaitkan dengan grup log yang berisi AWS CloudTrail peristiwa sehingga setiap aktivitas yang dicatat yang dibuat oleh AWS kredenal “Root” dikirimkan ke tujuan yang Anda buat sebelumnya. Tujuan itu merangkum aliran yang disebut "”. RecipientStream

Langkah-langkah lainnya di bagian berikut mengasumsikan bahwa Anda telah mengikuti petunjuk dalam [Mengirim CloudTrail Acara ke CloudWatch Log](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/send-cloudtrail-events-to-cloudwatch-logs.html) di *Panduan AWS CloudTrail Pengguna* dan membuat grup log yang berisi CloudTrail peristiwa Anda. Langkah-langkah ini mengasumsikan bahwa nama grup log ini adalah`CloudTrail/logs`.

Ketika Anda memasukkan perintah berikut, pastikan Anda masuk sebagai pengguna IAM atau menggunakan peran IAM yang Anda tambahkan kebijakan untuk, in. [Langkah 3: Add/validate Izin IAM untuk tujuan lintas akun](Subscription-Filter-CrossAccount-Permissions.md)

```
aws logs put-subscription-filter \
    --log-group-name "CloudTrail/logs" \
    --filter-name "RecipientStream" \
    --filter-pattern "{$.userIdentity.type = Root}" \
    --destination-arn "arn:aws:logs:region:999999999999:destination:testDestination"
```

Grup log dan tujuan harus berada di AWS Wilayah yang sama. Namun, tujuan dapat menunjuk ke AWS sumber daya seperti aliran Amazon Kinesis Data Streams yang terletak di Wilayah yang berbeda.

# Validasi alur peristiwa log


Setelah Anda membuat filter langganan, CloudWatch Log meneruskan semua peristiwa log masuk yang cocok dengan pola filter ke aliran yang dienkapsulasi dalam aliran tujuan yang disebut "”. **RecipientStream** Pemilik tujuan dapat memverifikasi bahwa ini terjadi dengan menggunakan get-shard-iterator perintah **aws kinesis untuk mengambil pecahan Amazon Kinesis** Data Streams, dan menggunakan perintah **aws kinesis get-records untuk mengambil beberapa catatan Amazon Kinesis** Data Streams:

```
aws kinesis get-shard-iterator \
      --stream-name RecipientStream \
      --shard-id shardId-000000000000 \
      --shard-iterator-type TRIM_HORIZON

{
    "ShardIterator":
    "AAAAAAAAAAFGU/kLvNggvndHq2UIFOw5PZc6F01s3e3afsSscRM70JSbjIefg2ub07nk1y6CDxYR1UoGHJNP4m4NFUetzfL+wev+e2P4djJg4L9wmXKvQYoE+rMUiFq+p4Cn3IgvqOb5dRA0yybNdRcdzvnC35KQANoHzzahKdRGb9v4scv+3vaq+f+OIK8zM5My8ID+g6rMo7UKWeI4+IWiKEXAMPLE"
}

aws kinesis get-records \
      --limit 10 \
      --shard-iterator
      "AAAAAAAAAAFGU/kLvNggvndHq2UIFOw5PZc6F01s3e3afsSscRM70JSbjIefg2ub07nk1y6CDxYR1UoGHJNP4m4NFUetzfL+wev+e2P4djJg4L9wmXKvQYoE+rMUiFq+p4Cn3IgvqOb5dRA0yybNdRcdzvnC35KQANoHzzahKdRGb9v4scv+3vaq+f+OIK8zM5My8ID+g6rMo7UKWeI4+IWiKEXAMPLE"
```

**catatan**  
Anda mungkin perlu menjalankan kembali perintah get-records beberapa kali sebelum Amazon Kinesis Data Streams mulai mengembalikan data.

Anda akan melihat respons dengan larik catatan Amazon Kinesis Data Streams. Atribut data dalam catatan Amazon Kinesis Data Streams dikompresi dalam format gzip dan kemudian base64 dikodekan. Anda dapat memeriksa data mentah dari baris perintah menggunakan perintah Unix berikut:

```
echo -n "<Content of Data>" | base64 -d | zcat
```

Data yang didekode dan didekompresi base64 diformat sebagai JSON dengan struktur berikut:

```
{
    "owner": "111111111111",
    "logGroup": "CloudTrail/logs",
    "logStream": "111111111111_CloudTrail/logs_us-east-1",
    "subscriptionFilters": [
        "RecipientStream"
    ],
    "messageType": "DATA_MESSAGE",
    "logEvents": [
        {
            "id": "3195310660696698337880902507980421114328961542429EXAMPLE",
            "timestamp": 1432826855000,
            "message": "{\"eventVersion\":\"1.03\",\"userIdentity\":{\"type\":\"Root\"}"
        },
        {
            "id": "3195310660696698337880902507980421114328961542429EXAMPLE",
            "timestamp": 1432826855000,
            "message": "{\"eventVersion\":\"1.03\",\"userIdentity\":{\"type\":\"Root\"}"
        },
        {
            "id": "3195310660696698337880902507980421114328961542429EXAMPLE",
            "timestamp": 1432826855000,
            "message": "{\"eventVersion\":\"1.03\",\"userIdentity\":{\"type\":\"Root\"}"
        }
    ]
}
```

Elemen kunci dalam struktur data ini adalah sebagai berikut:

**owner**  
ID AWS Akun dari data log asal.

**logGroup**  
Nama grup log dari data log asal.

**logStream**  
Nama pengaliran log dari data log asal.

**subscriptionFilters**  
Daftar nama filter langganan yang cocok dengan data log asal.

**messageType**  
Pesan data menggunakan tipe “DATA\$1MESSAGE”. Terkadang CloudWatch Log dapat memancarkan catatan Amazon Kinesis Data Streams dengan tipe “CONTROL\$1MESSAGE”, terutama untuk memeriksa apakah tujuan dapat dijangkau.

**logEvents**  
Data log yang sebenarnya, direpresentasikan sebagai array catatan log acara. Properti ID adalah pengenal unik untuk setiap log acara.

# Ubah keanggotaan tujuan saat runtime


Anda mungkin mengalami situasi ketika Anda harus menambahkan atau menghapus keanggotaan beberapa pengguna dari tujuan yang Anda miliki. Anda dapat menggunakan perintah `put-destination-policy` di tujuan Anda dengan kebijakan akses baru. Dalam contoh berikut, akun **111111111111** yang ditambahkan sudah sebelumnya dihentikan dari mengirim data log lagi, dan akun **222222222222** diaktifkan.

1. Ambil kebijakan yang saat ini terkait dengan **TestDestination** tujuan dan catat: **AccessPolicy**

   ```
   aws logs describe-destinations \
       --destination-name-prefix "testDestination"
   
   {
    "Destinations": [
      {
        "DestinationName": "testDestination",
        "RoleArn": "arn:aws:iam::999999999999:role/CWLtoKinesisRole",
        "DestinationArn": "arn:aws:logs:region:999999999999:destination:testDestination",
        "TargetArn": "arn:aws:kinesis:region:999999999999:stream/RecipientStream",
        "AccessPolicy": "{\"Version\": \"2012-10-17\", \"Statement\": [{\"Sid\": \"\", \"Effect\": \"Allow\", \"Principal\": {\"AWS\": \"111111111111\"}, \"Action\": \"logs:PutSubscriptionFilter\", \"Resource\": \"arn:aws:logs:region:999999999999:destination:testDestination\"}] }"
      }
    ]
   }
   ```

1. Perbarui kebijakan agar menunjukkan bahwa akun **111111111111** dihentikan, dan akun **222222222222** diaktifkan. Letakkan kebijakan ini di file **\$1/ NewAccessPolicy .json**:

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "",
               "Effect": "Allow",
               "Principal": {
                   "AWS": "222222222222"
               },
               "Action": "logs:PutSubscriptionFilter",
               "Resource": "arn:aws:logs:us-east-1:999999999999:destination:testDestination"
           }
       ]
   }
   ```

------

1. Panggilan **PutDestinationPolicy**untuk mengaitkan kebijakan yang ditentukan dalam **NewAccessPolicyfile.json** dengan tujuan:

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

   Ini pada akhirnya akan menonaktifkan log acara dari ID akun **111111111111**. Log acara dari ID akun **222222222222** mulai mengalir ke tujuan segera setelah pemilik akun **222222222222** membuat filter langganan.