

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

# Penyimpanan sementara tugas Fargate untuk Amazon ECS
<a name="fargate-task-storage"></a>

Saat disediakan, setiap tugas Amazon ECS yang dihosting di container Linux AWS Fargate menerima penyimpanan singkat berikut untuk pemasangan bind. Ini dapat dipasang dan dibagikan di antara kontainer yang menggunakan `volumes``mountPoints`,, dan `volumesFrom` parameter dalam definisi tugas. Ini tidak didukung untuk wadah Windows aktif AWS Fargate.

## Versi platform wadah Fargate Linux
<a name="fargate-task-storage-linux-pv"></a>

### Versi 1.4.0 atau yang lebih baru
<a name="fargate-task-storage-pv14"></a>

Secara default, tugas Amazon ECS yang di-host di Fargate menggunakan `1.4.0` versi platform atau yang lebih baru menerima minimal 20 GiB penyimpanan sementara. Jumlah total penyimpanan fana dapat ditingkatkan, hingga maksimum 200 GiB. Anda dapat melakukan ini dengan menentukan `ephemeralStorage` parameter dalam definisi tugas Anda.

Citra kontainer yang ditarik, dikompresi, dan tidak dikompresi untuk tugas disimpan di penyimpanan sementara. Untuk menentukan jumlah total penyimpanan sementara yang harus digunakan tugas Anda, Anda harus mengurangi jumlah penyimpanan yang digunakan citra kontainer Anda dari jumlah total penyimpanan sementara yang dialokasikan tugas Anda.

Untuk tugas yang menggunakan versi platform `1.4.0` atau yang lebih baru yang diluncurkan pada 28 Mei 2020 atau lebih baru, penyimpanan sementara dienkripsi dengan algoritme enkripsi AES-256. Algoritma ini menggunakan kunci enkripsi yang AWS dimiliki, atau Anda dapat membuat kunci yang dikelola pelanggan Anda sendiri. Untuk informasi selengkapnya, lihat [Kunci terkelola pelanggan AWS Fargate untuk penyimpanan sementara](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/fargate-storage-encryption.html).

Untuk tugas yang menggunakan versi platform `1.4.0` atau yang lebih baru yang diluncurkan pada 18 November 2022 atau lebih baru, penggunaan penyimpanan sementara dilaporkan melalui titik akhir metadata tugas. Aplikasi Anda dalam tugas Anda dapat menanyakan titik akhir metadata tugas versi 4 untuk mendapatkan ukuran cadangan penyimpanan sementara dan jumlah yang digunakan. 

 Selain itu, ukuran cadangan penyimpanan sementara dan jumlah yang digunakan akan dikirim ke Amazon CloudWatch Wawasan Kontainer jika Anda mengaktifkan Wawasan Kontainer.

**catatan**  
Fargate mencadangkan ruang pada disk. Ruang ini hanya digunakan oleh Fargate. Anda tidak akan dikenai biaya untuk ruang tersebut. Ruang ini tidak akan ditampilkan dalam metrik ini. Namun demikian, Anda dapat melihat penyimpanan tambahan ini di alat lain seperti `df`.

### Versi 1.3.0 atau sebelumnya
<a name="fargate-task-storage-pv13"></a>

Untuk Amazon ECS pada tugas Fargate yang menggunakan `1.3.0` versi platform atau versi sebelumnya, setiap tugas menerima penyimpanan singkat berikut.
+ Penyimpanan lapisan Docker 10 GB
**catatan**  
Jumlah ini mencakup artifact citra kontainer terkompresi dan tidak terkompresi.
+ Tambahan 4 GB untuk pemasangan volume. Ini dapat dipasang dan dibagikan di antara kontainer yang menggunakan `volumes``mountPoints`,, dan `volumesFrom` parameter dalam definisi tugas.

## Fargate versi platform wadah Windows
<a name="fargate-task-storage-windows-pv"></a>

### Versi 1.0.0 atau yang lebih baru
<a name="fargate-task-storage-pvws1"></a>

