Kendali akses titik akhir klaster Amazon EKS - Amazon EKS

Bantu tingkatkan halaman ini

Ingin berkontribusi pada panduan pengguna ini? Gulir ke bagian bawah halaman ini dan pilih Edit halaman ini GitHub. Kontribusi Anda akan membantu membuat panduan pengguna kami lebih baik untuk semua orang.

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

Kendali akses titik akhir klaster Amazon EKS

Topik ini membantu Anda mengaktifkan akses pribadi untuk titik akhir server Kubernetes API klaster Amazon EKS Anda dan membatasi, atau sepenuhnya menonaktifkan, akses publik dari internet.

Saat Anda membuat klaster baru, Amazon EKS membuat titik akhir untuk server Kubernetes API terkelola yang Anda gunakan untuk berkomunikasi dengan klaster Anda (menggunakan alat Kubernetes manajemen sepertikubectl). Secara default, endpoint server API ini bersifat publik ke internet, dan akses ke server API diamankan menggunakan kombinasi AWS Identity and Access Management (IAM) dan Kubernetes Role Based Access Control (RBAC) asli.

Anda dapat mengaktifkan akses pribadi ke server Kubernetes API sehingga semua komunikasi antara node dan server API tetap berada dalam VPC Anda. Anda dapat membatasi alamat IP yang dapat mengakses server API Anda dari internet, atau sepenuhnya menonaktifkan akses internet ke server API.

catatan

Karena titik akhir ini untuk server Kubernetes API dan bukan AWS PrivateLink titik akhir tradisional untuk berkomunikasi dengan AWS API, titik akhir ini tidak muncul sebagai titik akhir di konsol VPC Amazon.

Saat Anda mengaktifkan akses privat titik akhir untuk klaster Anda, Amazon EKS membuat zona privat Route 53 yang di-hosting atas nama Anda, dan mengaitkannya dengan VPC klaster Anda. Zona privat yang di-hosting ini dikelola oleh Amazon EKS, dan tidak muncul di sumber daya Route 53 akun Anda. Agar zona privat yang di-hosting dapat merutekan lalu lintas ke server API Anda dengan benar, VPC Anda harus memiliki enableDnsHostnames dan enableDnsSupport yang diatur ke true, dan opsi DHCP yang diatur untuk VPC Anda harus menyertakan AmazonProvidedDNS dalam daftar server nama domainnya. Untuk informasi selengkapnya, lihat Memperbarui DNS dukungan untuk VPC Anda dalam Panduan Pengguna Amazon VPC.

Anda dapat menentukan persyaratan akses titik akhir server API ketika membuat klaster baru, dan dapat memperbarui akses tersebut untuk klaster kapanpun.

Memodifikasi akses titik akhir klaster

Gunakan prosedur di bagian ini untuk memodifikasi akses titik akhir untuk klaster yang sudah ada. Tabel berikut menunjukkan kombinasi akses titik akhir server API yang didukung dan perilaku terkaitnya.

Opsi akses titik akhir server API
Akses publik titik akhir Akses privat titik akhir Perilaku
Diaktifkan Dinonaktifkan
  • Ini adalah perilaku default untuk klaster Amazon EKS yang baru.

  • KubernetesPermintaan API yang berasal dari dalam VPC klaster Anda (seperti node untuk mengontrol komunikasi pesawat) meninggalkan VPC tetapi bukan jaringan Amazon.

  • Server API klaster Anda dapat diakses dari internet. Secara opsional, Anda dapat membatasi blok CIDR yang dapat mengakses titik akhir publik. Jika Anda membatasi akses ke blok CIDR tertentu, maka disarankan agar Anda juga mengaktifkan titik akhir pribadi, atau memastikan bahwa blok CIDR yang Anda tentukan menyertakan alamat tempat node dan Fargate Pods (jika Anda menggunakannya) mengakses titik akhir publik.

Diaktifkan Diaktifkan
  • KubernetesPermintaan API dalam VPC klaster Anda (seperti node untuk mengontrol komunikasi pesawat) menggunakan titik akhir VPC pribadi.

  • Server API klaster Anda dapat diakses dari internet. Secara opsional, Anda dapat membatasi blok CIDR yang dapat mengakses titik akhir publik.

Dinonaktifkan Diaktifkan
  • Semua lalu lintas ke server API klaster Anda harus berasal dari dalam VPC klaster Anda atau jaringan terkoneksi.

  • Tidak ada akses publik ke server API Anda dari internet. Perintah kubectl apa pun harus berasal dari dalam VPC atau jaringan yang terhubung. Untuk opsi koneksi lainnya, lihat Mengakses server API privat saja.

  • Titik akhir server API klaster diselesaikan oleh server DNS publik ke alamat IP privat dari VPC. Di masa lalu, titik akhir hanya dapat diselesaikan dari dalam VPC.

    Jika titik akhir Anda tidak menyelesaikan ke alamat IP privat dalam VPC untuk klaster yang sudah ada, Anda dapat:

    • Aktifkan akses publik dan kemudian nonaktifkan kembali. Anda hanya perlu melakukannya sekali untuk sebuah klaster dan titik akhir akan diselesaikan ke alamat IP privat sejak saat itu.

    • Perbarui klaster Anda.

