Cara menggunakan AWS Enkripsi CLI - AWS Encryption SDK

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

Cara menggunakan AWS Enkripsi CLI

Topik ini menjelaskan cara menggunakan parameter di AWS Encryption CLI. Sebagai contoh, lihat Contoh dariAWSEnkripsi CLI. Untuk dokumentasi lengkap, lihat Membaca Dokumen. Sintaks yang ditunjukkan dalam contoh ini adalah untuk AWS Encryption CLI versi 2.1. x dan kemudian.

catatan

Versi AWS Enkripsi CLI lebih awal dari 4.0.0 berada dalam fase e nd-of-support.

Anda dapat memperbarui dengan aman dari versi 2.1. x dan yang lebih baru ke versi terbaru dari AWS Enkripsi CLI tanpa kode atau perubahan data. Namun, fitur keamanan baru diperkenalkan di versi 2.1. x tidak kompatibel ke belakang. Untuk memperbarui dari versi 1.7. x atau sebelumnya, Anda harus terlebih dahulu memperbarui ke 1 terbaru. x versi AWS Enkripsi CLI. Untuk detailnya, lihat MigrasiAWS Encryption SDK.

Fitur keamanan baru awalnya dirilis di AWS Encryption CLI versi 1.7. x dan 2.0. x. Namun, AWS Enkripsi CLI versi 1.8. x menggantikan versi 1.7. x dan AWS Enkripsi CLI 2.1. x menggantikan 2.0. x. Untuk detailnya, lihat penasihat keamanan yang relevan di aws-encryption-sdk-clirepositori di. GitHub

Untuk contoh yang menunjukkan cara menggunakan fitur keamanan yang membatasi kunci data terenkripsi, lihatMembatasi kunci data terenkripsi.

Untuk contoh yang menunjukkan cara menggunakan kunci AWS KMS Multi-region, lihatMenggunakan Multi-region AWS KMS keys.

Cara mengenkripsi dan mendekripsi data

AWSEnkripsi CLI menggunakan fitur AWS Encryption SDK untuk membuatnya mudah untuk mengenkripsi dan mendekripsi data dengan aman.

catatan

