Menggunakan manifes untuk mengaktifkan fitur pengambilan tambahan - AWS AppConfig

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

Menggunakan manifes untuk mengaktifkan fitur pengambilan tambahan

AWS AppConfig Agen menawarkan fitur tambahan berikut untuk membantu Anda mengambil konfigurasi untuk aplikasi Anda.

Memahami manifestasi agen

Untuk mengaktifkan fitur AWS AppConfig Agen ini, Anda membuat manifes. Manifes adalah sekumpulan data konfigurasi yang Anda berikan untuk mengontrol tindakan yang dapat dilakukan agen. Sebuah manifes ditulis dalamJSON. Ini berisi satu set kunci tingkat atas yang sesuai dengan konfigurasi berbeda yang telah Anda gunakan. AWS AppConfig

Manifes dapat mencakup beberapa konfigurasi. Selanjutnya, setiap konfigurasi dalam manifes dapat mengidentifikasi satu atau lebih fitur agen yang akan digunakan untuk konfigurasi yang ditentukan. Isi manifes menggunakan format berikut:

{ "application_name:environment_name:configuration_name": { "agent_feature_to_enable_1": { "feature-setting-key": "feature-setting-value" }, "agent_feature_to_enable_2": { "feature-setting-key": "feature-setting-value" } } }

Berikut adalah contoh JSON untuk manifes dengan dua konfigurasi. Konfigurasi pertama (MyApp) tidak menggunakan fitur AWS AppConfig Agen apa pun. Konfigurasi kedua (My2ndApp) menggunakan salinan konfigurasi tulis ke disk dan fitur pengambilan multi-akun:

{ "MyApp:Test:MyAllowListConfiguration": {}, "My2ndApp:Beta:MyEnableMobilePaymentsFeatureFlagConfiguration": { "credentials": { "roleArn": "arn:us-west-1:iam::123456789012:role/MyTestRole", "roleExternalId": "00b148e2-4ea4-46a1-ab0f-c422b54d0aac", "roleSessionName": "AwsAppConfigAgent", "credentialsDuration": "2h" }, "writeTo": { "path": "/tmp/aws-appconfig/my-2nd-app/beta/my-enable-payments-feature-flag-configuration.json" } } }
Cara memasok manifes agen

Anda dapat menyimpan manifes sebagai file di lokasi di mana AWS AppConfig Agen dapat membacanya. Atau, Anda dapat menyimpan manifes sebagai AWS AppConfig konfigurasi dan mengarahkan agen ke sana. Untuk menyediakan manifes agen, Anda harus menetapkan variabel MANIFEST lingkungan dengan salah satu nilai berikut:

Lokasi manifes Nilai variabel lingkungan Kasus penggunaan

File

berkas: /jalur/ke/agent-manifest.json

Gunakan metode ini jika manifes Anda tidak sering berubah.

AWS AppConfig konfigurasi

application-name:environment-name:configuration-name

Gunakan metode ini untuk pembaruan dinamis. Anda dapat memperbarui dan menerapkan manifes yang disimpan AWS AppConfig sebagai konfigurasi dengan cara yang sama seperti Anda menyimpan AWS AppConfig konfigurasi lainnya.

Variabel lingkungan

Konten manifes (JSON)

Gunakan metode ini jika manifes Anda tidak sering berubah. Metode ini berguna dalam lingkungan kontainer di mana lebih mudah untuk mengatur variabel lingkungan daripada mengekspos file.

Untuk informasi selengkapnya tentang menyetel variabel untuk AWS AppConfig Agen, lihat topik yang relevan untuk kasus penggunaan Anda:

Mengkonfigurasi AWS AppConfig Agen untuk mengambil konfigurasi dari beberapa akun

Anda dapat mengonfigurasi AWS AppConfig Agen untuk mengambil konfigurasi dari beberapa Akun AWS dengan memasukkan penggantian kredensi dalam manifes Agen. AWS AppConfig Penggantian kredenal mencakup Amazon Resource Name (ARN) dari peran AWS Identity and Access Management (IAM), ID peran, nama sesi, dan durasi untuk berapa lama agen dapat mengambil peran tersebut.