Anda dapat memodifikasi akses endpoint server API cluster menggunakan AWS Management Console atau AWS CLI.

AWS Management Console
Untuk memodifikasi akses endpoint server API cluster Anda menggunakan AWS Management Console
  1. Buka konsol Amazon EKS di https://console.aws.amazon.com/eks/home#/clusters.

  2. Pilih nama klaster untuk menampilkan informasi klaster Anda.

  3. Pilih tab Jaringan dan pilih Perbarui.

  4. Untuk akses Pribadi, pilih apakah akan mengaktifkan atau menonaktifkan akses pribadi untuk titik akhir server Kubernetes API klaster Anda. Jika Anda mengaktifkan akses pribadi, permintaan Kubernetes API yang berasal dari dalam VPC klaster Anda menggunakan titik akhir VPC pribadi. Anda harus mengaktifkan akses privat untuk menonaktifkan akses publik.

  5. Untuk akses Publik, pilih apakah akan mengaktifkan atau menonaktifkan akses publik untuk titik akhir server Kubernetes API klaster Anda. Jika Anda menonaktifkan akses publik, server Kubernetes API klaster Anda hanya dapat menerima permintaan dari dalam VPC klaster.

  6. (Opsional) Jika Anda telah mengaktifkan Akses publik, Anda dapat menentukan alamat mana dari internet yang dapat berkomunikasi ke titik akhir publik. Pilih Pengaturan lanjutan. Masukkan blok CIDR, seperti203.0.113.5/32. Blok tidak dapat mencakup reserved addresses. Anda dapat memasukkan blok tambahan dengan memilih Tambahkan sumber. Ada jumlah maksimum blok CIDR yang dapat Anda tentukan. Untuk informasi selengkapnya, lihat Amazon EKS service quotas. Jika Anda menetapkan tidak ada blok, maka titik akhir server API publik menerima permintaan dari semua (0.0.0.0/0) alamat IP. Jika Anda membatasi akses ke titik akhir publik Anda menggunakan blok CIDR, disarankan agar Anda juga mengaktifkan akses endpoint pribadi sehingga node dan Fargate Pods (jika Anda menggunakannya) dapat berkomunikasi dengan cluster. Tanpa mengaktifkan titik akhir privat, sumber CIDR titik akhir akses publik Anda harus menyertakan sumber keluar dari VPC Anda. Misalnya, jika Anda memiliki simpul di subnet privat yang berkomunikasi dengan internet melalui NAT Gateway, Anda perlu menambahkan alamat IP keluar dari NAT Gateway sebagai bagian dari blok CIDR yang diizinkan di titik akhir publik Anda.

  7. Pilih Perbarui untuk menyelesaikan.

AWS CLI
Untuk memodifikasi akses titik akhir server API klaster Anda menggunakan AWS CLI

Selesaikan langkah-langkah berikut menggunakan AWS CLI versi 1.27.160 atau yang lebih baru. Anda dapat memeriksa versi saat ini dengan aws --version. Untuk menginstal atau memutakhirkan AWS CLI, lihat Menginstal AWS CLI.

  1. Perbarui akses titik akhir server API klaster Anda dengan perintah AWS CLI berikut. Gantikan nama klaster Anda dan nilai akses titik akhir yang diinginkan. Jika Anda mengatur endpointPublicAccess=true, maka Anda dapat (opsional) memasukkan satu blok CIDR, atau daftar blok CIDR yang dipisahkan koma untuk publicAccessCidrs. Blok tidak dapat mencakup alamat yang disimpan. Jika Anda menentukan blok CIDR, maka titik akhir server API publik hanya akan menerima permintaan dari blok yang terdaftar. Ada jumlah maksimum blok CIDR yang dapat Anda tentukan. Untuk informasi selengkapnya, lihat Amazon EKS service quotas. Jika Anda membatasi akses ke titik akhir publik Anda menggunakan blok CIDR, disarankan agar Anda juga mengaktifkan akses endpoint pribadi sehingga node dan Fargate Pods (jika Anda menggunakannya) dapat berkomunikasi dengan cluster. Tanpa mengaktifkan titik akhir privat, sumber CIDR titik akhir akses publik Anda harus menyertakan sumber keluar dari VPC Anda. Misalnya, jika Anda memiliki simpul di subnet privat yang berkomunikasi dengan internet melalui NAT Gateway, Anda perlu menambahkan alamat IP keluar dari NAT Gateway sebagai bagian dari blok CIDR yang diizinkan di titik akhir publik Anda. Jika Anda tidak menentukan blok CIDR, maka titik akhir server API publik menerima permintaan dari semua alamat IP (0.0.0.0/0).

    catatan

    Perintah berikut memungkinkan akses privat dan akses publik dari satu alamat IP untuk titik akhir server API. Ganti 203.0.113.5/32 dengan satu blok CIDR, atau daftar blok CIDR yang dipisahkan koma yang ingin Anda batasi akses jaringan.

    aws eks update-cluster-config \ --region region-code \ --name my-cluster \ --resources-vpc-config endpointPublicAccess=true,publicAccessCidrs="203.0.113.5/32",endpointPrivateAccess=true

    Contoh output adalah sebagai berikut.

    { "update": { "id": "e6f0905f-a5d4-4a2a-8c49-EXAMPLE00000", "status": "InProgress", "type": "EndpointAccessUpdate", "params": [ { "type": "EndpointPublicAccess", "value": "true" }, { "type": "EndpointPrivateAccess", "value": "true" }, { "type": "publicAccessCidrs", "value": "[\203.0.113.5/32\"]" } ], "createdAt": 1576874258.137, "errors": [] } }
  2. Pantau status pembaruan akses titik akhir Anda dengan perintah berikut, menggunakan nama klaster dan ID pembaruan yang dikembalikan oleh perintah sebelumnya. Pembaruan Anda selesai saat status ditampilkan sebagai Successful.

    aws eks describe-update \ --region region-code \ --name my-cluster \ --update-id e6f0905f-a5d4-4a2a-8c49-EXAMPLE00000

    Contoh output adalah sebagai berikut.

    { "update": { "id": "e6f0905f-a5d4-4a2a-8c49-EXAMPLE00000", "status": "Successful", "type": "EndpointAccessUpdate", "params": [ { "type": "EndpointPublicAccess", "value": "true" }, { "type": "EndpointPrivateAccess", "value": "true" }, { "type": "publicAccessCidrs", "value": "[\203.0.113.5/32\"]" } ], "createdAt": 1576874258.137, "errors": [] } }

