Manajemen kunci - AWS Transfer Family

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

Manajemen kunci

Di bagian ini, Anda dapat menemukan informasi tentang SSH kunci, termasuk cara membuatnya dan cara memutarnya. Untuk detail tentang penggunaan Transfer Family with AWS Lambda to manage keys, lihat posting blog Mengaktifkan manajemen kunci layanan mandiri pengguna dengan A AWS Transfer Family dan. AWS Lambda

catatan

AWS Transfer Family menerimaRSA,ECDSA, dan ED25519 kunci.

Bagian ini juga mencakup cara membuat dan mengelola kunci Pretty Good Privacy (PGP).

Algoritma yang didukung untuk kunci pengguna dan server

Algoritma kunci berikut didukung untuk pasangan kunci pengguna dan server di dalamnya. AWS Transfer Family

catatan

Untuk algoritme yang dapat digunakan dengan PGP dekripsi dalam alur kerja, lihat Algoritma yang didukung untuk pasangan kunci. PGP

  • UntukED25519: ssh-ed25519

  • UntukRSA:

    • rsa-sha2-256

    • rsa-sha2-512

  • UntukECDSA:

    • ecdsa-sha2-nistp256

    • ecdsa-sha2-nistp384

    • ecdsa-sha2-nistp521

catatan

Kami mendukung ssh-rsa kebijakan SHA1 keamanan kami yang lebih lama. Untuk detailnya, lihat Algoritma kriptografi.

Buat SSH kunci untuk pengguna yang dikelola layanan

Anda dapat mengatur server Anda untuk mengautentikasi pengguna menggunakan metode otentikasi terkelola layanan, tempat nama pengguna dan SSH kunci disimpan dalam layanan. SSHKunci publik pengguna diunggah ke server sebagai properti pengguna. Kunci ini digunakan oleh server sebagai bagian dari proses otentikasi berbasis kunci standar. Setiap pengguna dapat memiliki beberapa SSH kunci publik pada file dengan server individual. Untuk batasan jumlah kunci yang dapat disimpan per pengguna, lihat AWS Transfer Family titik akhir dan kuota di. Referensi Umum Amazon Web

Sebagai alternatif metode otentikasi terkelola layanan, Anda dapat mengautentikasi pengguna menggunakan penyedia identitas kustom, atau. AWS Directory Service for Microsoft Active Directory Untuk informasi selengkapnya, lihat Bekerja dengan penyedia identitas khusus atau Menggunakan penyedia identitas AWS Directory Service.

Server hanya dapat mengautentikasi pengguna menggunakan satu metode (layanan dikelola, layanan direktori, atau penyedia identitas kustom), dan metode itu tidak dapat diubah setelah server dibuat.

Membuat SSH kunci di macOS, Linux, atau Unix

Pada sistem operasi macOS, Linux, atau Unix, Anda menggunakan ssh-keygen perintah untuk membuat kunci SSH publik dan kunci SSH pribadi yang juga dikenal sebagai key pair.