Secara default, tugas Amazon ECS yang di-host di Fargate menggunakan `1.0.0` versi platform atau yang lebih baru menerima minimal 20 GiB penyimpanan sementara. Jumlah total penyimpanan fana dapat ditingkatkan, hingga maksimum 200 GiB. Anda dapat melakukan ini dengan menentukan `ephemeralStorage` parameter dalam definisi tugas Anda.

Citra kontainer yang ditarik, dikompresi, dan tidak dikompresi untuk tugas disimpan di penyimpanan sementara. Untuk menentukan jumlah total penyimpanan sementara yang harus digunakan tugas Anda, Anda harus mengurangi jumlah penyimpanan yang digunakan gambar kontainer Anda dari jumlah total penyimpanan sementara yang dialokasikan tugas Anda.

Untuk informasi selengkapnya, lihat [Gunakan bind mount dengan Amazon ECS](bind-mounts.md).

# Kunci yang dikelola pelanggan untuk penyimpanan AWS Fargate singkat untuk Amazon ECS
<a name="fargate-storage-encryption"></a>

AWS Fargate mendukung kunci terkelola pelanggan untuk mengenkripsi data untuk tugas Amazon ECS yang disimpan dalam penyimpanan sementara untuk membantu pelanggan yang sensitif terhadap peraturan memenuhi kebijakan keamanan internal mereka. Pelanggan masih mendapatkan manfaat tanpa server dari Fargate, sambil memberikan visibilitas yang ditingkatkan pada enkripsi penyimpanan yang dikelola sendiri kepada auditor kepatuhan. Sementara Fargate memiliki enkripsi penyimpanan sementara yang dikelola Fargate secara default, pelanggan juga dapat menggunakan kunci yang dikelola sendiri saat mengenkripsi data sensitif seperti informasi terkait keuangan atau kesehatan.

Anda dapat mengimpor kunci Anda sendiri ke dalam AWS KMS atau membuat kunci di AWS KMS. Kunci yang dikelola sendiri ini disimpan AWS KMS dan melakukan tindakan AWS KMS siklus hidup standar seperti memutar, menonaktifkan, dan menghapus. Anda dapat mengaudit akses kunci dan penggunaan dalam CloudTrail log.

Secara default, kunci KMS mendukung 50.000 hibah per kunci. Fargate menggunakan AWS KMS hibah tunggal per tugas kunci yang dikelola pelanggan, sehingga mendukung hingga 50.000 tugas bersamaan untuk sebuah kunci. Jika Anda ingin menambah jumlah ini, Anda dapat meminta kenaikan batas, yang disetujui atas case-by-case dasar.

Fargate tidak mengenakan biaya tambahan apa pun untuk menggunakan kunci yang dikelola pelanggan. Anda hanya dikenakan harga standar untuk menggunakan AWS KMS kunci untuk penyimpanan dan permintaan API.

**Topics**
+ [Buat kunci enkripsi untuk penyimpanan sementara Fargate untuk Amazon ECS](fargate-create-storage-key.md)
+ [Mengelola AWS KMS kunci untuk penyimpanan fana Fargate untuk Amazon ECS](fargate-managing-kms-key.md)

# Buat kunci enkripsi untuk penyimpanan sementara Fargate untuk Amazon ECS
<a name="fargate-create-storage-key"></a>

Buat kunci yang dikelola pelanggan untuk mengenkripsi data yang disimpan di penyimpanan sementara Fargate.

**catatan**  
Enkripsi penyimpanan fana Fargate dengan kunci yang dikelola pelanggan tidak tersedia untuk cluster tugas Windows.  
Enkripsi penyimpanan fana Fargate dengan kunci yang dikelola pelanggan tidak tersedia lebih awal dari sebelumnya. `platformVersions` `1.4.0`  
Fargate menyediakan ruang pada penyimpanan sementara yang hanya digunakan oleh Fargate, dan Anda tidak ditagih untuk ruang tersebut. Alokasi mungkin berbeda dari tugas-tugas utama yang dikelola non-pelanggan, tetapi total ruang tetap sama. Anda dapat melihat perubahan ini di alat seperti`df`.  
Kunci Multi-Wilayah tidak didukung untuk penyimpanan sementara Fargate.  
Alias kunci KMS tidak didukung untuk penyimpanan sementara Fargate.

