Gunakan register-on-premises-instance perintah (ARN Sesi IAM) untuk mendaftarkan instans lokal - AWS CodeDeploy

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

Gunakan register-on-premises-instance perintah (ARN Sesi IAM) untuk mendaftarkan instans lokal

Untuk kontrol maksimum atas otentikasi dan pendaftaran instans lokal, Anda dapat menggunakan register-on-premises-instanceperintah dan kredensyal sementara yang diperbarui secara berkala yang dihasilkan dengan (). AWS Security Token Service AWS STS Peran IAM statis untuk instance mengasumsikan peran AWS STS kredenal yang diperbarui ini untuk melakukan operasi penerapan. CodeDeploy

Metode ini paling berguna ketika Anda perlu mendaftarkan sejumlah besar instance. Ini memungkinkan Anda untuk mengotomatiskan proses pendaftaran dengan CodeDeploy. Anda dapat menggunakan sistem identitas dan autentikasi Anda sendiri untuk mengautentikasi instans lokal dan mendistribusikan kredensil sesi IAM dari layanan ke instans untuk digunakan. CodeDeploy

catatan

Atau, Anda dapat menggunakan pengguna IAM bersama yang didistribusikan ke semua instans lokal untuk memanggil AWS STS AssumeRoleAPI guna mengambil kredensil sesi untuk instance lokal. Metode ini kurang aman dan tidak direkomendasikan untuk lingkungan produksi atau misi kritis.

Gunakan informasi dalam topik berikut untuk mengonfigurasi instans lokal menggunakan kredensil keamanan sementara yang dihasilkan. AWS STS

Prasyarat pendaftaran ARN sesi IAM

Selain prasyarat yang tercantum dalamPrasyarat untuk mengonfigurasi instans lokal, persyaratan tambahan berikut harus dipenuhi:

Izin IAM

Identitas IAM yang Anda gunakan untuk mendaftarkan instans lokal harus diberikan izin untuk melakukan operasi. CodeDeploy Pastikan kebijakan AWSCodeDeployFullAccessterkelola dilampirkan pada identitas IAM. Untuk selengkapnya, lihat kebijakan AWS terkelola di Panduan Pengguna IAM.

Sistem untuk menyegarkan kredensyal sementara

Jika Anda menggunakan ARN sesi IAM untuk mendaftarkan instans lokal, Anda harus memiliki sistem untuk menyegarkan kredenal sementara secara berkala. Kredensi sementara kedaluwarsa setelah satu jam atau lebih cepat jika periode yang lebih pendek ditentukan saat kredensil dihasilkan. Ada dua metode untuk menyegarkan kredensyal:

  • Metode 1: Gunakan sistem identitas dan otentikasi yang ada di jaringan perusahaan Anda dengan skrip CRON yang secara berkala melakukan polling identitas dan sistem otentikasi dan menyalin kredensyal sesi terbaru ke instans. Ini memungkinkan Anda untuk mengintegrasikan otentikasi dan struktur identitas Anda AWS tanpa perlu membuat perubahan pada CodeDeploy agen atau layanan untuk mendukung jenis otentikasi yang Anda gunakan di organisasi Anda.

  • Metode 2: Jalankan tugas CRON secara berkala pada instance untuk memanggil AWS STS AssumeRoletindakan dan menulis kredensyal sesi ke file yang dapat diakses CodeDeploy agen. Metode ini masih memerlukan penggunaan pengguna IAM dan menyalin kredensil ke instans lokal, tetapi Anda dapat menggunakan kembali pengguna dan kredensil IAM yang sama di seluruh armada instans lokal.

catatan

Terlepas dari apakah Anda menggunakan metode 1 atau 2, Anda harus menyiapkan proses untuk memulai ulang CodeDeploy agen setelah kredensyal sesi sementara diperbarui sehingga kredensyal baru berlaku.

Untuk informasi tentang membuat dan bekerja dengan AWS STS kredensyal, lihat Referensi AWS Security Token Service API dan Menggunakan kredensyal keamanan sementara untuk meminta akses ke sumber daya. AWS

Langkah 1: Buat peran IAM yang akan diasumsikan oleh instans lokal

Anda dapat menggunakan konsol IAM AWS CLI atau IAM untuk membuat peran IAM yang akan digunakan oleh instans lokal untuk mengautentikasi dan berinteraksi. CodeDeploy

Anda hanya perlu membuat peran IAM tunggal. Setiap instans lokal Anda dapat mengambil peran ini untuk mengambil kredenal keamanan sementara yang memberikan izin yang diberikan untuk peran ini.

Peran yang Anda buat akan memerlukan izin berikut untuk mengakses file yang diperlukan untuk menginstal CodeDeploy agen:

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "s3:Get*", "s3:List*" ], "Effect": "Allow", "Resource": "*" } ] }

