Menentukan data sensitif menggunakan Secrets Manager - AWS Batch

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

Menentukan data sensitif menggunakan Secrets Manager

Dengan AWS Batch, Anda dapat menyuntikkan data sensitif ke dalam pekerjaan Anda dengan menyimpan data sensitif Anda dalam AWS Secrets Manager rahasia dan kemudian mereferensikannya dalam definisi pekerjaan Anda. Data sensitif yang disimpan dalam rahasia Secrets Manager dapat diungkap ke tugas sebagai variabel lingkungan atau sebagai bagian dari konfigurasi log.

Ketika Anda menyuntikkan rahasia sebagai variabel lingkungan, Anda dapat menentukan kunci JSON atau versi rahasia yang akan disuntikkan. Proses ini membantu Anda mengontrol data sensitif yang diungkap ke tugas Anda. Untuk informasi selengkapnya tentang versioning rahasia, lihat Konsep dan Istilah Penting untuk AWS Secrets Manager dalam Panduan Pengguna AWS Secrets Manager .

Pertimbangan untuk menentukan data sensitif menggunakan Secrets Manager

Hal-hal berikut ini harus dipertimbangkan ketika menggunakan Secrets Manager untuk menentukan data sensitif untuk tugas.

  • Untuk menyuntikkan rahasia menggunakan kunci JSON atau versi rahasia tertentu, instans kontainer di lingkungan komputasi Anda harus memiliki agen kontainer Amazon ECS. versi 1.37.0 atau yang lebih baru. Namun, sebaiknya gunakan versi agen kontainer terbaru. Untuk informasi tentang memeriksa versi agen Anda dan memperbarui ke versi terbaru, lihat Memperbarui agen kontainer Amazon ECS dalam Panduan Developer Amazon Elastic Container Service.

    Untuk menyuntikkan konten lengkap rahasia sebagai variabel lingkungan atau untuk menyuntikkan rahasia dalam konfigurasi log, instance container Anda harus memiliki versi 1.23.0 atau yang lebih baru dari agen kontainer.

  • Hanya rahasia yang menyimpan data teks, yang merupakan rahasia yang dibuat dengan SecretString parameter CreateSecretAPI, yang didukung. Rahasia yang menyimpan data biner, yang merupakan rahasia yang dibuat dengan SecretBinary parameter CreateSecretAPI tidak didukung.

  • Saat menggunakan ketentuan tugas yang mereferensikan rahasia Secrets Manager untuk mengambil data sensitif untuk tugas Anda, jika Anda juga menggunakan VPC endpoint antarmuka, Anda harus membuat VPC endpoint antarmuka untuk Secrets Manager. Untuk informasi selengkapnya, lihat Menggunakan Secrets Manager dengan VPC Endpoint dalam Panduan Pengguna AWS Secrets Manager .

  • Data sensitif disuntikkan ke tugas Anda saat tugas pertama kali dimulai. Jika rahasia kemudian diperbarui atau dirotasi, tugas tidak menerima nilai yang diperbarui secara otomatis. Anda harus meluncurkan tugas baru untuk memaksa layanan meluncurkan tugas baru dengan nilai rahasia yang diperbarui.

Izin IAM yang diperlukan untuk rahasia AWS Batch

Untuk menggunakan fitur ini, Anda harus memiliki peran eksekusi dan mereferensikannya dalam ketentuan tugas Anda. Hal ini memungkinkan agen kontainer untuk menarik sumber daya Secrets Manager yang diperlukan. Untuk informasi selengkapnya, lihat AWS Batch eksekusi peran IAM.

Untuk menyediakan akses ke rahasia Secrets Manager yang Anda buat, tambahkan izin berikut secara manual ke peran eksekusi sebagai kebijakan inline. Untuk informasi lebih lanjut, lihat Menambahkan dan Menghapus Kebijakan IAM dalam Panduan Pengguna IAM.

  • secretsmanager:GetSecretValue–Wajib jika Anda mereferensikan rahasia Secrets Manager.

  • kms:Decrypt–Wajib hanya jika rahasia Anda menggunakan kunci KMS khusus dan bukan kunci default. ARN untuk kunci khusus Anda harus ditambahkan sebagai sumber daya.

Contoh kebijakan inline berikut menambahkan izin yang diperlukan.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue", "kms:Decrypt" ], "Resource": [ "arn:aws:secretsmanager:<region>:<aws_account_id>:secret:<secret_name>", "arn:aws:kms:<region>:<aws_account_id>:key/<key_id>" ] } ] }

Menyuntikkan data sensitif sebagai variabel lingkungan

Dalam ketentuan tugas, Anda dapat menentukan item berikut:

  • Objek secrets yang berisi nama variabel lingkungan untuk diatur dalam tugas

  • Amazon Resource Name (ARN) rahasia Secrets Manager

  • Parameter tambahan yang berisi data sensitif untuk diberikan ke tugas

Contoh berikut menunjukkan sintaks lengkap yang harus ditentukan untuk rahasia Secrets Manager.

arn:aws:secretsmanager:region:aws_account_id:secret:secret-name:json-key:version-stage:version-id