Anda memasukkan detail ini di bagian “kredensial” di manifes. Bagian “kredensial” menggunakan format berikut:

{ "application_name:environment_name:configuration_name": { "credentials": { "roleArn": "arn:partition:iam::account_ID:role/roleName", "roleExternalId": "string", "roleSessionName": "string", "credentialsDuration": "time_in_hours" } } }

Inilah contohnya:

{ "My2ndApp:Beta:MyEnableMobilePaymentsFeatureFlagConfiguration": { "credentials": { "roleArn": "arn:us-west-1:iam::123456789012:role/MyTestRole", "roleExternalId": "00b148e2-4ea4-46a1-ab0f-c422b54d0aac", "roleSessionName": "AWSAppConfigAgent", "credentialsDuration": "2h" } } }

Sebelum mengambil konfigurasi, agen membaca detail kredensyal untuk konfigurasi dari manifes dan kemudian mengasumsikan IAM peran yang ditentukan untuk konfigurasi tersebut. Anda dapat menentukan kumpulan penggantian kredensyal yang berbeda untuk konfigurasi yang berbeda dalam satu manifes. Diagram berikut menunjukkan bagaimana AWS AppConfig Agen, saat berjalan di Akun A (akun pengambilan), mengasumsikan peran terpisah yang ditentukan untuk Akun B dan C (akun vendor) dan kemudian memanggil GetLatestConfigurationAPIoperasi untuk mengambil data konfigurasi agar tidak AWS AppConfig berjalan di akun tersebut:

Bagaimana AWS AppConfig Agen bekerja dengan IAM peran secara terpisah Akun AWS.

Konfigurasikan izin untuk mengambil data konfigurasi dari akun vendor

AWS AppConfig Agen yang berjalan di akun pengambilan memerlukan izin untuk mengambil data konfigurasi dari akun vendor. Anda memberikan izin kepada agen dengan membuat peran AWS Identity and Access Management (IAM) di setiap akun vendor. AWS AppConfig Agen di akun pengambilan mengasumsikan peran ini untuk mendapatkan data dari akun vendor. Selesaikan prosedur di bagian ini untuk membuat kebijakan IAM izin, IAM peran, dan menambahkan penggantian agen ke manifes.

Sebelum Anda mulai

Kumpulkan informasi berikut sebelum Anda membuat kebijakan izin dan peran di dalamnyaIAM.

  • IDsUntuk masing-masing Akun AWS. Akun pengambilan adalah akun yang akan memanggil akun lain untuk data konfigurasi. Akun vendor adalah akun yang akan menjual data konfigurasi ke akun pengambilan.

  • Nama IAM peran yang digunakan oleh AWS AppConfig dalam akun pengambilan. Berikut daftar peran yang digunakan oleh AWS AppConfig, secara default:

    • Untuk Amazon Elastic Compute Cloud (AmazonEC2), AWS AppConfig gunakan peran instance.

    • Untuk AWS Lambda, AWS AppConfig menggunakan peran eksekusi Lambda.

    • Untuk Amazon Elastic Container Service (AmazonECS) dan Amazon Elastic Kubernetes Service (EKSAmazon AWS AppConfig ), gunakan peran container.

    Jika Anda mengonfigurasi AWS AppConfig Agen untuk menggunakan IAM peran yang berbeda dengan menentukan variabel ROLE_ARN lingkungan, catat nama itu.

Buat kebijakan izin

Gunakan prosedur berikut untuk membuat kebijakan izin menggunakan IAM konsol. Selesaikan prosedur di masing-masing Akun AWS yang akan menjual data konfigurasi untuk akun pengambilan.

