Gunakan langkah-langkah yang telah ditentukan - AWS Transfer Family

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

Gunakan langkah-langkah yang telah ditentukan

Saat membuat alur kerja, Anda dapat memilih untuk menambahkan salah satu langkah yang telah ditentukan berikut yang dibahas dalam topik ini. Anda juga dapat memilih untuk menambahkan langkah-langkah pemrosesan file kustom Anda sendiri. Untuk informasi selengkapnya, lihat Gunakan langkah-langkah pemrosesan file khusus.

Salin berkas

Langkah salin file membuat salinan file yang diunggah di lokasi Amazon S3 baru. Saat ini, Anda dapat menggunakan langkah salin file hanya dengan Amazon S3.

Langkah copy file berikut menyalin file ke test folder di bucket file-test tujuan.

Jika langkah salin file bukan langkah pertama alur kerja Anda, Anda dapat menentukan lokasi File. Dengan menentukan lokasi file, Anda dapat menyalin file yang digunakan pada langkah sebelumnya atau file asli yang diunggah. Anda dapat menggunakan fitur ini untuk membuat beberapa salinan dari file asli sambil menjaga file sumber tetap utuh untuk arsip file dan penyimpanan catatan. Sebagai contoh, lihat Contoh tag dan hapus alur kerja.

Layar alur kerja dengan Salin file yang dibuat dari langkah sebelumnya... tombol yang dipilih.

Berikan ember dan detail kunci

Anda harus memberikan nama bucket dan kunci untuk tujuan langkah salin file. Kuncinya bisa berupa nama jalur atau nama file. Apakah kunci diperlakukan sebagai nama jalur atau nama file ditentukan oleh apakah Anda mengakhiri kunci dengan karakter garis miring (/) maju.

Jika karakter terakhir adalah/, file Anda disalin ke folder, dan namanya tidak berubah. Jika karakter terakhir adalah alfanumerik, file yang Anda unggah diganti namanya menjadi nilai kunci. Dalam hal ini, jika file dengan nama itu sudah ada, perilaku tergantung pada pengaturan untuk bidang Timpa yang ada.

  • Jika Timpa yang ada dipilih, file yang ada diganti dengan file yang sedang diproses.

  • Jika Timpa yang ada tidak dipilih, tidak ada yang terjadi, dan pemrosesan alur kerja berhenti.

    Tip

    Jika penulisan bersamaan dijalankan pada jalur file yang sama, hal itu dapat mengakibatkan perilaku yang tidak terduga saat menimpa file.

Misalnya, jika nilai kunci Andatest/, file yang Anda unggah akan disalin ke folder. test Jika nilai kunci Andatest/today, (dan Timpa yang ada dipilih) setiap file yang Anda unggah disalin ke file bernama today di test folder, dan setiap file berikutnya menimpa yang sebelumnya.

catatan

Amazon S3 mendukung bucket dan objek, dan tidak memiliki hierarki. Namun, Anda dapat menggunakan awalan dan pembatas dalam nama kunci objek untuk menyiratkan hierarki dan mengatur data Anda dengan cara yang mirip dengan folder.

Gunakan variabel bernama dalam langkah copy file

Dalam langkah salin file, Anda dapat menggunakan variabel untuk menyalin file Anda secara dinamis ke folder khusus pengguna. Saat ini, Anda dapat menggunakan ${transfer:UserName} atau ${transfer:UploadDate} sebagai variabel untuk menyalin file ke lokasi tujuan untuk pengguna tertentu yang mengunggah file, atau berdasarkan tanggal saat ini.

Dalam contoh berikut, jika pengguna richard-roe mengunggah file, itu akan disalin ke folderfile-test2/richard-roe/processed/. Jika pengguna mary-major mengunggah file, itu akan disalin ke folder. file-test2/mary-major/processed/

Layar parameter untuk langkah penyalinan, menunjukkan ember dan kunci, diparameterisasi menggunakan. UserName

Demikian pula, Anda dapat menggunakan ${transfer:UploadDate} sebagai variabel untuk menyalin file ke lokasi tujuan yang dinamai untuk tanggal saat ini. Dalam contoh berikut, jika Anda menetapkan tujuan ${transfer:UploadDate}/processed pada 1 Februari 2022, file yang diunggah akan disalin ke folderfile-test2/2022-02-01/processed/.