Untuk membuat SSH kunci pada sistem operasi macOS, Linux, atau Unix
  1. Pada sistem operasi macOS, Linux, atau Unix, buka terminal perintah.

  2. AWS Transfer Family menerima RSA -, ECDSA -, dan ED25519 -kunci yang diformat. Pilih perintah yang sesuai berdasarkan jenis pasangan kunci yang Anda hasilkan.

    catatan

    Dalam contoh berikut, kami tidak menentukan frasa sandi: dalam hal ini, alat meminta Anda untuk memasukkan frasa sandi Anda dan kemudian mengulanginya untuk memverifikasi. Membuat frasa sandi menawarkan perlindungan yang lebih baik untuk kunci pribadi Anda, dan mungkin juga meningkatkan keamanan sistem secara keseluruhan. Anda tidak dapat memulihkan frasa sandi Anda: jika Anda lupa, Anda harus membuat kunci baru.

    Namun, jika Anda membuat kunci host server, Anda harus menentukan frasa sandi kosong, dengan menentukan -N "" opsi dalam perintah (atau dengan menekan Enter dua kali saat diminta), karena server Transfer Family tidak dapat meminta kata sandi saat start-up.

    • Untuk menghasilkan key RSA pair 4096-bit:

      ssh-keygen -t rsa -b 4096 -f key_name
    • Untuk menghasilkan pasangan kunci ECDSA 521-bit (ECDSAmemiliki ukuran bit 256, 384, dan 521):

      ssh-keygen -t ecdsa -b 521 -f key_name
    • Untuk menghasilkan ED25519 key pair:

      ssh-keygen -t ed25519 -f key_name
    catatan

    key_nameadalah nama file SSH key pair.

    Berikut ini menunjukkan contoh ssh-keygen output.

    ssh-keygen -t rsa -b 4096 -f key_name Generating public/private rsa key pair. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in key_name. Your public key has been saved in key_name.pub. The key fingerprint is: SHA256:8tDDwPmanTFcEzjTwPGETVWOGW1nVz+gtCCE8hL7PrQ bob.amazon.com The key's randomart image is: +---[RSA 4096]----+ | . ....E | | . = ... | |. . . = ..o | | . o + oo = | | + = .S.= * | | . o o ..B + o | | .o.+.* . | | =o*+*. | | ..*o*+. | +----[SHA256]-----+
    catatan

    Ketika Anda menjalankan ssh-keygen perintah seperti yang ditunjukkan sebelumnya, itu menciptakan kunci publik dan pribadi sebagai file dalam direktori saat ini.

    SSHKey pair Anda sekarang siap digunakan. Ikuti langkah 3 dan 4 untuk menyimpan kunci SSH publik bagi pengguna yang dikelola layanan Anda. Pengguna ini menggunakan kunci ketika mereka mentransfer file pada endpoint server Transfer Family.

  3. Arahkan ke key_name.pub file dan buka.

  4. Salin teks dan tempel di kunci SSH publik untuk pengguna yang dikelola layanan.

    1. Buka AWS Transfer Family konsol di https://console.aws.amazon.com/transfer/, lalu pilih Server dari panel navigasi.

    2. Pada halaman Server, pilih ID Server untuk server yang berisi pengguna yang ingin Anda perbarui.

    3. Pilih pengguna yang Anda tambahkan kunci publiknya.

    4. Di panel kunci SSH publik, pilih Tambahkan kunci SSH publik.

      AWS Transfer Family Konsol, menampilkan detail pengguna untuk pengguna yang dipilih.
    5. Rekatkan teks kunci publik yang Anda buat ke dalam kotak teks kunci SSH publik, lalu pilih Tambah kunci.

      AWS Transfer Family Konsol, menampilkan halaman Add key untuk menambahkan kunci publik.

      Kunci baru tercantum di panel kunci SSH publik.

      AWS Transfer Family Konsol, menampilkan kunci publik yang baru ditambahkan di bagian kunci SSH publik.

Membuat SSH kunci di Microsoft Windows

Windows menggunakan format SSH key pair yang sedikit berbeda. Kunci publik harus dalam PUB format, dan kunci pribadi harus dalam PPK format. Di Windows, Anda dapat menggunakan P uTTYgen untuk membuat SSH key pair dalam format yang sesuai. Anda juga dapat menggunakan P uTTYgen untuk mengonversi kunci pribadi yang dihasilkan menggunakan ssh-keygen ke .ppk file.

catatan

Jika Anda menyajikan Win SCP dengan file kunci pribadi yang tidak dalam .ppk format, klien itu menawarkan untuk mengubah kunci menjadi .ppk format untuk Anda.

Untuk tutorial tentang membuat SSH kunci dengan menggunakan P uTTYgen di Windows, lihat situs SSH web.com.

Mengkonversi kunci SSH2 publik ke PEM format

AWS Transfer Family hanya menerima kunci publik yang PEM diformat. Jika Anda memiliki kunci SSH2 publik, Anda perlu mengonversinya. Kunci SSH2 publik memiliki format berikut:

---- BEGIN SSH2 PUBLIC KEY ---- Comment: "rsa-key-20160402" AAAAB3NzaC1yc2EAAAABJQAAAgEAiL0jjDdFqK/kYThqKt7THrjABTPWvXmB3URI : : ---- END SSH2 PUBLIC KEY ----

Kunci PEM publik memiliki format berikut:

ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAA...

Jalankan perintah berikut untuk mengonversi kunci publik SSH2 yang diformat menjadi kunci publik yang PEM diformat. Ganti ssh2-key dengan nama SSH2 kunci Anda, dan PEM-key dengan nama PEM kunci Anda.

ssh-keygen -i -f ssh2-key.pub > PEM-key.pub

Putar SSH tombol

Untuk keamanan, kami merekomendasikan praktik terbaik memutar SSH kunci Anda. Biasanya, rotasi ini ditentukan sebagai bagian dari kebijakan keamanan dan diimplementasikan dalam beberapa cara otomatis. Tergantung pada tingkat keamanan, untuk komunikasi yang sangat sensitif, SSH key pair mungkin hanya digunakan sekali. Melakukan hal ini menghilangkan risiko apa pun karena kunci yang disimpan. Namun, jauh lebih umum untuk menyimpan SSH kredensyal untuk jangka waktu tertentu dan menetapkan interval yang tidak menempatkan beban yang tidak semestinya pada pengguna. Interval waktu tiga bulan adalah hal biasa.

Ada dua metode yang digunakan untuk melakukan rotasi SSH kunci:

  • Di konsol, Anda dapat mengunggah kunci SSH publik baru dan menghapus kunci SSH publik yang ada.

  • MenggunakanAPI, Anda dapat memperbarui pengguna yang ada dengan menggunakan DeleteSshPublicKeyAPIuntuk menghapus kunci publik Secure Shell (SSH) pengguna dan ImportSshPublicKeyAPIuntuk menambahkan kunci publik Secure Shell (SSH) baru ke akun pengguna.

Console
Untuk melakukan rotasi kunci di konsol
  1. Buka AWS Transfer Family konsol di https://console.aws.amazon.com/transfer/.

  2. Arahkan ke halaman Server.

  3. Pilih pengenal di kolom ID Server untuk melihat halaman Detail Server.

  4. Di bawah Pengguna, pilih kotak centang pengguna yang kunci SSH publiknya ingin diputar, lalu pilih Tindakan, lalu pilih Tambah kunci untuk melihat halaman Tambah kunci.

    atau

    Pilih nama pengguna untuk melihat halaman Detail pengguna, lalu pilih Tambahkan kunci SSH publik untuk melihat halaman Tambah kunci.

  5. Masukkan kunci SSH publik baru dan pilih Tambah kunci.

    penting

    Format kunci SSH publik tergantung pada jenis kunci yang Anda hasilkan.

    • Untuk RSA kunci, formatnya adalahssh-rsa string.

    • Untuk ED25519 kunci, formatnya adalahssh-ed25519 string.

    • Untuk ECDSA kunci, kunci dimulai denganecdsa-sha2-nistp256,ecdsa-sha2-nistp384, atauecdsa-sha2-nistp521, tergantung pada ukuran kunci yang Anda hasilkan. String awal kemudian diikuti olehstring, mirip dengan jenis kunci lainnya.

    Anda dikembalikan ke halaman detail Pengguna, dan kunci SSH publik baru yang baru saja Anda masukkan muncul di bagian kunci SSH publik.

  6. Pilih kotak centang kunci lama yang ingin Anda hapus dan kemudian pilih Hapus.

  7. Konfirmasikan operasi penghapusan dengan memasukkan katadelete, lalu pilih Hapus.