Untuk membuat IAM kebijakan
  1. Masuk ke AWS Management Console akun vendor.

  2. Buka IAM konsol di https://console.aws.amazon.com/iam/.

  3. Di panel navigasi, pilih Kebijakan dan kemudian pilih Buat kebijakan.

  4. Pilih JSONopsi.

  5. Di editor Kebijakan, ganti default JSON dengan pernyataan kebijakan berikut. Perbarui setiap example resource placeholder dengan detail akun vendor.

    { "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "appconfig:StartConfigurationSession", "appconfig:GetLatestConfiguration" ], "Resource": "arn:partition:appconfig:region:vendor_account_ID:application/vendor_application_ID/environment/vendor_environment_ID/configuration/vendor_configuration_ID" } ] }

    Inilah contohnya:

    { "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "appconfig:StartConfigurationSession", "appconfig:GetLatestConfiguration" ], "Resource": "arn:aws:appconfig:us-east-2:111122223333:application/abc123/environment/def456/configuration/hij789" } ] }
  6. Pilih Berikutnya.

  7. Di bidang Nama kebijakan, masukkan nama.

  8. (Opsional) Untuk Menambahkan tag, tambahkan satu atau beberapa pasangan nilai kunci tag untuk mengatur, melacak, atau mengontrol akses kebijakan ini.

  9. Pilih Buat kebijakan. Sistem mengembalikan Anda ke halaman Kebijakan.

  10. Ulangi prosedur ini di masing-masing Akun AWS yang akan menjual data konfigurasi untuk akun pengambilan.

Buat IAM peran

Gunakan prosedur berikut untuk membuat IAM peran menggunakan IAM konsol. Selesaikan prosedur di masing-masing Akun AWS yang akan menjual data konfigurasi untuk akun pengambilan.

Untuk membuat IAM peran
  1. Masuk ke AWS Management Console akun vendor.

  2. Buka IAM konsol di https://console.aws.amazon.com/iam/.

  3. Di panel navigasi, pilih Peran, lalu pilih Buat kebijakan.

  4. Untuk jenis entitas Tepercaya, pilih Akun AWS.

  5. Di Akun AWSbagian ini, pilih Lain Akun AWS.

  6. Di bidang ID Akun, masukkan ID akun pengambilan.

  7. (Opsional) Sebagai praktik terbaik keamanan untuk peran asumsi ini, pilih Memerlukan ID eksternal dan masukkan string.

  8. Pilih Berikutnya.

  9. Pada halaman Tambahkan izin, gunakan bidang Pencarian untuk menemukan kebijakan yang Anda buat di prosedur sebelumnya. Pilih kotak centang di sebelah namanya.

  10. Pilih Berikutnya.

  11. Untuk nama Peran, masukkan nama.

  12. (Opsional) Untuk Deskripsi, masukkan deskripsi.

  13. Untuk Langkah 1: Pilih entitas tepercaya, pilih Edit. Ganti kebijakan JSON kepercayaan default dengan kebijakan berikut. Perbarui setiap example resource placeholder dengan informasi dari akun pengambilan Anda.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::retrieval_account_ID:role/appconfig_role_in_retrieval_account" }, "Action": "sts:AssumeRole" } ] }
  14. (Opsional) Untuk Tag, tambahkan satu atau beberapa pasangan nilai tag-key untuk mengatur, melacak, atau mengontrol akses untuk peran ini.

  15. Pilih Buat peran. Sistem mengembalikan Anda ke halaman Peran.

  16. Cari peran yang baru saja Anda buat. Pilih itu. Di ARNbagian ini, salinARN. Anda akan menentukan informasi ini dalam prosedur berikutnya.

Tambahkan penggantian kredensi ke manifes

Setelah Anda membuat IAM peran di akun vendor, perbarui manifes di akun pengambilan. Secara khusus, tambahkan blok kredensional dan IAM peran ARN untuk mengambil data konfigurasi dari akun vendor. Berikut JSON formatnya:

{ "vendor_application_name:vendor_environment_name:vendor_configuration_name": { "credentials": { "roleArn": "arn:partition:iam::vendor_account_ID:role/name_of_role_created_in_vendor_account", "roleExternalId": "string", "roleSessionName": "string", "credentialsDuration": "time_in_hours" } } }

Inilah contohnya:

{ "My2ndApp:Beta:MyEnableMobilePaymentsFeatureFlagConfiguration": { "credentials": { "roleArn": "arn:us-west-1:iam::123456789012:role/MyTestRole", "roleExternalId": "00b148e2-4ea4-46a1-ab0f-c422b54d0aac", "roleSessionName": "AwsAppConfigAgent", "credentialsDuration": "2h" } } }
Validasi bahwa pengambilan multi-akun berfungsi

Anda dapat memvalidasi bahwa agen tersebut dapat mengambil data konfigurasi dari beberapa akun dengan meninjau log agen. AWS AppConfig Log INFO level untuk data awal yang diambil untuk 'YourApplicationNameYourEnvironmentName:YourConfigurationName' adalah indikator terbaik untuk pengambilan yang berhasil. Jika pengambilan gagal, Anda akan melihat log ERROR level yang menunjukkan alasan kegagalan. Berikut adalah contoh untuk pengambilan yang berhasil dari akun vendor:

[appconfig agent] 2023/11/13 11:33:27 INFO AppConfig Agent 2.0.x [appconfig agent] 2023/11/13 11:33:28 INFO serving on localhost:2772 [appconfig agent] 2023/11/13 11:33:28 INFO retrieved initial data for 'MyTestApplication:MyTestEnvironment:MyDenyListConfiguration' in XX.Xms

Mengkonfigurasi AWS AppConfig Agen untuk menulis salinan konfigurasi ke disk

Anda dapat mengonfigurasi AWS AppConfig Agen untuk secara otomatis menyimpan salinan konfigurasi ke disk dalam teks biasa. Fitur ini memungkinkan pelanggan dengan aplikasi yang membaca data konfigurasi dari disk untuk diintegrasikan AWS AppConfig.

Fitur ini tidak dirancang untuk digunakan sebagai fitur cadangan konfigurasi. AWS AppConfig Agen tidak membaca dari file konfigurasi yang disalin ke disk. Jika Anda ingin mencadangkan konfigurasi ke disk, lihat variabel BACKUP_DIRECTORY dan PRELOAD_BACKUP lingkungan untuk Menggunakan AWS AppConfig Agen dengan Amazon EC2 atau Menggunakan AWS AppConfig Agen dengan Amazon ECS dan Amazon EKS.

Awas

Perhatikan informasi penting berikut tentang fitur ini:

  • Konfigurasi yang disimpan ke disk disimpan dalam teks biasa dan dapat dibaca manusia. Jangan aktifkan fitur ini untuk konfigurasi yang menyertakan data sensitif.

  • Fitur ini menulis ke disk lokal. Gunakan prinsip hak istimewa terkecil untuk izin sistem file. Untuk informasi selengkapnya, lihat Terapkan akses hak akses paling rendah.

Untuk mengaktifkan konfigurasi tulis salin ke disk
  1. Edit manifes.

  2. Pilih konfigurasi yang ingin Anda tulis AWS AppConfig ke disk dan tambahkan writeTo elemen. Inilah contohnya:

    { "application_name:environment_name:configuration_name": { "writeTo": { "path": "path_to_configuration_file" } } }

    Inilah contohnya:

    { "MyTestApp:MyTestEnvironment:MyNewConfiguration": { "writeTo": { "path": "/tmp/aws-appconfig/mobile-app/beta/enable-mobile-payments" } } }
  3. Simpan perubahan Anda. File configuration.json akan diperbarui setiap kali data konfigurasi baru diterapkan.

Validasi bahwa menulis salinan konfigurasi ke disk berfungsi

Anda dapat memvalidasi bahwa salinan konfigurasi sedang ditulis ke disk dengan melihat dengan meninjau log AWS AppConfig agen. Entri INFO log dengan frasa "konfigurasi INFO tulis 'application:environment:configuration'untuk file_path“menunjukkan bahwa AWS AppConfig Agen menulis salinan konfigurasi ke disk.

Inilah contohnya:

[appconfig agent] 2023/11/13 11:33:27 INFO AppConfig Agent 2.0.x [appconfig agent] 2023/11/13 11:33:28 INFO serving on localhost:2772 [appconfig agent] 2023/11/13 11:33:28 INFO retrieved initial data for 'MobileApp:Beta:EnableMobilePayments' in XX.Xms [appconfig agent] 2023/11/13 17:05:49 INFO wrote configuration 'MobileApp:Beta:EnableMobilePayments' to /tmp/configs/your-app/your-env/your-config.json