--master-keysParameter tidak digunakan lagi dalam versi 1.8. x dari AWS Enkripsi CLI dan dihapus dalam versi 2.1. x. Sebagai gantinya, gunakan --wrapping-keys parameternya. Dimulai pada versi 2.1. x, --wrapping-keys parameter diperlukan saat mengenkripsi dan mendekripsi. Untuk detailnya, lihat AWS Encryption SDKSintaks CLI dan referensi parameter.

  • Saat Anda mengenkripsi data di AWS Enkripsi CLI, Anda menentukan data teks biasa dan kunci pembungkus (atau kunci utama), seperti in (). AWS KMS key AWS Key Management Service AWS KMS Jika Anda menggunakan penyedia kunci master kustom, Anda juga perlu menentukan penyedia. Anda juga menentukan lokasi keluaran untuk pesan terenkripsi dan metadata tentang operasi enkripsi. Konteks enkripsi bersifat opsional, tetapi disarankan.

    Dalam versi 1.8. x, --commitment-policy parameter diperlukan saat Anda menggunakan --wrapping-keys parameter; jika tidak maka tidak valid. Dimulai pada versi 2.1. x, --commitment-policy parameternya opsional, tetapi disarankan.

    aws-encryption-cli --encrypt --input myPlaintextData \ --wrapping-keys key=1234abcd-12ab-34cd-56ef-1234567890ab \ --output myEncryptedMessage \ --metadata-output ~/metadata \ --encryption-context purpose=test \ --commitment-policy require-encrypt-require-decrypt

    AWSEnkripsi CLI mengenkripsi data Anda di bawah kunci data unik. Kemudian mengenkripsi kunci data di bawah kunci pembungkus yang Anda tentukan. Ia mengembalikan pesan terenkripsi dan metadata tentang operasi. Pesan terenkripsi berisi data terenkripsi Anda (ciphertext) dan salinan kunci data terenkripsi. Anda tidak perlu khawatir tentang menyimpan, mengelola, atau kehilangan kunci data.

     

  • Saat mendekripsi data, Anda meneruskan pesan terenkripsi, konteks enkripsi opsional, dan lokasi untuk output teks biasa dan metadata. Anda juga menentukan kunci pembungkus yang dapat digunakan CLI AWS Enkripsi untuk mendekripsi pesan, atau memberi tahu CLI AWS Enkripsi bahwa CLI dapat menggunakan kunci pembungkus apa pun yang mengenkripsi pesan.

    Dimulai pada versi 1.8. x, --wrapping-keys parameter opsional saat mendekripsi, tetapi disarankan. Dimulai pada versi 2.1. x, --wrapping-keys parameter diperlukan saat mengenkripsi dan mendekripsi.

    Saat mendekripsi, Anda dapat menggunakan atribut kunci --wrapping-keys parameter untuk menentukan kunci pembungkus yang mendekripsi data Anda. Menentukan kunci AWS KMS pembungkus saat mendekripsi adalah opsional, tetapi ini adalah praktik terbaik yang mencegah Anda menggunakan kunci yang tidak ingin Anda gunakan. Jika Anda menggunakan penyedia kunci master kustom, Anda harus menentukan penyedia dan kunci pembungkus.

    Jika Anda tidak menggunakan atribut kunci, Anda harus menyetel atribut discovery --wrapping-keys parameter ketrue, yang memungkinkan AWS Encryption CLI mendekripsi menggunakan kunci pembungkus apa pun yang mengenkripsi pesan.

    Sebagai praktik terbaik, gunakan --max-encrypted-data-keys parameter untuk menghindari mendekripsi pesan yang salah dengan jumlah kunci data terenkripsi yang berlebihan. Tentukan jumlah kunci data terenkripsi yang diharapkan (satu untuk setiap kunci pembungkus yang digunakan dalam enkripsi) atau maksimum yang wajar (seperti 5). Untuk detailnya, lihat Membatasi kunci data terenkripsi.

    --bufferParameter mengembalikan plaintext hanya setelah semua input diproses, termasuk memverifikasi tanda tangan digital jika ada.

    --decrypt-unsignedParameter mendekripsi ciphertext dan memastikan bahwa pesan tidak ditandatangani sebelum dekripsi. Gunakan parameter ini jika Anda menggunakan --algorithm parameter dan memilih rangkaian algoritma tanpa penandatanganan digital untuk mengenkripsi data. Jika ciphertext ditandatangani, dekripsi gagal.

    Anda dapat menggunakan --decrypt atau --decrypt-unsigned untuk dekripsi tetapi tidak keduanya.

    aws-encryption-cli --decrypt --input myEncryptedMessage \ --wrapping-keys key=1234abcd-12ab-34cd-56ef-1234567890ab \ --output myPlaintextData \ --metadata-output ~/metadata \ --max-encrypted-data-keys 1 \ --buffer \ --encryption-context purpose=test \ --commitment-policy require-encrypt-require-decrypt

    AWSEnkripsi CLI menggunakan kunci pembungkus untuk mendekripsi kunci data dalam pesan terenkripsi. Kemudian menggunakan kunci data untuk mendekripsi data Anda. Ia mengembalikan data plaintext dan metadata Anda tentang operasi.

Cara menentukan kunci pembungkus

Saat Anda mengenkripsi data di AWS Enkripsi CLI, Anda perlu menentukan setidaknya satu kunci pembungkus (atau kunci utama). Anda dapat menggunakan AWS KMS keys in AWS Key Management Service (AWS KMS), membungkus kunci dari penyedia kunci master kustom, atau keduanya. Penyedia kunci master kustom dapat berupa penyedia kunci master Python yang kompatibel.

Untuk menentukan kunci pembungkus di versi 1.8. x dan kemudian, gunakan --wrapping-keys parameter (-w). Nilai parameter ini adalah kumpulan atribut dengan attribute=value format. Atribut yang Anda gunakan bergantung pada penyedia kunci master dan perintah.

  • AWS KMS. Dalam perintah enkripsi, Anda harus menentukan --wrapping-keys parameter dengan atribut kunci. Dimulai pada versi 2.1. x, --wrapping-keys parameter juga diperlukan dalam perintah dekripsi. Saat mendekripsi, --wrapping-keys parameter harus memiliki atribut kunci atau atribut discovery dengan nilai true (tetapi tidak keduanya). Atribut lainnya bersifat opsional.

  • Penyedia kunci master kustom. Anda harus menentukan --wrapping-keys parameter di setiap perintah. Nilai parameter harus memiliki atribut kunci dan penyedia.