API
Untuk melakukan rotasi kunci menggunakan API
  1. Pada sistem operasi macOS, Linux, atau Unix, buka terminal perintah.

  2. Ambil SSH kunci yang ingin Anda hapus dengan memasukkan perintah berikut. Untuk menggunakan perintah ini, ganti serverID dengan ID server untuk server Transfer Family Anda, dan ganti username dengan nama pengguna Anda.

    aws transfer describe-user --server-id='serverID' --user-name='username'

    Perintah mengembalikan rincian tentang pengguna. Salin isi "SshPublicKeyId": bidang. Anda harus memasukkan nilai ini nanti dalam prosedur ini.

    "SshPublicKeys": [ { "SshPublicKeyBody": "public-key", "SshPublicKeyId": "keyID", "DateImported": 1621969331.072 } ],
  3. Selanjutnya, impor SSH kunci baru untuk pengguna Anda. Di perintah , masukkan perintah berikut. Untuk menggunakan perintah ini, ganti serverID dengan ID server untuk server Transfer Family Anda, ganti username dengan nama pengguna Anda, dan ganti public-key dengan sidik jari kunci publik baru Anda.

    aws transfer import-ssh-public-key --server-id='serverID' --user-name='username' --ssh-public-key-body='public-key'

    Jika perintah berhasil, tidak ada output yang dikembalikan.

  4. Terakhir, hapus kunci lama dengan menjalankan perintah berikut. Untuk menggunakan perintah ini, ganti serverID dengan ID server untuk server Transfer Family Anda, ganti username dengan nama pengguna Anda, dan ganti keyID-from-step-2 dengan nilai ID kunci yang Anda salin di langkah 2 prosedur ini

    aws transfer delete-ssh-public-key --server-id='serverID' --user-name='username' --ssh-public-key-id='keyID-from-step-2'
  5. (Opsional) Untuk mengonfirmasi bahwa kunci lama tidak ada lagi, ulangi langkah 2.

Hasilkan dan kelola PGP kunci

Anda dapat menggunakan dekripsi Pretty Good Privacy (PGP) dengan file yang diproses Transfer Family dengan alur kerja. Untuk menggunakan dekripsi dalam langkah alur kerja, Anda harus memberikan kunci. PGP

Blog AWS penyimpanan memiliki posting yang menjelaskan cara mengenkripsi dan mendekripsi file, mengenkripsi dan mendekripsi file dengan dan. PGP AWS Transfer Family

Hasilkan PGP kunci

Metode yang Anda gunakan untuk menghasilkan PGP kunci tergantung pada sistem operasi Anda dan versi perangkat lunak generasi kunci yang Anda gunakan.

Jika Anda menggunakan Linux atau Unix, gunakan penginstal paket Anda untuk menginstal. gpg Tergantung pada distribusi Linux Anda, salah satu perintah berikut akan bekerja untuk Anda.

sudo yum install gnupg
sudo apt-get install gnupg

Untuk Windows atau macOS, Anda dapat mengunduh apa yang Anda butuhkan dari https://gnupg.org/download/.

Setelah Anda menginstal perangkat lunak generator PGP kunci Anda, Anda menjalankan gpg --gen-key perintah gpg --full-gen-key or untuk menghasilkan key pair.

catatan

Jika Anda menggunakan GnuPG versi 2.3.0 atau yang lebih baru, Anda harus menjalankannya. gpg --full-gen-key Ketika diminta untuk jenis kunci yang akan dibuat, pilih RSA atauECC. Namun, jika Anda memilihECC, pastikan untuk memilih salah satu NIST atau BrainPool untuk kurva elips. Jangan memilih Curve 25519.

Algoritma yang didukung untuk pasangan kunci PGP

Algoritma berikut didukung untuk pasangan PGP kunci:

  • RSA

  • Elgamal

  • ECC:

    • NIST

    • BrainPool

catatan

Tombol Curve25519 tidak didukung.

gpgSubperintah yang berguna