Sebaiknya batasi kebijakan ini hanya pada bucket Amazon S3 yang perlu diakses instans lokal. Jika Anda membatasi kebijakan ini, pastikan untuk memberikan akses ke bucket Amazon S3 yang berisi agen. CodeDeploy Jika tidak, kesalahan dapat terjadi setiap kali CodeDeploy agen diinstal atau diperbarui pada instans lokal. Untuk informasi tentang mengontrol akses ke bucket Amazon S3, lihat Mengelola izin akses ke sumber daya Amazon S3 Anda.

Untuk membuat peran IAM
  1. Panggil perintah create-role menggunakan --role-name opsi untuk menentukan nama untuk peran IAM (misalnya,CodeDeployInstanceRole) dan --assume-role-policy-document opsi untuk memberikan izin.

    Saat Anda membuat peran IAM untuk instance ini, Anda mungkin memberinya nama CodeDeployInstanceRole dan menyertakan izin yang diperlukan dalam file bernama: CodeDeployRolePolicy.json

    aws iam create-role --role-name CodeDeployInstanceRole --assume-role-policy-document file://CodeDeployRolePolicy.json
  2. Dalam output panggilan ke create-role perintah, perhatikan nilai bidang ARN. Sebagai contoh:

    arn:aws:iam::123456789012:role/CodeDeployInstanceRole

    Anda akan memerlukan peran ARN saat menggunakan AWS STS AssumeRoleAPI untuk menghasilkan kredensi jangka pendek untuk setiap instance.

    Untuk informasi selengkapnya tentang membuat peran IAM, lihat Membuat peran untuk mendelegasikan izin ke AWS layanan di Panduan Pengguna IAM.

    Untuk informasi tentang menetapkan izin ke peran yang ada, lihat put-role-policydi Referensi AWS CLI Perintah.

Langkah 2: Hasilkan kredensyal sementara untuk instance individual menggunakan AWS STS

Sebelum Anda membuat kredensyal sementara yang akan digunakan untuk mendaftarkan instans lokal, Anda harus membuat atau memilih identitas IAM (pengguna atau peran) yang akan Anda buat kredensyal sementara. sts:AssumeRoleIzin harus disertakan dalam pengaturan kebijakan untuk identitas IAM ini.

Untuk informasi tentang pemberian sts:AssumeRole izin ke identitas IAM, lihat Membuat peran untuk mendelegasikan izin ke layanan dan. AWS AssumeRole

Ada dua cara untuk menghasilkan kredensyal sementara:

  • Gunakan perintah assume-role dengan. AWS CLI Sebagai contoh:

    aws sts assume-role --role-arn arn:aws:iam::12345ACCOUNT:role/role-arn --role-session-name session-name

    Di mana:

    catatan

    Jika Anda menggunakan skrip CRON yang secara berkala melakukan polling identitas dan sistem otentikasi dan menyalin kredensyal sesi terbaru ke instance (metode 1 untuk menyegarkan kredensyal sementara yang dijelaskan dalamPrasyarat pendaftaran ARN sesi IAM), Anda dapat menggunakan SDK apa pun yang didukung untuk memanggil. AWS AssumeRole

  • Gunakan alat yang disediakan oleh AWS.

    aws-codedeploy-session-helper Alat ini menghasilkan AWS STS kredensil dan menuliskannya ke file yang Anda tempatkan pada instance. Alat ini paling cocok untuk metode 2 untuk menyegarkan kredensyal sementara yang dijelaskan dalam. Prasyarat pendaftaran ARN sesi IAM Dalam metode ini, aws-codedeploy-session-helper alat ditempatkan pada setiap instance dan menjalankan perintah menggunakan izin pengguna IAM. Setiap instance menggunakan kredensyal pengguna IAM yang sama dalam hubungannya dengan alat ini.

    Untuk informasi lebih lanjut, lihat aws-codedeploy-session-helper GitHub repositori.

    catatan

    Setelah Anda membuat kredensil sesi IAM, letakkan kredenal sesi IAM di lokasi mana pun di instans lokal. Pada langkah berikutnya, Anda akan mengonfigurasi CodeDeploy agen untuk mengakses kredensil di lokasi ini.

Sebelum melanjutkan, pastikan sistem yang akan Anda gunakan untuk menyegarkan kredenal sementara secara berkala sudah ada. Jika kredensyal sementara tidak di-refresh, penerapan ke instans lokal akan gagal. Untuk informasi selengkapnya, lihat “Sistem untuk menyegarkan kredensyal sementara” di. Prasyarat pendaftaran ARN sesi IAM

Langkah 3: Tambahkan file konfigurasi ke instans lokal