Anda dapat menyertakan beberapa --wrapping-keys parameter dan beberapa atribut kunci dalam perintah yang sama.

Membungkus atribut parameter kunci

Nilai --wrapping-keys parameter terdiri dari atribut berikut dan nilainya. --wrapping-keysParameter (atau --master-keys parameter) diperlukan di semua perintah enkripsi. Dimulai pada versi 2.1. x, --wrapping-keys parameter juga diperlukan saat mendekripsi.

Jika nama atribut atau nilai termasuk spasi atau karakter khusus, lampirkan nama dan nilai dalam tanda kutip. Sebagai contoh, --wrapping-keys key=12345 "provider=my cool provider".

Kunci: Tentukan kunci pembungkus

Gunakan atribut kunci untuk mengidentifikasi kunci pembungkus. Saat mengenkripsi, nilainya dapat berupa pengidentifikasi kunci apa pun yang dikenali oleh penyedia kunci utama.

--wrapping-keys key=1234abcd-12ab-34cd-56ef-1234567890ab

Dalam perintah enkripsi, Anda harus menyertakan setidaknya satu atribut dan nilai kunci. Untuk mengenkripsi kunci data Anda di bawah beberapa kunci pembungkus, gunakan beberapa atribut kunci.

aws-encryption-cli --encrypt --wrapping-keys key=1234abcd-12ab-34cd-56ef-1234567890ab key=1a2b3c4d-5e6f-1a2b-3c4d-5e6f1a2b3c4d

Dalam perintah enkripsi yang digunakanAWS KMS keys, nilai kunci dapat menjadi ID kunci, ARN kunci, nama alias, atau alias ARN. Misalnya, perintah encrypt ini menggunakan alias ARN dalam nilai atribut key. Untuk detail tentang pengidentifikasi kunci untuk sebuahAWS KMS key, lihat Pengenal Kunci dalam Panduan AWS Key Management ServicePengembang.

aws-encryption-cli --encrypt --wrapping-keys key=arn:aws:kms:us-west-2:111122223333:alias/ExampleAlias

Dalam mendekripsi perintah yang menggunakan penyedia kunci master kustom, atribut kunci dan penyedia diperlukan.

\\ Custom master key provider aws-encryption-cli --decrypt --wrapping-keys provider='myProvider' key='100101'

Dalam mendekripsi perintah yang digunakanAWS KMS, Anda dapat menggunakan atribut kunci untuk menentukan yang akan digunakan AWS KMS keys untuk mendekripsi, atau atribut discovery dengan nilaitrue, yang memungkinkan AWS Encryption CLI menggunakan apa pun AWS KMS key yang digunakan untuk mengenkripsi pesan. Jika Anda menentukanAWS KMS key, itu harus menjadi salah satu kunci pembungkus yang digunakan untuk mengenkripsi pesan.

Menentukan kunci pembungkus adalah praktik AWS Encryption SDK terbaik. Ini memastikan bahwa Anda menggunakan yang ingin AWS KMS key Anda gunakan.

Dalam perintah dekripsi, nilai atribut kunci harus berupa ARN kunci.

\\ AWS KMS key aws-encryption-cli --decrypt --wrapping-keys key=arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab
Discovery: Gunakan apapun AWS KMS key saat mendekripsi

Jika Anda tidak perlu membatasi penggunaan AWS KMS keys saat mendekripsi, Anda dapat menggunakan atribut discovery dengan nilai. true Nilai true memungkinkan AWS Enkripsi CLI untuk mendekripsi menggunakan apa pun AWS KMS key yang mengenkripsi pesan. Jika Anda tidak menentukan atribut discovery, penemuan adalah false (default). Atribut discovery hanya valid dalam perintah dekripsi dan hanya ketika pesan dienkripsi. AWS KMS keys