Berikut ini adalah beberapa subperintah yang berguna untukgpg:

  • gpg --help— Perintah ini mencantumkan opsi yang tersedia dan mungkin menyertakan beberapa contoh.

  • gpg --list-keys— Perintah ini mencantumkan detail untuk semua pasangan kunci yang telah Anda buat.

  • gpg --fingerprint— Perintah ini mencantumkan detail untuk semua pasangan kunci Anda, termasuk sidik jari masing-masing tombol.

  • gpg --export -a user-name— Perintah ini mengekspor bagian kunci publik dari kunci untuk user-name yang digunakan saat kunci dihasilkan.

Kelola PGP kunci

Untuk mengelola PGP kunci Anda, Anda harus menggunakan AWS Secrets Manager.

catatan

Nama rahasia Anda termasuk ID server Transfer Family Anda. Ini berarti Anda seharusnya sudah mengidentifikasi atau membuat server sebelum Anda dapat menyimpan informasi PGP kunci Anda AWS Secrets Manager.

Jika Anda ingin menggunakan satu kunci dan frasa sandi untuk semua pengguna Anda, Anda dapat menyimpan informasi blok PGP kunci di bawah nama rahasiaaws/transfer/server-id/@pgp-default, di mana server-id ID untuk server Transfer Family Anda. Kunci default ini digunakan jika tidak ada kunci di mana user-name cocok dengan pengguna yang menjalankan alur kerja.

Atau, Anda dapat membuat kunci untuk pengguna tertentu. Dalam hal ini, format untuk nama rahasia adalahaws/transfer/server-id/user-name, di mana user-name cocok dengan pengguna yang menjalankan alur kerja untuk server Transfer Family.

catatan

Anda dapat menyimpan maksimal 3 kunci PGP pribadi, per server Transfer Family, per pengguna.