Tambahkan file konfigurasi ke instans lokal, menggunakan izin root atau administrator. File konfigurasi ini digunakan untuk mendeklarasikan kredenal IAM dan AWS wilayah target yang akan digunakan. CodeDeploy File harus ditambahkan ke lokasi tertentu pada instance lokal. File harus menyertakan ARN sesi sementara IAM, ID kunci rahasia dan kunci akses rahasia, dan wilayah target. AWS

Untuk menambahkan file konfigurasi
  1. Membuat file bernama codedeploy.onpremises.yml (untuk Server Ubuntu atau instans lokal RHEL) atau conf.onpremises.yml (untuk instance lokal Windows Server) di lokasi berikut pada instans lokal:

    • Untuk Server Ubuntu: /etc/codedeploy-agent/conf

    • Untuk Windows Server: C:\ProgramData\Amazon\CodeDeploy

  2. Gunakan editor teks untuk menambahkan informasi berikut ke codedeploy.onpremises.yml file yang baru dibuat (Linux) atau conf.onpremises.yml file (Windows):

    --- iam_session_arn: iam-session-arn aws_credentials_file: credentials-file region: supported-region

    Di mana:

Langkah 4: Siapkan instans lokal untuk penerapan CodeDeploy

Instal dan konfigurasikan AWS CLI

Instal dan konfigurasikan instans lokal AWS CLI di tempat. (Ini AWS CLI akan digunakan untuk mengunduh dan menginstal CodeDeploy agen pada instance lokal.)

  1. Untuk menginstal instans lokal, ikuti petunjuk di Menyiapkan instans AWS CLI di Panduan AWS Command Line Interface Pengguna. AWS CLI

    catatan

    CodeDeploy perintah untuk bekerja dengan instance lokal menjadi tersedia di versi 1.7.19 dari. AWS CLI Jika Anda memiliki versi yang AWS CLI sudah diinstal, Anda dapat memeriksa versinya dengan meneleponaws --version.

  2. Untuk mengonfigurasi instans lokal, ikuti petunjuk dalam Mengonfigurasi AWS CLI di AWS Command Line Interface Panduan Pengguna. AWS CLI

    penting

    Saat Anda mengonfigurasi AWS CLI (misalnya, dengan memanggil aws configure perintah), pastikan untuk menentukan ID kunci rahasia dan kunci akses rahasia dari pengguna IAM yang memiliki, setidaknya, izin yang dijelaskan dalam. Prasyarat pendaftaran ARN sesi IAM

Mengatur Variabel Lingkungan AWS_REGION (Server Ubuntu dan RHEL Saja)

Jika Anda tidak menjalankan Ubuntu Server atau RHEL pada instans lokal Anda, lewati langkah ini dan langsung ke “Instal CodeDeploy agen.”

Instal CodeDeploy agen di Server Ubuntu atau instans lokal RHEL dan aktifkan instance untuk memperbarui CodeDeploy agen setiap kali versi baru tersedia. Anda melakukan ini dengan menyetel variabel AWS_REGION lingkungan pada instance ke pengidentifikasi salah satu wilayah yang didukung oleh CodeDeploy. Kami menyarankan Anda menetapkan nilai ke wilayah tempat CodeDeploy aplikasi, grup penyebaran, dan revisi aplikasi Anda berada (misalnya,us-west-2). Untuk daftar wilayah, lihat Wilayah dan titik akhir di. Referensi Umum AWS

Untuk mengatur variabel lingkungan, panggil yang berikut ini dari terminal:

export AWS_REGION=supported-region

Di mana wilayah yang didukung adalah pengenal wilayah (misalnya,). us-west-2

Instal CodeDeploy agen

Langkah 5: Daftarkan instans lokal dengan CodeDeploy

Petunjuk dalam langkah ini mengasumsikan Anda mendaftarkan instans lokal dari instans lokal itu sendiri. Anda dapat mendaftarkan instans lokal dari perangkat atau instans terpisah yang telah AWS CLI diinstal dan dikonfigurasi.

Gunakan AWS CLI untuk mendaftarkan instance lokal CodeDeploy sehingga dapat digunakan dalam penerapan.

Sebelum Anda dapat menggunakan AWS CLI, Anda akan memerlukan ARN dari kredenal sesi sementara yang Anda buat. Langkah 3: Tambahkan file konfigurasi ke instans lokal Misalnya, untuk contoh yang Anda identifikasi sebagaiAssetTag12010298EX:

arn:sts:iam::123456789012:assumed-role/CodeDeployInstanceRole/AssetTag12010298EX