Atribut discovery dengan nilai true adalah alternatif untuk menggunakan atribut key untuk menentukanAWS KMS keys. Saat mendekripsi pesan yang dienkripsiAWS KMS keys, setiap --wrapping-keys parameter harus memiliki atribut kunci atau atribut discovery dengan nilaitrue, tetapi tidak keduanya.

Saat penemuan benar, sebaiknya gunakan atribut discovery-partition dan discovery-account untuk membatasi yang AWS KMS keys digunakan pada atribut yang Anda tentukan. Akun AWS Pada contoh berikut, atribut discovery memungkinkan AWS Encryption CLI untuk menggunakan apa pun AWS KMS key dalam yang ditentukanAkun AWS.

aws-encryption-cli --decrypt --wrapping-keys \ discovery=true \ discovery-partition=aws \ discovery-account=111122223333 \ discovery-account=444455556666
Provider: Tentukan penyedia kunci master

Atribut provider mengidentifikasi penyedia kunci master. Nilai default adalahaws-kms, yang mewakiliAWS KMS. Jika Anda menggunakan penyedia kunci master yang berbeda, atribut penyedia diperlukan.

--wrapping-keys key=12345 provider=my_custom_provider

Untuk informasi selengkapnya tentang menggunakan penyedia kunci master kustom (non-AWS KMS), lihat topik Konfigurasi Lanjutan di file README untuk repositori AWSEnkripsi CLI.

Wilayah: Tentukan Wilayah AWS

Gunakan atribut region untuk menentukan Wilayah AWS dari sebuahAWS KMS key. Atribut ini hanya berlaku dalam perintah enkripsi dan hanya ketika penyedia kunci master. AWS KMS

--encrypt --wrapping-keys key=alias/primary-key region=us-east-2

AWSEnkripsi perintah CLI menggunakan Wilayah AWS yang ditentukan dalam nilai atribut kunci jika mencakup wilayah, seperti ARN. jika nilai kunci menentukanWilayah AWS, atribut region diabaikan.

Atribut region lebih diutamakan daripada spesifikasi wilayah lainnya. Jika Anda tidak menggunakan atribut wilayah, perintah AWS Encryption CLI menggunakan yang Wilayah AWS ditentukan dalam profil AWS CLI bernama, jika ada, atau profil default Anda.

Profil: Tentukan profil bernama

Gunakan atribut profil untuk menentukan profil AWS CLI bernama. Profil bernama dapat mencakup kredensil dan. Wilayah AWS Atribut ini hanya berlaku ketika penyedia kunci masterAWS KMS.

--wrapping-keys key=alias/primary-key profile=admin-1

Anda dapat menggunakan atribut profil untuk menentukan kredensil alternatif dalam perintah enkripsi dan dekripsi. Dalam perintah enkripsi, AWS Enkripsi CLI menggunakan Wilayah AWS dalam profil bernama hanya ketika nilai kunci tidak termasuk wilayah dan tidak ada atribut wilayah. Dalam perintah dekripsi, Wilayah AWS dalam profil nama diabaikan.

Cara menentukan beberapa kunci pembungkus

Anda dapat menentukan beberapa kunci pembungkus (atau kunci master) di setiap perintah.

Jika Anda menentukan lebih dari satu kunci pembungkus, kunci pembungkus pertama akan menghasilkan dan mengenkripsi kunci data yang digunakan untuk mengenkripsi data Anda. Kunci pembungkus lainnya mengenkripsi kunci data yang sama. Pesan terenkripsi yang dihasilkan berisi data terenkripsi (“ciphertext”) dan kumpulan kunci data terenkripsi, satu dienkripsi oleh setiap kunci pembungkus. Salah satu pembungkus dapat mendekripsi satu kunci data terenkripsi dan kemudian mendekripsi data.

Ada dua cara untuk menentukan beberapa kunci pembungkus:

  • Sertakan beberapa atribut kunci dalam nilai --wrapping-keys parameter.

    $key_oregon=arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab $key_ohio=arn:aws:kms:us-east-2:111122223333:key/0987ab65-43cd-21ef-09ab-87654321cdef --wrapping-keys key=$key_oregon key=$key_ohio
  • Sertakan beberapa --wrapping-keys parameter dalam perintah yang sama. Gunakan sintaks ini ketika nilai atribut yang Anda tentukan tidak berlaku untuk semua kunci pembungkus dalam perintah.

    --wrapping-keys region=us-east-2 key=alias/test_key \ --wrapping-keys region=us-west-1 key=alias/test_key