Untuk membuat kunci terkelola pelanggan (CMK) untuk mengenkripsi penyimpanan sementara untuk Fargate, ikuti langkah-langkah ini. AWS KMS

1. Arahkan [https://console---aws.amazon.com.rproxy.goskope.comke/kms](https://console.aws.amazon.com/kms).

1. Ikuti petunjuk untuk [Membuat Kunci](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html) di [Panduan AWS Key Management Service Pengembang](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html).

1. Saat membuat AWS KMS kunci Anda, pastikan untuk memberikan izin AWS KMS operasi yang relevan dengan layanan Fargate dalam kebijakan utama. Operasi API berikut harus diizinkan dalam kebijakan untuk menggunakan kunci terkelola pelanggan Anda dengan sumber daya klaster Amazon ECS Anda.
   + `kms:GenerateDataKeyWithoutPlainText`- Panggilan `GenerateDataKeyWithoutPlainText` untuk menghasilkan kunci data terenkripsi dari kunci yang disediakan AWS KMS .
   + `kms:CreateGrant`- Menambahkan hibah ke kunci yang dikelola pelanggan. Memberikan akses kontrol ke AWS KMS kunci tertentu, yang memungkinkan akses untuk memberikan operasi yang diperlukan Amazon ECS Fargate. Untuk informasi selengkapnya tentang [Menggunakan Hibah](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html), lihat [Panduan AWS Key Management Service Pengembang](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html). Ini memungkinkan Amazon ECS Fargate untuk melakukan hal berikut:
     + Panggil `Decrypt` AWS KMS untuk mendapatkan kunci enkripsi untuk mendekripsi data penyimpanan sementara.
     + Siapkan kepala sekolah yang pensiun untuk memungkinkan layanan. `RetireGrant`
   + `kms:DescribeKey`- Menyediakan detail kunci yang dikelola pelanggan untuk memungkinkan Amazon ECS memvalidasi kunci jika simetris dan diaktifkan.

   Contoh berikut menunjukkan kebijakan AWS KMS kunci yang akan Anda terapkan pada kunci target untuk enkripsi. Untuk menggunakan contoh pernyataan kebijakan, ganti *user input placeholders* dengan informasi Anda sendiri. Seperti biasa, hanya konfigurasikan izin yang Anda butuhkan, tetapi Anda harus memberikan AWS KMS izin kepada setidaknya satu pengguna untuk menghindari kesalahan.

   ```
   {
         "Sid": "Allow generate data key access for Fargate tasks.",
         "Effect": "Allow",
         "Principal": { "Service":"fargate.amazonaws.com" },
         "Action": [
           "kms:GenerateDataKeyWithoutPlaintext"
         ],
         "Condition": {
           "StringEquals": {
             "kms:EncryptionContext:aws:ecs:clusterAccount": [
               "customerAccountId"
             ],
             "kms:EncryptionContext:aws:ecs:clusterName": [
                "clusterName"
             ]   
           }
         },
         "Resource": "*"
       },
       {
         "Sid": "Allow grant creation permission for Fargate tasks.",
         "Effect": "Allow",
         "Principal": { "Service":"fargate.amazonaws.com" },
         "Action": [
           "kms:CreateGrant"
         ],
         "Condition": {
           "StringEquals": {
             "kms:EncryptionContext:aws:ecs:clusterAccount": [
               "customerAccountId"
             ],
             "kms:EncryptionContext:aws:ecs:clusterName": [
                "clusterName"
             ]   
           },
          "ForAllValues:StringEquals": {
             "kms:GrantOperations": [
                "Decrypt"
             ]
          }
         },
         "Resource": "*"
       },
       {
         "Sid": "Allow describe key permission for cluster operator - CreateCluster and UpdateCluster.",
         "Effect": "Allow",
         "Principal": { "AWS":"arn:aws:iam::customerAccountId:role/customer-chosen-role" },
         "Action": [
           "kms:DescribeKey"
         ],
         "Resource": "*"
       }
   ```

   Tugas Fargate menggunakan kunci konteks `aws:ecs:clusterAccount` dan `aws:ecs:clusterName` enkripsi untuk operasi kriptografi dengan kunci. Pelanggan harus menambahkan izin ini untuk membatasi akses ke klaster akun and/or tertentu. Gunakan nama cluster dan bukan ARN saat Anda menentukan cluster.

   Untuk informasi lebih lanjut, lihat [Konteks enkripsi](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context) di [Panduan Developer AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html).

   Saat membuat atau memperbarui cluster, Anda memiliki opsi untuk menggunakan kunci kondisi`fargateEphemeralStorageKmsKeyId`. Kunci kondisi ini memungkinkan pelanggan untuk memiliki kontrol yang lebih terperinci terhadap kebijakan IAM. Pembaruan `fargateEphemeralStorageKmsKeyId` konfigurasi hanya berlaku pada penerapan layanan baru.

   Berikut ini adalah contoh mengizinkan pelanggan untuk memberikan izin hanya untuk satu set AWS KMS kunci tertentu yang disetujui.

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

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Action": [
           "ecs:CreateCluster",
           "ecs:UpdateCluster"
         ],
         "Resource": "*",
         "Condition": {
           "StringEquals": {
             "ecs:fargate-ephemeral-storage-kms-key": "arn:aws:kms:us-west-2:111122223333:key/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111"
           }
         }
       }
     ]
   }
   ```

------

   Berikutnya adalah contoh untuk menolak upaya untuk menghapus AWS KMS kunci yang sudah dikaitkan dengan cluster.

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

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": {
       "Effect": "Deny",
       "Action": [
           "ecs:CreateCluster",
           "ecs:UpdateCluster"
       ],
       "Resource": "*",
       "Condition": {
         "Null": {
           "ecs:fargate-ephemeral-storage-kms-key": "true"
         }
       }
     }
   }
   ```