Panggil register-on-premises-instanceperintah, tentukan:

  • Nama yang secara unik mengidentifikasi instance lokal (dengan opsi). --instance-name

    penting

    Untuk membantu mengidentifikasi instans lokal, terutama untuk tujuan debugging, kami sangat menyarankan Anda menentukan nama yang memetakan ke beberapa karakteristik unik instans lokal (misalnya, nama sesi kredenal STS dan nomor seri atau pengenal aset internal, jika berlaku). Jika Anda menentukan alamat MAC sebagai nama, ketahuilah bahwa alamat MAC berisi karakter yang CodeDeploy tidak mengizinkan, seperti titik dua (:). Untuk daftar karakter yang diizinkan, lihatCodeDeploy kuota.

  • ARN sesi IAM yang Anda atur untuk mengautentikasi beberapa instans lokal. Langkah 1: Buat peran IAM yang akan diasumsikan oleh instans lokal

Sebagai contoh:

aws deploy register-on-premises-instance --instance-name name-of-instance --iam-session-arn arn:aws:sts::account-id:assumed-role/role-to-assume/session-name

Di mana:

  • name-of-instanceadalah nama yang Anda gunakan untuk mengidentifikasi instance lokal, sepertiAssetTag12010298EX.

  • account-id adalah ID akun 12 digit untuk organisasi Anda, seperti. 111222333444

  • role-to-assumeadalah nama peran IAM yang Anda buat untuk instance, sepertiCodeDeployInstanceRole.

  • nama sesi adalah nama peran sesi yang Anda tentukan. Langkah 2: Hasilkan kredensyal sementara untuk instance individual menggunakan AWS STS

Langkah 6: Tandai instans lokal

Anda dapat menggunakan konsol AWS CLI atau CodeDeploy konsol untuk menandai instans lokal. (CodeDeploymenggunakan tag instans lokal untuk mengidentifikasi target penerapan selama penerapan.)

Untuk menandai instance lokal (CLI)
  • Panggil perintah add-tags-to-on-premises-instances, dengan menentukan:

    • Nama yang secara unik mengidentifikasi instance lokal (dengan opsi). --instance-names

    • Nama kunci tag instans lokal dan nilai tag yang ingin Anda gunakan (dengan --tags opsi). Anda harus menentukan nama dan nilai. CodeDeploy tidak mengizinkan tag instance lokal yang hanya memiliki nilai.

      Sebagai contoh:

      aws deploy add-tags-to-on-premises-instances --instance-names AssetTag12010298EX --tags Key=Name,Value=CodeDeployDemo-OnPrem
Untuk menandai instance lokal (konsol)
  1. Masuk ke AWS Management Console dan buka CodeDeploy konsol di https://console.aws.amazon.com/codedeploy.

    catatan

    Masuk dengan pengguna yang sama dengan yang Anda aturMemulai dengan CodeDeploy.

  2. Di panel navigasi, perluas Deploy, dan pilih Instans lokal.

  3. Dalam daftar instance lokal, pilih nama instans lokal yang ingin Anda tag.

  4. Dalam daftar tag, pilih atau masukkan kunci tag dan nilai tag yang diinginkan. Setelah Anda memasukkan kunci tag dan nilai tag, baris lain muncul. Anda dapat mengulangi ini hingga 10 tag. Untuk menghapus sebuah tag, pilih Hapus.

  5. Setelah Anda menambahkan tag, pilih Perbarui Tag.

Langkah 7: Menerapkan revisi aplikasi ke instans lokal

Anda sekarang siap untuk menerapkan revisi aplikasi ke instans lokal yang terdaftar dan diberi tag.

Anda menerapkan revisi aplikasi ke instans lokal dengan cara yang mirip dengan menerapkan revisi aplikasi ke instans Amazon EC2. Untuk petunjuk, lihat Buat penerapan dengan CodeDeploy. Instruksi ini mencakup tautan ke prasyarat, termasuk membuat aplikasi, membuat grup penyebaran, dan menyiapkan revisi aplikasi. Jika Anda memerlukan contoh revisi aplikasi sederhana untuk diterapkan, Anda dapat membuat yang dijelaskan Langkah 2: Buat contoh revisi aplikasi dalam. Tutorial: Menerapkan aplikasi ke instans lokal dengan CodeDeploy (Windows Server, Ubuntu Server, atau Red Hat Enterprise Linux)

penting

Jika Anda menggunakan kembali peran CodeDeploy layanan sebagai bagian dari pembuatan grup penerapan yang menargetkan instance lokal, Anda Tag:get* harus menyertakan Action bagian pernyataan kebijakan peran layanan. Untuk informasi selengkapnya, lihat Langkah 2: Buat peran layanan untuk CodeDeploy.

Langkah 8: Lacak penerapan ke instans lokal

Setelah menerapkan revisi aplikasi ke instans lokal yang terdaftar dan ditandai, Anda dapat melacak kemajuan penerapan.

Anda melacak penerapan ke instans lokal dengan cara yang mirip dengan melacak penerapan ke instans Amazon EC2. Untuk petunjuk, lihat Lihat CodeDeploy detail penerapan .