Mengakses server API privat saja

Jika Anda telah menonaktifkan akses publik untuk titik akhir server Kubernetes API klaster, Anda hanya dapat mengakses server API dari dalam VPC atau jaringan yang terhubung. Berikut adalah beberapa cara yang mungkin untuk mengakses endpoint server Kubernetes API:

Jaringan yang terhubung

Hubungkan jaringan Anda ke VPC dengan gateway AWS transit atau opsi konektivitas lainnya dan kemudian gunakan komputer di jaringan yang terhubung. Anda harus memastikan bahwa grup keamanan pesawat kendali Amazon EKS Anda berisi aturan yang mengizinkan lalu lintas masuk di port 443 dari jaringan terhubung milik Anda.

Tuan rumah benteng Amazon EC2

Anda dapat meluncurkan instans Amazon EC2 ke subnet publik di VPC klaster Anda dan kemudian masuk melalui SSH ke instance tersebut untuk menjalankan perintah. kubectl Untuk informasi lebih lanjut, lihat host Linux benteng di AWS. Anda harus memastikan bahwa grup keamanan pesawat kendali Amazon EKS Anda berisi aturan yang mengizinkan lalu lintas masuk di port 443 dari host bastion milik Anda. Untuk informasi selengkapnya, lihat Persyaratan dan pertimbangan grup keamanan Amazon EKS.

Saat Anda mengonfigurasi kubectl untuk host bastion Anda, pastikan untuk menggunakan AWS kredenal yang sudah dipetakan ke konfigurasi RBAC cluster Anda, atau tambahkan prinsipal IAM yang akan digunakan bastion Anda ke konfigurasi RBAC sebelum Anda menghapus akses publik titik akhir. Lihat informasi yang lebih lengkap di Berikan akses ke Kubernetes API dan Tidak sah atau akses ditolak (kubectl).

AWS Cloud9 IDE

AWS Cloud9 adalah lingkungan pengembangan terintegrasi berbasis cloud (IDE) yang memungkinkan Anda menulis, menjalankan, dan men-debug kode Anda hanya dengan browser. Anda dapat membuat AWS Cloud9 IDE di VPC klaster Anda dan menggunakan IDE untuk berkomunikasi dengan cluster Anda. Untuk informasi selengkapnya, lihat Membuat lingkungan di AWS Cloud9. Anda harus memastikan bahwa grup keamanan pesawat kendali Amazon EKS Anda berisi aturan yang mengizinkan lalu lintas masuk di port 443 dari grup keamanan IDE milik Anda. Untuk informasi selengkapnya, lihat Persyaratan dan pertimbangan grup keamanan Amazon EKS.

Saat Anda mengonfigurasi AWS Cloud9 IDE Anda, pastikan kubectl untuk menggunakan AWS kredensional yang sudah dipetakan ke konfigurasi RBAC klaster Anda, atau tambahkan prinsipal IAM yang akan digunakan IDE Anda ke konfigurasi RBAC sebelum Anda menghapus akses publik titik akhir. Lihat informasi yang lebih lengkap di Berikan akses ke Kubernetes API dan Tidak sah atau akses ditolak (kubectl).