Atribut discovery dengan nilai true memungkinkan AWS Encryption CLI menggunakan apa pun AWS KMS key yang mengenkripsi pesan. Jika Anda menggunakan beberapa --wrapping-keys parameter dalam perintah yang sama, menggunakan discovery=true dalam --wrapping-keys parameter apapun efektif menimpa batas atribut kunci dalam --wrapping-keys parameter lain.

Misalnya, dalam perintah berikut, atribut kunci dalam --wrapping-keys parameter pertama membatasi AWS Enkripsi CLI ke yang ditentukanAWS KMS key. Namun, atribut discovery dalam --wrapping-keys parameter kedua memungkinkan AWS Encryption CLI menggunakan apa pun AWS KMS key di akun yang ditentukan untuk mendekripsi pesan.

aws-encryption-cli --decrypt \ --wrapping-keys key=arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab \ --wrapping-keys discovery=true \ discovery-partition=aws \ discovery-account=111122223333 \ discovery-account=444455556666

Cara memberikan masukan

Operasi enkripsi di AWS Enkripsi CLI mengambil data teks biasa sebagai input dan mengembalikan pesan terenkripsi. Operasi dekripsi mengambil pesan terenkripsi sebagai input dan mengembalikan data plaintext.

--inputParameter (-i), yang memberi tahu AWS Encryption CLI di mana menemukan input, diperlukan di semua perintah AWS Encryption CLI.