Untuk mengkonfigurasi PGP kunci untuk digunakan dengan dekripsi
  1. Bergantung pada versi GPG yang Anda gunakan, jalankan salah satu perintah berikut untuk menghasilkan PGP key pair yang tidak menggunakan algoritma enkripsi Curve 25519.

    • Jika Anda menggunakan GnuPG versi 2.3.0 atau yang lebih baru, jalankan perintah berikut:

      gpg --full-gen-key

      Anda dapat memilihRSA, atau, jika Anda memilihECC, Anda dapat memilih salah satu NIST atau BrainPool untuk kurva elips. Jika Anda gpg --gen-key menjalankannya, Anda membuat key pair yang menggunakan algoritma enkripsi ECC Curve 25519, yang saat ini tidak kami dukung untuk PGP kunci.

    • Untuk versi GnuPG sebelum 2.3.0, Anda dapat menggunakan perintah berikut, karena RSA adalah jenis enkripsi default.

      gpg --gen-key
    penting

    Selama proses pembuatan kunci, Anda harus memberikan frasa sandi dan alamat email. Pastikan untuk mencatat nilai-nilai ini. Anda harus memberikan frasa sandi ketika Anda memasukkan detail kunci ke dalam prosedur ini AWS Secrets Manager nanti. Dan Anda harus memberikan alamat email yang sama untuk mengekspor kunci pribadi di langkah berikutnya.

  2. Jalankan perintah berikut untuk mengekspor kunci pribadi. Untuk menggunakan perintah ini, ganti private.pgp dengan nama file untuk menyimpan blok kunci pribadi, dan marymajor@example.com dengan alamat email yang Anda gunakan saat Anda membuat key pair.

    gpg --output private.pgp --armor --export-secret-key marymajor@example.com
  3. Gunakan AWS Secrets Manager untuk menyimpan PGP kunci Anda.

    1. Masuk ke AWS Management Console dan buka AWS Secrets Manager konsol di https://console.aws.amazon.com/secretsmanager/.

    2. Pada panel navigasi kiri, pilih Rahasia.

    3. Pada halaman Rahasia, pilih Simpan rahasia baru.

    4. Pada halaman Choose secret type, untuk Secret type, pilih Other type of secret.

    5. Di bagian pasangan kunci/Nilai, pilih tab kunci/Nilai.

      • Kunci — MasukkanPGPPrivateKey.

        catatan

        Anda harus memasukkan PGPPrivateKey string dengan tepat: jangan menambahkan spasi sebelum atau di antara karakter.

      • nilai — Tempelkan teks kunci pribadi Anda ke bidang nilai. Anda dapat menemukan teks kunci pribadi Anda dalam file (misalnya,private.pgp) yang Anda tentukan saat Anda mengekspor kunci Anda sebelumnya dalam prosedur ini. Kuncinya dimulai dengan -----BEGIN PGP PRIVATE KEY BLOCK----- dan diakhiri dengan-----END PGP PRIVATE KEY BLOCK-----.

        catatan

        Pastikan bahwa blok teks hanya berisi kunci pribadi dan tidak mengandung kunci publik juga.

    6. Pilih Tambahkan baris dan di bagian pasangan kunci/Nilai, pilih tab kunci/Nilai.

      • Kunci — MasukkanPGPPassphrase.

        catatan

        Anda harus memasukkan PGPPassphrase string dengan tepat: jangan menambahkan spasi sebelum atau di antara karakter.

      • value — Masukkan kata sandi yang Anda gunakan saat membuat key pairPGP.

      AWS Secrets Manager Konsol, menampilkan kunci dan nilai yang Anda masukkan untuk mengelola PGP kunci Anda.
      catatan

      Anda dapat menambahkan hingga 3 set kunci dan frasa sandi. Untuk menambahkan set kedua, tambahkan dua baris baru, dan masukkan PGPPrivateKey2 dan PGPPassphrase2 untuk kunci, dan tempel di kunci pribadi dan frasa sandi lainnya. Untuk menambahkan set ketiga, nilai kunci harus PGPPrivateKey3 danPGPPassphrase3.

    7. Pilih Berikutnya.

    8. Pada halaman Konfigurasi rahasia, masukkan nama dan deskripsi untuk rahasia Anda.

      • Jika Anda membuat kunci default, yaitu kunci yang dapat digunakan oleh pengguna Transfer Family, masukkanaws/transfer/server-id/@pgp-default. Ganti server-id dengan ID server yang berisi alur kerja yang memiliki langkah dekripsi.

      • Jika Anda membuat kunci untuk digunakan oleh pengguna Transfer Family tertentu, masukkanaws/transfer/server-id/user-name. Ganti server-id dengan ID server yang berisi alur kerja yang memiliki langkah dekripsi, dan ganti user-name dengan nama pengguna yang menjalankan alur kerja. user-nameIni disimpan di penyedia identitas yang digunakan server Transfer Family.

    9. Pilih Berikutnya dan terima default pada halaman Konfigurasi rotasi. Lalu pilih Berikutnya.

    10. Pada halaman Review, pilih Store untuk membuat dan menyimpan rahasia.

Tangkapan layar berikut menunjukkan detail untuk pengguna marymajor untuk server Transfer Family tertentu. Contoh ini menunjukkan tiga kunci dan frasa sandi yang sesuai.

AWS Secrets Manager Konsol, menampilkan halaman detail rahasia dengan tiga kunci dan frasa sandi untuk server dan pengguna Transfer Family.

PGPKlien yang didukung

Klien berikut telah diuji dengan Transfer Family dan dapat digunakan untuk menghasilkan PGP kunci, dan untuk mengenkripsi file yang ingin Anda dekripsi dengan alur kerja.

  • GPG4win + Kleopatra.

    catatan

    Saat Anda memilih Sign/Encrypt Files, pastikan untuk menghapus pilihan untuk Sign as: saat ini kami tidak mendukung penandatanganan untuk file terenkripsi.

    Opsi Kleopatra untuk menandatangani dan mengenkripsi file. Opsi untuk Masuk sebagai dihapus, dan opsi untuk Enkripsi untuk saya dipilih.
  • Versi GnuPG utama: 2.4, 2.3, 2.2, 2.0, dan 1.4.

Perhatikan bahwa PGP klien lain mungkin bekerja juga, tetapi hanya klien yang disebutkan di sini yang telah diuji dengan Transfer Family.