Bagian berikut menjelaskan parameter tambahan. Parameter ini bersifat opsional. Namun, jika Anda tidak menggunakannya, Anda harus menyertakan titik dua : untuk menggunakan nilai default. Contoh disediakan di bawah ini sebagai konteks.

json-key

Menentukan nama kunci dalam pasangan kunci-nilai dengan nilai yang ingin Anda tetapkan sebagai nilai variabel lingkungan. Hanya nilai dalam format JSON yang didukung. Jika Anda tidak menentukan kunci JSON, konten lengkap dari rahasia akan digunakan.

version-stage

Menentukan label tahapan dari versi rahasia yang ingin Anda gunakan. Jika label tahapan versi ditentukan, Anda tidak dapat menentukan ID versi. Jika tidak ada tahap versi yang ditentukan, perilaku default-nya adalah mengambil rahasia dengan label tahapan AWSCURRENT.

Label tahapan digunakan untuk melacak berbagai versi rahasia saat diperbarui atau dirotasi. Setiap versi rahasia memiliki satu atau beberapa label tahapan dan satu ID. Untuk informasi selengkapnya, lihat Persyaratan dan Konsep Utama untuk AWS Secrets Manager di Panduan AWS Secrets Manager Pengguna.

version-id

Menentukan pengidentifikasi unik dari versi rahasia yang ingin Anda gunakan. Jika ID versi ditentukan, Anda tidak dapat menentukan label tahapan versi. Jika tidak ada ID versi yang ditentukan, perilaku default-nya adalah mengambil rahasia dengan label tahapan AWSCURRENT.

ID versi digunakan untuk melacak berbagai versi rahasia saat diperbarui atau dirotasi. Setiap versi rahasia memiliki satu ID. Untuk informasi selengkapnya, lihat Persyaratan dan Konsep Utama untuk AWS Secrets Manager di Panduan AWS Secrets Manager Pengguna.

Contoh ketentuan kontainer

Contoh berikut menunjukkan cara yang dapat Anda gunakan untuk mereferensikan rahasia Secrets Manager dalam ketentuan kontainer Anda.

contoh mereferensikan rahasia penuh

Berikut ini adalah cuplikan ketentuan tugas yang menunjukkan format ketika mereferensikan teks lengkap dari rahasia Secrets Manager.

{ "containerProperties": [{ "secrets": [{ "name": "environment_variable_name", "valueFrom": "arn:aws:secretsmanager:region:aws_account_id:secret:secret_name-AbCdEf" }] }] }
contoh mereferensikan kunci tertentu dalam sebuah rahasia

Berikut ini menunjukkan contoh output dari get-secret-valueperintah yang menampilkan isi rahasia bersama dengan label pementasan versi dan ID versi yang terkait dengannya.

{
    "ARN": "arn:aws:secretsmanager:region:aws_account_id:secret:appauthexample-AbCdEf",
    "Name": "appauthexample",
    "VersionId": "871d9eca-18aa-46a9-8785-981dd39ab30c",
    "SecretString": "{\"username1\":\"password1\",\"username2\":\"password2\",\"username3\":\"password3\"}",
    "VersionStages": [
        "AWSCURRENT"
    ],
    "CreatedDate": 1581968848.921
}

Referensikan kunci tertentu dari output sebelumnya dalam ketentuan kontainer dengan menentukan nama kunci di akhir ARN.

{ "containerProperties": [{ "secrets": [{ "name": "environment_variable_name", "valueFrom": "arn:aws:secretsmanager:region:aws_account_id:secret:appauthexample-AbCdEf:username1::" }] }] }
contoh mereferensikan versi rahasia tertentu

Berikut ini menunjukkan contoh output dari perintah describe-secret yang menampilkan konten rahasia yang tidak terenkripsi bersama dengan metadata untuk semua versi rahasia.

{
    "ARN": "arn:aws:secretsmanager:region:aws_account_id:secret:appauthexample-AbCdEf",
    "Name": "appauthexample",
    "Description": "Example of a secret containing application authorization data.",
    "RotationEnabled": false,
    "LastChangedDate": 1581968848.926,
    "LastAccessedDate": 1581897600.0,
    "Tags": [],
    "VersionIdsToStages": {
        "871d9eca-18aa-46a9-8785-981dd39ab30c": [
            "AWSCURRENT"
        ],
        "9d4cb84b-ad69-40c0-a0ab-cead36b967e8": [
            "AWSPREVIOUS"
        ]
    }
}

Referensikan label tahapan versi tertentu dari output sebelumnya dalam ketentuan kontainer dengan menentukan nama kunci di akhir ARN.

{ "containerProperties": [{ "secrets": [{ "name": "environment_variable_name", "valueFrom": "arn:aws:secretsmanager:region:aws_account_id:secret:appauthexample-AbCdEf::AWSPREVIOUS:" }] }] }

Referensikan ID versi tertentu dari output sebelumnya dalam ketentuan kontainer dengan menentukan nama kunci di akhir ARN.