------

   Pelanggan dapat melihat apakah tugas atau tugas layanan mereka yang tidak dikelola dienkripsi menggunakan kunci dengan menggunakan AWS CLI `describe-tasks`,`describe-cluster`, atau perintah. `describe-services`

   Untuk informasi selengkapnya, lihat [Kunci kondisi untuk AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/policy-conditions.html) di [Panduan AWS KMS Pengembang](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html).

------
#### [ Konsol Manajemen AWS ]

1. Buka konsol di [https://console.aws.amazon.com/ecs/v2](https://console.aws.amazon.com/ecs/v2).

1. Pilih **Cluster** di navigasi kiri dan **Buat cluster** di kanan atas, atau pilih cluster yang ada. Untuk klaster yang ada, pilih **Perbarui cluster** di kanan atas.

1. Di bawah bagian **Enkripsi** alur kerja, Anda akan memiliki opsi untuk memilih AWS KMS kunci Anda di bawah **Penyimpanan terkelola dan penyimpanan** sementara **Fargate**. Anda juga dapat memilih untuk **membuat AWS KMS kunci** dari sini.

1. Pilih **Buat** setelah Anda selesai membuat klaster baru atau **Perbarui**, jika Anda memperbarui yang sudah ada.

------
#### [ AWS CLI ]

Berikut ini adalah contoh membuat cluster dan mengonfigurasi penyimpanan sementara Fargate Anda menggunakan (ganti *red* nilainya dengan AWS CLI milik Anda sendiri):

```
aws ecs create-cluster --cluster clusterName \
--configuration '{"managedStorageConfiguration":{"fargateEphemeralStorageKmsKeyId":"arn:aws:kms:us-west-2:012345678901:key/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111"}}'
{
    "cluster": {
        "clusterArn": "arn:aws:ecs:us-west-2:012345678901:cluster/clusterName",
        "clusterName": "clusterName",
        "configuration": {
            "managedStorageConfiguration": {
                "fargateEphemeralStorageKmsKeyId": "arn:aws:kms:us-west-2:012345678901:key/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111"
            }
        },
        "status": "ACTIVE",
        "registeredContainerInstancesCount": 0,
        "runningTasksCount": 0,
        "pendingTasksCount": 0,
        "activeServicesCount": 0,
        "statistics": [],
        "tags": [],
        "settings": [],
        "capacityProviders": [],
        "defaultCapacityProviderStrategy": []
    },
    "clusterCount": 5
}
```

------
#### [ CloudFormation ]

Berikut ini adalah contoh template untuk membuat cluster dan mengonfigurasi penyimpanan sementara Fargate Anda menggunakan (ganti *red* nilainya dengan CloudFormation milik Anda sendiri):

```
AWSTemplateFormatVersion: 2010-09-09
Resources:
  MyCluster: 
    Type: AWS::ECS::Cluster
    Properties: 
      ClusterName: "clusterName" 
      Configuration:
        ManagedStorageConfiguration:
          FargateEphemeralStorageKmsKeyId: "arn:aws:kms:us-west-2:012345678901:key/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111"
```

------

# Mengelola AWS KMS kunci untuk penyimpanan fana Fargate untuk Amazon ECS
<a name="fargate-managing-kms-key"></a>

Setelah membuat atau mengimpor AWS KMS kunci Anda untuk mengenkripsi penyimpanan sementara Fargate Anda, Anda mengelolanya dengan cara yang sama seperti yang Anda lakukan pada kunci lainnya. AWS KMS 

**Rotasi AWS KMS tombol otomatis**  
Anda dapat mengaktifkan rotasi tombol otomatis atau memutarnya secara manual. Rotasi kunci otomatis memutar kunci untuk Anda setiap tahun dengan menghasilkan materi kriptografi baru untuk kunci tersebut. AWS KMS juga menyimpan semua versi sebelumnya dari materi kriptografi, sehingga Anda akan dapat mendekripsi data apa pun yang menggunakan versi kunci sebelumnya. Materi yang diputar tidak akan dihapus AWS KMS sampai Anda menghapus kunci.

Rotasi tombol otomatis bersifat opsional dan dapat diaktifkan atau dinonaktifkan kapan saja.

**Menonaktifkan atau mencabut kunci AWS KMS**  
Jika Anda menonaktifkan kunci yang dikelola pelanggan AWS KMS, itu tidak berdampak pada menjalankan tugas, dan mereka terus berfungsi melalui siklus hidupnya. Jika tugas baru menggunakan kunci yang dinonaktifkan atau dicabut, tugas gagal karena tidak dapat mengakses kunci. Anda harus mengatur CloudWatch alarm atau serupa untuk memastikan kunci yang dinonaktifkan tidak pernah diperlukan untuk mendekripsi data yang sudah dienkripsi.

**Menghapus kunci AWS KMS**  
Menghapus kunci harus selalu menjadi pilihan terakhir dan hanya boleh dilakukan jika Anda yakin kunci yang dihapus tidak pernah diperlukan lagi. Tugas baru yang mencoba menggunakan kunci yang dihapus akan gagal karena mereka tidak dapat mengaksesnya. AWS KMS menyarankan untuk menonaktifkan kunci alih-alih menghapusnya. Jika Anda merasa perlu untuk menghapus kunci, kami sarankan menonaktifkannya terlebih dahulu dan mengatur CloudWatch alarm untuk memastikan itu tidak diperlukan. Jika Anda menghapus kunci, AWS KMS sediakan setidaknya tujuh hari untuk mengubah pikiran Anda.

**Akses AWS KMS kunci audit**  
Anda dapat menggunakan CloudTrail log untuk mengaudit akses ke AWS KMS kunci Anda. Anda dapat memeriksa AWS KMS operasi`CreateGrant`,`GenerateDataKeyWithoutPlaintext`, dan`Decrypt`. Operasi ini juga menunjukkan `aws:ecs:clusterAccount` dan `aws:ecs:clusterName` sebagai bagian dari `EncryptionContext` login CloudTrail.

Berikut ini adalah contoh CloudTrail peristiwa untuk`GenerateDataKeyWithoutPlaintext`,`GenerateDataKeyWithoutPlaintext (DryRun)`,`CreateGrant`,`CreateGrant (DryRun)`, dan `RetireGrant` (ganti *red* nilai dengan milik Anda sendiri).

------
#### [ GenerateDataKeyWithoutPlaintext ]

```
{
    "eventVersion": "1.08",
    "userIdentity": {
        "type": "AWSService",
        "invokedBy": "ec2-frontend-api.amazonaws.com"
    },
    "eventTime": "2024-04-23T18:08:13Z",
    "eventSource": "kms.amazonaws.com",
    "eventName": "GenerateDataKeyWithoutPlaintext",
    "awsRegion": "us-west-2",
    "sourceIPAddress": "ec2-frontend-api.amazonaws.com",
    "userAgent": "ec2-frontend-api.amazonaws.com",
    "requestParameters": {
        "numberOfBytes": 64,
        "keyId": "arn:aws:kms:us-west-2:account-id:key/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111",
        "encryptionContext": {
            "aws:ecs:clusterAccount": "account-id",
            "aws:ebs:id": "vol-xxxxxxx",
            "aws:ecs:clusterName": "cluster-name"
        }
    },
    "responseElements": null,
    "requestID": "a1b2c3d4-5678-90ab-cdef-EXAMPLE22222",
    "eventID": "a1b2c3d4-5678-90ab-cdef-EXAMPLE33333",
    "readOnly": true,
    "resources": [
        {
            "accountId": "AWS Internal",
            "type": "AWS::KMS::Key",
            "ARN": "arn:aws:kms:us-west-2:account-id:key/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111"
        }
    ],
    "eventType": "AwsApiCall",
    "managementEvent": true,
    "recipientAccountId": "account-id",
    "sharedEventID": "a1b2c3d4-5678-90ab-cdef-EXAMPLEaaaaa",
    "eventCategory": "Management"
}
```

------
#### [ GenerateDataKeyWithoutPlaintext (DryRun) ]

```
{
    "eventVersion": "1.08",
    "userIdentity": {
        "type": "AWSService",
        "invokedBy": "fargate.amazonaws.com"
    },
    "eventTime": "2024-04-23T18:08:11Z",
    "eventSource": "kms.amazonaws.com",
    "eventName": "GenerateDataKeyWithoutPlaintext",
    "awsRegion": "us-west-2",
    "sourceIPAddress": "fargate.amazonaws.com",
    "userAgent": "fargate.amazonaws.com",
    "errorCode": "DryRunOperationException",
    "errorMessage": "The request would have succeeded, but the DryRun option is set.",
    "requestParameters": {
        "keyId": "arn:aws:kms:us-west-2:account-id:key/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111",
        "dryRun": true,
        "numberOfBytes": 64,
        "encryptionContext": {
            "aws:ecs:clusterAccount": "account-id",
            "aws:ecs:clusterName": "cluster-name"
        }
    },
    "responseElements": null,
    "requestID": "a1b2c3d4-5678-90ab-cdef-EXAMPLE22222",
    "eventID": "a1b2c3d4-5678-90ab-cdef-EXAMPLE33333",
    "readOnly": true,
    "resources": [
        {
            "accountId": "AWS Internal",
            "type": "AWS::KMS::Key",
            "ARN": "arn:aws:kms:us-west-2:account-id:key/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111"
        }
    ],
    "eventType": "AwsApiCall",
    "managementEvent": true,
    "recipientAccountId": "account-id",
    "sharedEventID": "a1b2c3d4-5678-90ab-cdef-EXAMPLEaaaaa",
    "eventCategory": "Management"
}
```

------
#### [ CreateGrant ]

```
{
    "eventVersion": "1.08",
    "userIdentity": {
        "type": "AWSService",
        "invokedBy": "ec2-frontend-api.amazonaws.com"
    },
    "eventTime": "2024-04-23T18:08:13Z",
    "eventSource": "kms.amazonaws.com",
    "eventName": "CreateGrant",
    "awsRegion": "us-west-2",
    "sourceIPAddress": "ec2-frontend-api.amazonaws.com",
    "userAgent": "ec2-frontend-api.amazonaws.com",
    "requestParameters": {
        "keyId": "arn:aws:kms:us-west-2:account-id:key/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111",
        "granteePrincipal": "fargate.us-west-2.amazonaws.com",
        "operations": [
            "Decrypt"
        ],
        "constraints": {
            "encryptionContextSubset": {
                "aws:ecs:clusterAccount": "account-id",
                "aws:ebs:id": "vol-xxxx",
                "aws:ecs:clusterName": "cluster-name"
            }
        },
        "retiringPrincipal": "ec2.us-west-2.amazonaws.com"
    },
    "responseElements": {
        "grantId": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
        "keyId": "arn:aws:kms:us-west-2:account-id:key/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111"
    },
    "requestID": "a1b2c3d4-5678-90ab-cdef-EXAMPLE22222",
    "eventID": "a1b2c3d4-5678-90ab-cdef-EXAMPLE33333",
    "readOnly": false,
    "resources": [
        {
            "accountId": "AWS Internal",
            "type": "AWS::KMS::Key",
            "ARN": "arn:aws:kms:us-west-2:account-id:key/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111"
        }
    ],
    "eventType": "AwsApiCall",
    "managementEvent": true,
    "recipientAccountId": "account-id",
    "sharedEventID": "a1b2c3d4-5678-90ab-cdef-EXAMPLEaaaaa",
    "eventCategory": "Management"
}
```

------
#### [ CreateGrant (DryRun) ]

```
{
    "eventVersion": "1.08",
    "userIdentity": {
        "type": "AWSService",
        "invokedBy": "fargate.amazonaws.com"
    },
    "eventTime": "2024-04-23T18:08:11Z",
    "eventSource": "kms.amazonaws.com",
    "eventName": "CreateGrant",
    "awsRegion": "us-west-2",
    "sourceIPAddress": "fargate.amazonaws.com",
    "userAgent": "fargate.amazonaws.com",
    "errorCode": "DryRunOperationException",
    "errorMessage": "The request would have succeeded, but the DryRun option is set.",
    "requestParameters": {
        "keyId": "arn:aws:kms:us-west-2:account-id:key/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111",
        "granteePrincipal": "fargate.us-west-2.amazonaws.com",
        "dryRun": true,
        "operations": [
            "Decrypt"
        ],
        "constraints": {
            "encryptionContextSubset": {
                "aws:ecs:clusterAccount": "account-id",
                "aws:ecs:clusterName": "cluster-name"
            }
        }
    },
    "responseElements": null,
    "requestID": "a1b2c3d4-5678-90ab-cdef-EXAMPLE22222",
    "eventID": "a1b2c3d4-5678-90ab-cdef-EXAMPLE33333",
    "readOnly": false,
    "resources": [
        {
            "accountId": "AWS Internal",
            "type": "AWS::KMS::Key",
            "ARN": "arn:aws:kms:us-west-2:account-id:key/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111"
        }
    ],
    "eventType": "AwsApiCall",
    "managementEvent": true,
    "recipientAccountId": "account-id",
    "sharedEventID": "a1b2c3d4-5678-90ab-cdef-EXAMPLEaaaaa",
    "eventCategory": "Management"
}
```

------
#### [ RetireGrant ]

```
{
    "eventVersion": "1.08",
    "userIdentity": {
        "type": "AWSService",
        "invokedBy": "AWS Internal"
    },
    "eventTime": "2024-04-20T18:37:38Z",
    "eventSource": "kms.amazonaws.com",
    "eventName": "RetireGrant",
    "awsRegion": "us-west-2",
    "sourceIPAddress": "AWS Internal",
    "userAgent": "AWS Internal",
    "requestParameters": null,
    "responseElements": {
        "keyId": "arn:aws:kms:us-west-2:account-id:key/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111"
    },
    "additionalEventData": {
        "grantId": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
    },
    "requestID": "a1b2c3d4-5678-90ab-cdef-EXAMPLE22222",
    "eventID": "a1b2c3d4-5678-90ab-cdef-EXAMPLE33333",
    "readOnly": false,
    "resources": [
        {
            "accountId": "AWS Internal",
            "type": "AWS::KMS::Key",
            "ARN": "arn:aws:kms:us-west-2:account-id:key/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111"
        }
    ],
    "eventType": "AwsApiCall",
    "managementEvent": true,
    "recipientAccountId": "account-id",
    "sharedEventID": "a1b2c3d4-5678-90ab-cdef-EXAMPLEaaaaa",
    "eventCategory": "Management"
}
```

------