Membuat Enkripsi pada Object di AWS S3

Overview:

Pada tulisan kali ini kita akan mencoba membuat enkripsi pada object yang ada di AWS S3, adapun langkah-langkah yang akan kita lakukan adalah:

  1. Membuat bucket

  2. Membuat Key Management Service (AWS KMS)

  3. Upload file

  4. Akses Object

  5. Buat policy

  6. Akses Kembali Object

  7. Bersihkan S3 dan KMS

Kebutuhan:

  • Akun AWS

  • File sampel, bisa ambil di Github

Langkah-langkah:

Membuat bucket

  1. Buat bucket

    • Masuk ke service S3

    • Create bucket

    • Isi nama bucket dan region

    • Create bucket

Membuat Key Management Service (AWS KMS)

  1. Buat KMS

    • Masuk ke service KMS,

    • Create a key

    • Key type: symmetric

    • Key usage: Encrypt and decrypt

    • Key material origin: KMS

    • Next

    • Isi alias

    • Key deletion biarkan default

    • Next

    • Next

    • Key policy biarkan default

    • Next

Upload File

  1. Upload file tanpa menggunakan enkripsi

    • Upload file

  2. Upload file menggunakan encryption key SSE-S3

    • Upload file menggunakan enkripsi

    • Klik Upload

    • Klik pada bagian Properties

    • Server-side encryption pilih specify an encryption key

    • Encryption key type pilih SSE-S3

    • Upload

  3. Upload file menggunakan encryption key SSE-KMS

    • Upload file menggunakan enkripsi

    • Klik Upload

    • Add files

    • Klik pada bagian Properties

    • Server-side encryption pilih specify an encryption key

    • Encryption key type pilih SSE-S3

    • AWS KMS key pilih choose from your AWS KMS keys

    • Pilih KMS yang sudah kita buat sebelumnya

    • Upload

  4. Lihat Object

Lihat File Object

  1. Lihat file object tanpa menggunakan enkripsi

  2. Lihat file object menggunakan enkripsi SSE-S3

  3. Lihat file object menggunakan enkripsi SSE-KMS

Buat policy

Buat policy untuk mencegah akses ke kms

  • Ke IAM

  • Users

  • Pilih iamadmin

  • Klik add inline policy

  • Isi Json file

      {
          "Version": "2012-10-17",
          "Statement": [
              {
                  "Sid": "Denykms",
                  "Effect": "Deny",
                  "Action": "kms:*",
                  "Resource": "*"
              }
          ]
      }
    

  • Review policy

  • Isi nama denyKMS

  • Create policy

Akses Kembali Object

  1. Lihat file object tanpa menggunakan enkripsi

  2. Lihat file object menggunakan enkripsi SSE-S3

  3. Lihat file object menggunakan enkripsi SSE-KMS

    Terlihat pada pesan error diatas kita tidak diberikan akses terhadap file tersebut, karena sebelumnya kita sudah membuat policy untuk tidak mengijinkan akses kedalam service KMS.

Bersihkan S3 dan KMS

  1. Hapus Bucket

  2. Hapus Inline policy (denyKMS)

  3. Hapus KMS

Referensi:

https://docs.aws.amazon.com/kms/latest/developerguide/services-s3.html

learn cantrill - aws sysops training