View a markdown version of this page

Praktik terbaik keamanan di Amazon MWAA - Amazon Managed Workflows for Apache Airflow

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

Praktik terbaik keamanan di Amazon MWAA

Amazon MWAA menyediakan sejumlah fitur keamanan untuk dipertimbangkan saat Anda mengembangkan dan menerapkan kebijakan keamanan Anda sendiri. Praktik terbaik berikut adalah pedoman umum dan tidak mewakili solusi keamanan yang lengkap. Karena praktik terbaik ini mungkin tidak sesuai atau tidak memadai untuk lingkungan Anda, perlakukan itu sebagai pertimbangan yang bermanfaat, bukan sebagai resep.

  • Gunakan kebijakan izin yang paling tidak permisif. Berikan izin hanya untuk sumber daya atau tindakan yang dibutuhkan pengguna untuk melakukan tugas.

  • Gunakan AWS CloudTrail untuk memantau aktivitas pengguna di akun Anda.

  • Pastikan kebijakan bucket Amazon S3 dan ACL objek memberikan izin kepada pengguna dari lingkungan Amazon MWAA terkait untuk memasukkan objek ke dalam bucket. Ini memastikan bahwa pengguna dengan izin untuk menambahkan alur kerja ke bucket juga memiliki izin untuk menjalankan alur kerja di Airflow.

  • Gunakan bucket Amazon S3 yang terkait dengan lingkungan Amazon MWAA. Bucket Amazon S3 Anda dapat berupa nama apa pun. Jangan menyimpan benda lain di dalam ember, atau gunakan bucket dengan layanan lain.

Praktik terbaik keamanan di Apache Airflow

Apache Airflow bukan multi-tenant. Meskipun ada langkah-langkah kontrol akses untuk membatasi beberapa fitur untuk pengguna tertentu, yang diimplementasikan Amazon MWAA, pembuat DAG memang memiliki kemampuan untuk menulis DAG yang dapat mengubah hak pengguna Apache Airflow dan berinteraksi dengan metadatabase yang mendasarinya.

Kami merekomendasikan langkah-langkah berikut saat bekerja dengan Apache Airflow di Amazon MWAA untuk memastikan metadatabase dan DAG lingkungan Anda aman.

  • Gunakan lingkungan terpisah untuk tim terpisah dengan akses penulisan DAG, atau kemampuan untuk menambahkan file ke /dags folder Amazon S3 Anda, dengan asumsi apa pun yang dapat diakses oleh Amazon MWAA Execution Role atau koneksi https://airflow.apache.org/docs/apache-airflow/2.0.2/howto/connection.html Apache Airflow juga dapat diakses oleh pengguna yang dapat menulis ke lingkungan.

  • Jangan berikan akses folder Amazon S3 DAG langsung. Sebagai gantinya, gunakan CI/CD alat untuk menulis DAG ke Amazon S3, dengan langkah validasi yang memastikan bahwa kode DAG memenuhi pedoman keamanan tim Anda.

  • Cegah akses pengguna ke bucket Amazon S3 lingkungan Anda. Sebagai gantinya, gunakan pabrik DAG yang menghasilkan DAG berdasarkan YAML, JSON, atau file definisi lainnya yang disimpan di lokasi terpisah dari bucket Amazon MWAA Amazon S3 tempat Anda menyimpan DAG.

  • Simpan rahasia di Manajer Rahasia. Meskipun ini tidak akan mencegah pengguna yang dapat menulis DAG membaca rahasia, itu akan mencegah mereka memodifikasi rahasia yang digunakan lingkungan Anda.

Mendeteksi perubahan pada hak pengguna Apache Airflow

Anda dapat menggunakan CloudWatch Logs Insights untuk mendeteksi kejadian DAG yang mengubah hak pengguna Apache Airflow. Untuk melakukannya, Anda dapat menggunakan aturan ter EventBridge jadwal, fungsi Lambda, dan CloudWatch Logs Insights untuk mengirimkan pemberitahuan ke CloudWatch metrik setiap kali salah satu DAG mengubah hak pengguna Apache Airflow.

Prasyarat

Untuk menyelesaikan langkah-langkah berikut, Anda memerlukan yang berikut:

Untuk mengonfigurasi notifikasi untuk perubahan hak pengguna Apache Airflow
  1. Buat fungsi Lambda yang menjalankan string kueri CloudWatch Logs Insights berikut terhadap lima grup log lingkungan Amazon MWAA (DAGProcessing,,, Scheduler TaskWebServer, danWorker).

    fields @log, @timestamp, @message | filter @message like "add-role" | stats count() by @log
  2. Buat EventBridge aturan yang berjalan sesuai jadwal, dengan fungsi Lambda yang Anda buat pada langkah sebelumnya sebagai target aturan. Konfigurasikan jadwal Anda menggunakan ekspresi cron atau rate untuk dijalankan secara berkala.