Layar parameter untuk langkah penyalinan, menunjukkan ember dan kunci, diparameterisasi menggunakan. UploadDate

Anda juga dapat menggunakan kedua variabel ini bersama-sama, menggabungkan fungsionalitasnya. Sebagai contoh:

  • Anda dapat mengatur awalan key Destination kefolder/${transfer:UserName}/${transfer:UploadDate}/, yang akan membuat folder bersarang, misalnya. folder/marymajor/2023-01-05/

  • Anda dapat mengatur key prefix Destination kefolder/${transfer:UserName}-${transfer:UploadDate}/, untuk menggabungkan dua variabel, misalnya. folder/marymajor-2023-01-05/

Izin IAM untuk langkah penyalinan

Agar langkah penyalinan berhasil, pastikan peran eksekusi untuk alur kerja Anda berisi izin berikut.

{ "Sid": "ListBucket", "Effect": "Allow", "Action": "s3:ListBucket", "Resource": [ "arn:aws:s3:::destination-bucket-name" ] }, { "Sid": "HomeDirObjectAccess", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:DeleteObjectVersion", "s3:DeleteObject", "s3:GetObjectVersion" ], "Resource": "arn:aws:s3:::destination-bucket-name/*" }
catatan

s3:ListBucketIzin hanya diperlukan jika Anda tidak memilih Timpa yang ada. Izin ini memeriksa bucket Anda untuk melihat apakah file dengan nama yang sama sudah ada. Jika Anda telah memilih Timpa yang ada, alur kerja tidak perlu memeriksa file, dan hanya bisa menulisnya.

Jika file Amazon S3 Anda memiliki tag, Anda perlu menambahkan satu atau dua izin ke kebijakan IAM Anda.

  • Tambahkan s3:GetObjectTagging file Amazon S3 yang tidak berversi.

  • Tambahkan s3:GetObjectVersionTagging untuk file Amazon S3 yang berversi.

Dekripsi file

Blog AWS penyimpanan memiliki posting yang menjelaskan cara mendekripsi file tanpa menulis kode apa pun menggunakan alur kerja Transfer Family Managed, Enkripsi dan dekripsi file dengan PGP dan. AWS Transfer Family

Gunakan dekripsi PGP dalam alur kerja Anda

Transfer Family memiliki dukungan bawaan untuk dekripsi Pretty Good Privacy (PGP). Anda dapat menggunakan dekripsi PGP pada file yang diunggah melalui SFTP, FTPS, atau FTP ke Amazon Simple Storage Service (Amazon S3) atau Amazon Elastic File System (Amazon EFS).

Untuk menggunakan dekripsi PGP, Anda harus membuat dan menyimpan kunci pribadi PGP yang akan digunakan untuk dekripsi file Anda. Pengguna Anda kemudian dapat mengenkripsi file dengan menggunakan kunci enkripsi PGP yang sesuai sebelum mengunggah file ke server Transfer Family Anda. Setelah Anda menerima file terenkripsi, Anda dapat mendekripsi file-file tersebut dalam alur kerja Anda. Untuk tutorial detail, lihat Menyiapkan alur kerja terkelola untuk mendekripsi file.

Untuk menggunakan dekripsi PGP dalam alur kerja Anda
  1. Identifikasi server Transfer Family untuk meng-host alur kerja Anda, atau buat yang baru. Anda harus memiliki ID server sebelum Anda dapat menyimpan kunci PGP Anda AWS Secrets Manager dengan nama rahasia yang benar.

  2. Simpan kunci PGP Anda di AWS Secrets Manager bawah nama rahasia yang diperlukan. Lihat perinciannya di Kelola kunci PGP. Alur kerja dapat secara otomatis menemukan kunci PGP yang benar untuk digunakan untuk dekripsi berdasarkan nama rahasia di Secrets Manager.

    catatan

    Ketika Anda menyimpan rahasia di Secrets Manager, Anda Akun AWS dikenakan biaya. Untuk informasi tentang harga, lihat AWS Secrets Manager Harga.

  3. Enkripsi file dengan menggunakan key pair PGP Anda. (Untuk daftar klien yang didukung, lihatKlien PGP yang didukung.) Jika Anda menggunakan baris perintah, jalankan perintah berikut. Untuk menggunakan perintah ini, ganti username@example.com dengan alamat email yang Anda gunakan untuk membuat key pair PGP. Ganti testfile.txt dengan nama file yang ingin Anda enkripsi.

    gpg -e -r username@example.com testfile.txt
  4. Unggah file terenkripsi ke server Transfer Family Anda.

  5. Konfigurasikan langkah dekripsi dalam alur kerja Anda. Untuk informasi selengkapnya, lihat Tambahkan langkah dekripsi.

Tambahkan langkah dekripsi

Langkah dekripsi mendekripsi file terenkripsi yang diunggah ke Amazon S3 atau Amazon EFS sebagai bagian dari alur kerja Anda. Untuk detail tentang mengonfigurasi dekripsi, lihat. Gunakan dekripsi PGP dalam alur kerja Anda

Saat Anda membuat langkah dekripsi untuk alur kerja, Anda harus menentukan tujuan untuk file yang didekripsi. Anda juga harus memilih apakah akan menimpa file yang ada jika file sudah ada di lokasi tujuan. Anda dapat memantau hasil alur kerja dekripsi dan mendapatkan log audit untuk setiap file secara real time menggunakan Amazon Logs. CloudWatch

Setelah Anda memilih jenis file Dekripsi untuk langkah Anda, halaman Konfigurasi parameter akan muncul. Isi nilai untuk bagian Konfigurasi parameter dekripsi PGP.

Opsi yang tersedia adalah sebagai berikut:

  • Nama langkah - Masukkan nama deskriptif untuk langkah tersebut.

  • Lokasi file — Dengan menentukan lokasi file, Anda dapat mendekripsi file yang digunakan pada langkah sebelumnya atau file asli yang diunggah.

    catatan

    Parameter ini tidak tersedia jika langkah ini adalah langkah pertama dari alur kerja.

  • Tujuan untuk file yang didekripsi — Pilih bucket Amazon S3 atau sistem file Amazon EFS sebagai tujuan untuk file yang didekripsi.

    • Jika memilih Amazon S3, Anda harus memberikan nama bucket tujuan dan awalan key tujuan. Untuk memparameterisasi awalan key tujuan dengan nama pengguna, ${transfer:UserName} masukkan untuk Destination key prefix. Demikian pula, untuk parameterisasi awalan key tujuan dengan tanggal upload, ${Transfer:UploadDate} masukkan untuk Destination key prefix.

    • Jika Anda memilih Amazon EFS, Anda harus menyediakan sistem dan jalur file tujuan.

    catatan

    Opsi penyimpanan yang Anda pilih di sini harus sesuai dengan sistem penyimpanan yang digunakan oleh server Transfer Family yang terkait dengan alur kerja ini. Jika tidak, Anda akan menerima kesalahan saat mencoba menjalankan alur kerja ini.

  • Timpa yang ada — Jika Anda mengunggah file, dan file dengan nama file yang sama sudah ada di tujuan, perilaku tergantung pada pengaturan untuk parameter ini:

    • Jika Timpa yang ada dipilih, file yang ada diganti dengan file yang sedang diproses.

    • Jika Timpa yang ada tidak dipilih, tidak ada yang terjadi, dan pemrosesan alur kerja berhenti.

      Tip

      Jika penulisan bersamaan dijalankan pada jalur file yang sama, hal itu dapat mengakibatkan perilaku yang tidak terduga saat menimpa file.

Tangkapan layar berikut menunjukkan contoh opsi yang mungkin Anda pilih untuk langkah dekripsi file Anda.

AWS Transfer Family Konsol, menampilkan bagian Konfigurasi parameter dekripsi PGP dengan nilai sampel.

Izin IAM untuk langkah dekripsi

Agar langkah dekripsi berhasil, pastikan peran eksekusi untuk alur kerja Anda berisi izin berikut.

{ "Sid": "ListBucket", "Effect": "Allow", "Action": "s3:ListBucket", "Resource": [ "arn:aws:s3:::destination-bucket-name" ] }, { "Sid": "HomeDirObjectAccess", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:DeleteObjectVersion", "s3:DeleteObject", "s3:GetObjectVersion" ], "Resource": "arn:aws:s3:::destination-bucket-name/*" }, { "Sid": "Decrypt", "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue", ], "Resource": "arn:aws:secretsmanager:region:account-id:secret:aws/transfer/*" }
catatan

s3:ListBucketIzin hanya diperlukan jika Anda tidak memilih Timpa yang ada. Izin ini memeriksa bucket Anda untuk melihat apakah file dengan nama yang sama sudah ada. Jika Anda telah memilih Timpa yang ada, alur kerja tidak perlu memeriksa file, dan hanya bisa menulisnya.

Jika file Amazon S3 Anda memiliki tag, Anda perlu menambahkan satu atau dua izin ke kebijakan IAM Anda.

  • Tambahkan s3:GetObjectTagging file Amazon S3 yang tidak berversi.

  • Tambahkan s3:GetObjectVersionTagging untuk file Amazon S3 yang berversi.

Berkas tag

Untuk menandai file yang masuk untuk pemrosesan hilir lebih lanjut, gunakan langkah tag. Masukkan nilai tag yang ingin Anda tetapkan ke file yang masuk. Saat ini, operasi tag hanya didukung jika Anda menggunakan Amazon S3 untuk penyimpanan server Transfer Family Anda.

Berikut contoh langkah tag menetapkan scan_outcome dan clean sebagai kunci tag dan nilai, masing-masing.

Layar alur kerja yang menampilkan detail untuk langkah penandaan.

Agar langkah tag berhasil, pastikan peran eksekusi untuk alur kerja Anda berisi izin berikut.

{ "Sid": "Tag", "Effect": "Allow", "Action": [ "s3:PutObjectTagging", "s3:PutObjectVersionTagging" ], "Resource": [ "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*" ] }
catatan

Jika alur kerja Anda berisi langkah tag yang berjalan sebelum langkah salin atau dekripsi, Anda perlu menambahkan satu atau dua izin ke kebijakan IAM Anda.

  • Tambahkan s3:GetObjectTagging file Amazon S3 yang tidak berversi.

  • Tambahkan s3:GetObjectVersionTagging untuk file Amazon S3 yang berversi.

Hapus berkas

Untuk menghapus file yang diproses dari langkah alur kerja sebelumnya atau untuk menghapus file yang diunggah semula, gunakan langkah menghapus file.

Layar alur kerja yang menampilkan detail untuk langkah penghapusan.

Agar langkah penghapusan berhasil, pastikan peran eksekusi untuk alur kerja Anda berisi izin berikut.

{ "Sid": "Delete", "Effect": "Allow", "Action": [ "s3:DeleteObjectVersion", "s3:DeleteObject" ], "Resource": "arn:aws:secretsmanager:region:account-ID:secret:aws/transfer/*" }

Variabel bernama untuk alur kerja

Untuk langkah menyalin dan mendekripsi, Anda dapat menggunakan variabel untuk melakukan tindakan secara dinamis. Saat ini, AWS Transfer Family mendukung variabel bernama berikut.

  • Gunakan ${transfer:UserName} untuk menyalin atau mendekripsi file ke tujuan berdasarkan pengguna yang mengunggah file.

  • Gunakan ${transfer:UploadDate} untuk menyalin atau mendekripsi file ke lokasi tujuan berdasarkan tanggal saat ini.

Contoh tag dan hapus alur kerja

Contoh berikut menggambarkan alur kerja yang menandai file masuk yang perlu diproses oleh aplikasi hilir, seperti platform analisis data. Setelah menandai file yang masuk, alur kerja kemudian menghapus file yang awalnya diunggah untuk menghemat biaya penyimpanan.

Console
Contoh tag dan pindahkan alur kerja
  1. Buka AWS Transfer Family konsol di https://console.aws.amazon.com/transfer/.

  2. Di panel navigasi kiri, pilih Alur kerja.

  3. Pada halaman Alur kerja, pilih Buat alur kerja.

  4. Pada halaman Buat alur kerja, masukkan deskripsi. Deskripsi ini muncul di halaman Alur Kerja.

  5. Tambahkan langkah pertama (salin).

    1. Di bagian Langkah nominal, pilih Tambah langkah.

    2. Pilih Salin file, lalu pilih Berikutnya.

    3. Masukkan nama langkah, lalu pilih bucket tujuan dan key prefix.

      Layar alur kerja yang menampilkan detail untuk langkah penyalinan, menampilkan bucket tujuan dan key prefix.
    4. Pilih Berikutnya, lalu tinjau detail untuk langkahnya.

    5. Pilih Buat langkah untuk menambahkan langkah dan melanjutkan.

  6. Tambahkan langkah kedua (tag).

    1. Di bagian Langkah nominal, pilih Tambah langkah.

    2. Pilih File Tag, lalu pilih Berikutnya.

    3. Masukkan nama langkah.

    4. Untuk lokasi File, pilih Tag file yang dibuat dari langkah sebelumnya.

    5. Masukkan Kunci dan Nilai.

      Layar Konfigurasi untuk langkah alur kerja penandaan, dengan Menandai file yang dibuat dari tombol radio langkah sebelumnya dipilih.
    6. Pilih Berikutnya, lalu tinjau detail untuk langkahnya.

    7. Pilih Buat langkah untuk menambahkan langkah dan melanjutkan.

  7. Tambahkan langkah ketiga (hapus).

    1. Di bagian Langkah nominal, pilih Tambah langkah.

    2. Pilih Hapus file, lalu pilih Berikutnya.

      Layar Konfigurasi untuk langkah menghapus alur kerja, dengan tombol Hapus radio file sumber asli yang dipilih.
    3. Masukkan nama langkah.

    4. Untuk lokasi File, pilih Hapus file sumber asli.

    5. Pilih Berikutnya, lalu tinjau detail untuk langkahnya.

    6. Pilih Buat langkah untuk menambahkan langkah dan melanjutkan.

  8. Tinjau konfigurasi alur kerja, lalu pilih Buat alur kerja.

CLI
Contoh tag dan pindahkan alur kerja
  1. Simpan kode berikut ke dalam file; misalnya,tagAndMoveWorkflow.json. Ganti masing-masing user input placeholder dengan informasi Anda sendiri.

    [ { "Type": "COPY", "CopyStepDetails": { "Name": "CopyStep", "DestinationFileLocation": { "S3FileLocation": { "Bucket": "DOC-EXAMPLE-BUCKET", "Key": "test/" } } } }, { "Type": "TAG", "TagStepDetails": { "Name": "TagStep", "Tags": [ { "Key": "name", "Value": "demo" } ], "SourceFileLocation": "${previous.file}" } }, { "Type": "DELETE", "DeleteStepDetails":{ "Name":"DeleteStep", "SourceFileLocation": "${original.file}" } } ]

    Langkah pertama menyalin file yang diunggah ke lokasi Amazon S3 baru. Langkah kedua menambahkan tag (pasangan nilai kunci) ke file (previous.file) yang disalin ke lokasi baru. Dan, akhirnya, langkah ketiga menghapus file asli (original.file).

  2. Buat alur kerja dari file yang disimpan. Ganti masing-masing user input placeholder dengan informasi Anda sendiri.

    aws transfer create-workflow --description "short-description" --steps file://path-to-file --region region-ID

    Sebagai contoh:

    aws transfer create-workflow --description "copy-tag-delete workflow" --steps file://tagAndMoveWorkflow.json --region us-east-1
    catatan

    Untuk detail selengkapnya tentang menggunakan file untuk memuat parameter, lihat Cara memuat parameter dari file.

  3. Perbarui server yang ada.

    catatan

    Langkah ini mengasumsikan Anda sudah memiliki server Transfer Family dan Anda ingin mengaitkan alur kerja dengannya. Jika belum, lihat Mengkonfigurasi titik akhir server SFTP, FTPS, atau FTP. Ganti masing-masing user input placeholder dengan informasi Anda sendiri.

    aws transfer update-server --server-id server-ID --region region-ID --workflow-details '{"OnUpload":[{ "WorkflowId": "workflow-ID","ExecutionRole": "execution-role-ARN"}]}'

    Sebagai contoh:

    aws transfer update-server --server-id s-1234567890abcdef0 --region us-east-2 --workflow-details '{"OnUpload":[{ "WorkflowId": "w-abcdef01234567890","ExecutionRole": "arn:aws:iam::111111111111:role/nikki-wolf-execution-role"}]}'