Anda dapat memberikan masukan dengan salah satu cara berikut:

  • Gunakan file.

    --input myData.txt
  • Gunakan pola nama file.

    --input testdir/*.xml
  • Gunakan direktori atau direktori nama pola. Ketika input adalah direktori, --recursive parameter (-r,-R) diperlukan.

    --input testdir --recursive
  • Input pipa ke perintah (stdin). Gunakan nilai - untuk --input parameter. (--inputParameter selalu diperlukan.)

    echo 'Hello World' | aws-encryption-cli --encrypt --input -

Cara menentukan lokasi keluaran

--outputParameter memberitahu AWS Enkripsi CLI di mana untuk menulis hasil enkripsi atau dekripsi operasi. Hal ini diperlukan dalam setiap perintah AWS Encryption CLI. AWSEncryption CLI membuat file output baru untuk setiap file input dalam operasi.

Jika file output sudah ada, secara default, AWS Enkripsi CLI mencetak peringatan, kemudian menimpa file. Untuk mencegah timpa, gunakan --interactive parameter, yang meminta Anda untuk konfirmasi sebelum menimpa, atau--no-overwrite, yang melewatkan input jika output akan menyebabkan timpa. Untuk menekan peringatan menimpa, gunakan. --quiet Untuk menangkap kesalahan dan peringatan dari AWS Enkripsi CLI, gunakan operator 2>&1 pengalihan untuk menuliskannya ke aliran keluaran.

catatan

Perintah yang menimpa file keluaran dimulai dengan menghapus file output. Jika perintah gagal, file output mungkin sudah dihapus.

Anda dapat lokasi output dalam beberapa cara.

  • Tentukan nama file. Jika Anda menentukan jalur ke file, semua direktori di jalur harus ada sebelum perintah berjalan.

    --output myEncryptedData.txt
  • Tentukan direktori. Direktori output harus ada sebelum perintah berjalan.

    Jika input berisi subdirektori, perintah mereproduksi subdirektori di bawah direktori yang ditentukan.

    --output Test

    Ketika lokasi output adalah direktori (tanpa nama file), AWS Enkripsi CLI membuat nama file keluaran berdasarkan nama file input ditambah akhiran. Enkripsi operasi menambahkan .encrypted ke nama file input dan operasi dekripsi menambahkan. .decrypted Untuk mengubah akhiran, gunakan --suffix parameter.

    Misalnya, jika Anda mengenkripsifile.txt, perintah enkripsi akan dibuat. file.txt.encrypted Jika Anda mendekripsifile.txt.encrypted, perintah dekripsi menciptakan. file.txt.encrypted.decrypted

     

  • Menulis ke baris perintah (stdout). Masukkan nilai - untuk --output parameter. Anda dapat menggunakan output pipa --output - ke perintah atau program lain.

    --output -

Cara menggunakan konteks enkripsi

AWSEncryption CLI memungkinkan Anda menyediakan konteks enkripsi dalam perintah enkripsi dan dekripsi. Ini tidak diperlukan, tetapi ini adalah praktik terbaik kriptografi yang kami rekomendasikan.

Konteks enkripsi adalah jenis data otentikasi tambahan yang sewenang-wenang dan tidak rahasia. Dalam AWS Enkripsi CLI, konteks enkripsi terdiri dari kumpulan name=value pasangan. Anda dapat menggunakan konten apa pun dalam pasangan, termasuk informasi tentang file, data yang membantu Anda menemukan operasi enkripsi dalam log, atau data yang diperlukan oleh hibah atau kebijakan Anda.

Dalam perintah enkripsi

Konteks enkripsi yang Anda tentukan dalam perintah enkripsi, bersama dengan pasangan tambahan yang ditambahkan CMM, terikat secara kriptografis ke data terenkripsi. Hal ini juga termasuk (dalam plaintext) dalam pesan terenkripsi bahwa perintah kembali. Jika Anda menggunakanAWS KMS key, konteks enkripsi juga mungkin muncul dalam plaintext dalam catatan audit dan log, seperti. AWS CloudTrail

Contoh berikut menunjukkan konteks enkripsi dengan tiga name=value pasang.

--encryption-context purpose=test dept=IT class=confidential

Dalam perintah dekripsi

Dalam perintah dekripsi, konteks enkripsi membantu Anda mengonfirmasi bahwa Anda mendekripsi pesan terenkripsi yang tepat.

Anda tidak diharuskan untuk menyediakan konteks enkripsi dalam perintah dekripsi, bahkan jika konteks enkripsi digunakan pada enkripsi. Namun, jika Anda melakukannya, AWS Encryption CLI memverifikasi bahwa setiap elemen dalam konteks enkripsi perintah dekripsi cocok dengan elemen dalam konteks enkripsi pesan terenkripsi. Jika elemen apapun tidak cocok, perintah dekripsi gagal.

Misalnya, perintah berikut mendekripsi pesan terenkripsi hanya jika konteks enkripsi termasuk. dept=IT

aws-encryption-cli --decrypt --encryption-context dept=IT ...

Konteks enkripsi adalah bagian penting dari strategi keamanan Anda. Namun, ketika memilih konteks enkripsi, ingatlah bahwa nilainya bukan rahasia. Jangan menyertakan data rahasia apa pun dalam konteks enkripsi.

Untuk menentukan konteks enkripsi

  • Dalam perintah enkripsi, gunakan --encryption-context parameter dengan satu atau lebih name=value pasangan. Gunakan spasi untuk memisahkan setiap pasangan.

    --encryption-context name=value [name=value] ...
  • Dalam perintah dekripsi, nilai --encryption-context parameter dapat mencakup name=value pasangan, name elemen (tanpa nilai), atau kombinasi keduanya.

    --encryption-context name[=value] [name] [name=value] ...

Jika name atau value dalam name=value pasangan termasuk spasi atau karakter khusus, lampirkan seluruh pasangan dalam tanda kutip.

--encryption-context "department=software engineering" "Wilayah AWS=us-west-2"

Misalnya, perintah enkripsi ini mencakup konteks enkripsi dengan dua pasang, purpose=test dandept=23.

aws-encryption-cli --encrypt --encryption-context purpose=test dept=23 ...

Perintah dekripsi ini akan berhasil. Konteks enkripsi dalam setiap perintah adalah bagian dari konteks enkripsi asli.

\\ Any one or both of the encryption context pairs aws-encryption-cli --decrypt --encryption-context dept=23 ... \\ Any one or both of the encryption context names aws-encryption-cli --decrypt --encryption-context purpose ... \\ Any combination of names and pairs aws-encryption-cli --decrypt --encryption-context dept purpose=test ...

Namun, perintah dekripsi ini akan gagal. Konteks enkripsi dalam pesan terenkripsi tidak mengandung elemen tertentu.

aws-encryption-cli --decrypt --encryption-context dept=Finance ... aws-encryption-cli --decrypt --encryption-context scope ...

Cara menentukan kebijakan komitmen

Untuk mengatur kebijakan komitmen untuk perintah, gunakan --commitment-policyparameter. Parameter ini diperkenalkan pada versi 1.8. x. Ini berlaku dalam perintah enkripsi dan dekripsi. Kebijakan komitmen yang Anda tetapkan hanya berlaku untuk perintah yang muncul. Jika Anda tidak menetapkan kebijakan komitmen untuk perintah, CLI AWS Enkripsi menggunakan nilai default.

Misalnya, nilai parameter berikut menetapkan kebijakan komitmenrequire-encrypt-allow-decrypt, yang selalu mengenkripsi dengan komitmen kunci, tetapi akan mendekripsi ciphertext yang dienkripsi dengan atau tanpa komitmen kunci.

--commitment-policy require-encrypt-allow-decrypt

Cara menyimpan parameter dalam file konfigurasi

Anda dapat menghemat waktu dan menghindari kesalahan pengetikan dengan menyimpan parameter dan nilai CLI AWS Enkripsi yang sering digunakan dalam file konfigurasi.

File konfigurasi adalah file teks yang berisi parameter dan nilai untuk perintah AWS Encryption CLI. Ketika Anda merujuk ke file konfigurasi dalam perintah AWS Enkripsi CLI, referensi digantikan oleh parameter dan nilai-nilai dalam file konfigurasi. Efeknya sama adalah jika Anda mengetik konten file di baris perintah. File konfigurasi dapat memiliki nama apa pun dan dapat ditemukan di direktori mana pun yang dapat diakses pengguna saat ini.

Berikut contoh file konfigurasi,key.conf, menentukan dua AWS KMS keys di Daerah yang berbeda.

--wrapping-keys key=arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab --wrapping-keys key=arn:aws:kms:us-east-2:111122223333:key/0987ab65-43cd-21ef-09ab-87654321cdef

Untuk menggunakan file konfigurasi dalam perintah, awali nama file dengan tanda at (@). Di PowerShell konsol, gunakan karakter backtick untuk melarikan diri tanda at (`@).

Perintah contoh ini menggunakan key.conf file dalam perintah encrypt.

Bash
$ aws-encryption-cli -e @key.conf -i hello.txt -o testdir
PowerShell
PS C:\> aws-encryption-cli -e `@key.conf -i .\Hello.txt -o .\TestDir

Aturan file konfigurasi

Aturan untuk menggunakan file konfigurasi adalah sebagai berikut:

  • Anda dapat menyertakan beberapa parameter di setiap file konfigurasi dan mencantumkannya dalam urutan apa pun. Cantumkan setiap parameter dengan nilainya (jika ada) pada baris terpisah.

  • Gunakan # untuk menambahkan komentar ke semua atau sebagian baris.

  • Anda dapat menyertakan referensi ke file konfigurasi lainnya. Jangan gunakan backtick untuk melarikan diri dari @ tanda, bahkan diPowerShell.

  • Jika Anda menggunakan tanda kutip dalam file konfigurasi, teks yang dikutip tidak dapat menjangkau beberapa baris.

Misalnya, ini adalah isi dari encrypt.conf file contoh.

# Archive Files --encrypt --output /archive/logs --recursive --interactive --encryption-context class=unclassified dept=IT --suffix # No suffix --metadata-output ~/metadata @caching.conf # Use limited caching

Anda juga dapat menyertakan beberapa file konfigurasi dalam perintah. Perintah contoh ini menggunakan kedua encrypt.conf dan master-keys.conf konfigurasi file.

Bash
$ aws-encryption-cli -i /usr/logs @encrypt.conf @master-keys.conf
PowerShell
PS C:\> aws-encryption-cli -i $home\Test\*.log `@encrypt.conf `@master-keys.conf

Berikutnya: Coba contoh AWS Enkripsi CLI