{ "containerProperties": [{ "secrets": [{ "name": "environment_variable_name", "valueFrom": "arn:aws:secretsmanager:region:aws_account_id:secret:appauthexample-AbCdEf::9d4cb84b-ad69-40c0-a0ab-cead36b967e8" }] }] }
contoh mereferensikan kunci dan label tahapan versi tertentu dari suatu rahasia

Bagian berikut menunjukkan cara mereferensikan kunci tertentu dalam rahasia dan label tahapan versi tertentu.

{ "containerProperties": [{ "secrets": [{ "name": "environment_variable_name", "valueFrom": "arn:aws:secretsmanager:region:aws_account_id:secret:appauthexample-AbCdEf:username1:AWSPREVIOUS:" }] }] }

Untuk menentukan kunci dan versi ID tertentu, gunakan sintaks berikut.

{ "containerProperties": [{ "secrets": [{ "name": "environment_variable_name", "valueFrom": "arn:aws:secretsmanager:region:aws_account_id:secret:appauthexample-AbCdEf:username1::9d4cb84b-ad69-40c0-a0ab-cead36b967e8" }] }] }

Menyuntikkan data sensitif dalam konfigurasi log

Dalam ketentuan tugas Anda, ketika menentukan logConfiguration Anda dapat menentukan secretOptions dengan nama opsi driver log yang akan ditetapkan dalam kontainer dan ARN lengkap dari rahasia Secrets Manager yang berisi data sensitif untuk diberikan ke kontainer.

Berikut ini adalah cuplikan ketentuan tugas yang menunjukkan format ketika mereferensikan rahasia Secrets Manager.

{ "containerProperties": [{ "logConfiguration": [{ "logDriver": "splunk", "options": { "splunk-url": "https://cloud.splunk.com:8080" }, "secretOptions": [{ "name": "splunk-token", "valueFrom": "arn:aws:secretsmanager:region:aws_account_id:secret:secret_name-AbCdEf" }] }] }] }

Menciptakan AWS Secrets Manager rahasia

Anda dapat menggunakan konsol Secrets Manager untuk membuat rahasia untuk data sensitif Anda. Untuk informasi lebih lanjut, lihat Membuat Rahasia Dasar dalam Panduan Pengguna AWS Secrets Manager .

Untuk membuat rahasia dasar

Gunakan Secrets Manager untuk membuat rahasia untuk data sensitif Anda.

  1. Buka konsol Secrets Manager di https://console.aws.amazon.com/secretsmanager/.

  2. Pilih Store a new secret (Simpan rahasia baru).

  3. Untuk Select secret type (Pilih tipe rahasia), pilih Other type of secrets (Tipe rahasia lainnya).

  4. Tentukan detail rahasia khusus Anda sebagai pasangan Key (Kunci) dan Value (Nilai). Misalnya, Anda dapat menentukan kunci UserName, lalu memberikan nama pengguna yang sesuai sebagai nilainya. Tambahkan kunci kedua dengan nama Password dan teks kata sandi sebagai nilainya. Anda juga dapat menambahkan entri untuk nama basis data, alamat server, atau port TCP. Anda dapat menambahkan pasangan sebanyak yang Anda butuhkan untuk menyimpan informasi yang Anda butuhkan.

    Sebagai alternatif, Anda dapat memilih tab Plaintext dan masukkan nilai rahasia dengan cara apa pun yang Anda suka.

  5. Pilih kunci AWS KMS enkripsi yang ingin Anda gunakan untuk mengenkripsi teks yang dilindungi secara rahasia. Jika Anda tidak memilihnya, Secrets Manager akan memeriksa apakah ada kunci default untuk akun tersebut, dan menggunakannya jika ada. Jika kunci default tidak ada, Secrets Manager akan membuatnya untuk Anda secara otomatis. Anda juga dapat memilih Tambahkan kunci baru untuk membuat kunci KMS khusus untuk rahasia ini. Untuk membuat kunci KMS Anda sendiri, Anda harus memiliki izin untuk membuat kunci KMS di akun Anda.

  6. Pilih Selanjutnya.

  7. Untuk Secret name (Nama rahasia), ketik nama dan jalur opsional, misalnya production/MyAwesomeAppSecret atau development/TestSecret, lalu pilih Next (Berikutnya). Anda dapat menambahkan deskripsi secara opsional untuk membantu Anda mengingat tujuan dari rahasia ini nanti.

    Nama rahasia harus merupakan huruf, digit, atau salah satu karakter ASCII berikut: /_+ =.@-

  8. (Opsional) Di sini, Anda dapat mengonfigurasi rotasi untuk rahasia Anda. Untuk prosedur ini, biarkan tetap Disable automatic rotation (Nonaktifkan rotasi otomatis) dan pilih Next (Berikutnya).

    Untuk informasi tentang cara mengonfigurasi rotasi pada rahasia baru atau yang sudah ada, lihat Memutar AWS Secrets Manager Rahasia Anda.

  9. Tinjau pengaturan Anda, lalu pilih Store secret (Simpan rahasia) untuk menyimpan semua yang Anda masukkan sebagai rahasia baru di Secrets Manager.