Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Kontrol akses jaringan ke titik akhir API server cluster
Topik ini membantu Anda mengaktifkan akses pribadi untuk EKS klaster Amazon Anda Kubernetes APItitik akhir server dan batas, atau sepenuhnya menonaktifkan, akses publik dari internet.
Saat Anda membuat klaster baru, Amazon EKS membuat titik akhir untuk yang dikelola Kubernetes APIserver yang Anda gunakan untuk berkomunikasi dengan cluster Anda (menggunakan Kubernetes alat manajemen sepertikubectl
). Secara default, endpoint API server ini bersifat publik ke internet, dan akses ke API server diamankan menggunakan kombinasi AWS Identity and Access Management (IAM) dan native Kubernetes Kontrol Akses Berbasis Peran
IPv6
format titik akhir cluster
EKSmembuat titik akhir dual-stack unik dalam format berikut untuk IPv6
cluster baru yang dibuat setelah Oktober 2024. Cluster adalah IPv6cluster yang Anda pilih IPv6
dalam pengaturan IP family (ipFamily
) cluster.
catatan
Titik akhir cluster dual-stack diperkenalkan pada Oktober 2024. Untuk informasi selengkapnya tentang IPv6
cluster, lihatPelajari tentang IPv6 alamat ke cluster, pods, dan layanan. Cluster yang dibuat sebelum Oktober 2024, gunakan format titik akhir berikut sebagai gantinya.
IPv4
format titik akhir cluster
EKSmembuat titik akhir unik dalam format berikut untuk setiap cluster yang memilih IPv4
dalam pengaturan keluarga IP (ipFamily) cluster:
catatan
Sebelum Oktober 2024, IPv6
cluster menggunakan format titik akhir ini juga. Untuk cluster tersebut, titik akhir publik dan titik akhir pribadi hanya memiliki IPv4
alamat penyelesaian dari titik akhir ini.
Titik akhir pribadi cluster
Anda dapat mengaktifkan akses pribadi ke Kubernetes APIserver sehingga semua komunikasi antara node Anda dan API server tetap berada di dalam AndaVPC. Anda dapat membatasi alamat IP yang dapat mengakses API server Anda dari internet, atau sepenuhnya menonaktifkan akses internet ke API server.
catatan
Karena titik akhir ini untuk Kubernetes APIserver dan bukan AWS PrivateLink titik akhir tradisional untuk berkomunikasi dengan AWS API, itu tidak muncul sebagai titik akhir di konsol Amazon. VPC
Saat Anda mengaktifkan akses pribadi titik akhir untuk klaster Anda, Amazon EKS membuat zona host pribadi Route 53 atas nama Anda dan mengaitkannya dengan klaster Anda. VPC Zona host pribadi ini dikelola oleh AmazonEKS, dan tidak muncul di sumber daya Route 53 akun Anda. Agar zona host pribadi dapat merutekan lalu lintas ke API server Anda dengan benar, Anda VPC harus memiliki enableDnsHostnames
dan enableDnsSupport
mengatur ketrue
, dan DHCP opsi yang ditetapkan untuk Anda VPC harus menyertakan AmazonProvidedDNS
dalam daftar server nama domainnya. Untuk informasi selengkapnya, lihat Memperbarui DNS dukungan untuk Anda VPC di Panduan VPC Pengguna Amazon.
Anda dapat menentukan persyaratan akses endpoint API server saat membuat klaster baru, dan Anda dapat memperbarui akses endpoint API server untuk klaster kapan saja.
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 endpoint API server yang didukung dan perilaku yang terkait.
Akses publik titik akhir | Akses privat titik akhir | Perilaku |
---|---|---|
Diaktifkan |
Dinonaktifkan |
|
Diaktifkan |
Diaktifkan |
|
Nonaktif |
Diaktifkan |
|
Anda dapat memodifikasi akses endpoint API server cluster Anda menggunakan AWS Management Console atau AWS CLI.
Konfigurasikan akses titik akhir - konsol AWS
-
Buka EKSkonsol Amazon
. -
Pilih nama klaster untuk menampilkan informasi klaster Anda.
-
Pilih tab Jaringan dan pilih Perbarui.
-
Untuk akses Pribadi, pilih apakah akan mengaktifkan atau menonaktifkan akses pribadi untuk klaster Anda Kubernetes APItitik akhir server. Jika Anda mengaktifkan akses pribadi, Kubernetes APIpermintaan yang berasal dari dalam klaster Anda VPC menggunakan titik VPC akhir pribadi. Anda harus mengaktifkan akses privat untuk menonaktifkan akses publik.
-
Untuk akses Publik, pilih apakah akan mengaktifkan atau menonaktifkan akses publik untuk klaster Anda Kubernetes APItitik akhir server. Jika Anda menonaktifkan akses publik, klaster Anda Kubernetes APIserver hanya dapat menerima permintaan dari dalam clusterVPC.
-
(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 CIDR blok, seperti
203.0.113.5/32
. Blok tidak dapat menyertakan alamat yang dipesan. Anda dapat memasukkan blok tambahan dengan memilih Tambahkan sumber. Ada jumlah maksimum CIDR blok yang dapat Anda tentukan. Untuk informasi selengkapnya, lihat Lihat dan kelola kuota EKS layanan Amazon dan Fargate. Jika Anda menentukan tidak ada blok, maka titik akhir API server publik menerima permintaan dari semua ( 0.0.0.0/0
) alamat IP. Jika Anda membatasi akses ke titik akhir publik Anda menggunakan CIDR blok, disarankan agar Anda juga mengaktifkan akses endpoint pribadi sehingga node dan Fargate Pods (jika Anda menggunakannya) dapat berkomunikasi dengan cluster. Tanpa mengaktifkan titik akhir pribadi, CIDR sumber titik akhir akses publik Anda harus menyertakan sumber keluar dari sumber Anda. VPC Misalnya, jika Anda memiliki node di subnet pribadi yang berkomunikasi ke internet melalui NAT Gateway, Anda perlu menambahkan alamat IP keluar dari NAT gateway sebagai bagian dari CIDR blok yang diizinkan pada titik akhir publik Anda. -
Pilih Perbarui untuk menyelesaikan.
Konfigurasikan akses titik akhir - 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.
-
Perbarui akses endpoint API server cluster Anda dengan AWS CLI perintah berikut. Gantikan nama klaster Anda dan nilai akses titik akhir yang diinginkan. Jika Anda mengatur
endpointPublicAccess=true
, maka Anda dapat (opsional) memasukkan satu CIDR blok, atau daftar blok yang dipisahkan koma untuk. CIDRpublicAccessCidrs
Blok tidak dapat mencakup alamat yang disimpan. Jika Anda menentukan CIDR blok, maka titik akhir API server publik hanya akan menerima permintaan dari blok yang terdaftar. Ada jumlah maksimum CIDR blok yang dapat Anda tentukan. Untuk informasi selengkapnya, lihat Lihat dan kelola kuota EKS layanan Amazon dan Fargate. Jika Anda membatasi akses ke titik akhir publik Anda menggunakan CIDR blok, disarankan agar Anda juga mengaktifkan akses endpoint pribadi sehingga node dan Fargate Pods (jika Anda menggunakannya) dapat berkomunikasi dengan cluster. Tanpa mengaktifkan titik akhir pribadi, CIDR sumber titik akhir akses publik Anda harus menyertakan sumber keluar dari sumber Anda. VPC Misalnya, jika Anda memiliki node di subnet pribadi yang berkomunikasi ke internet melalui NAT Gateway, Anda perlu menambahkan alamat IP keluar dari NAT gateway sebagai bagian dari CIDR blok yang diizinkan pada titik akhir publik Anda. Jika Anda menentukan tidak ada CIDR blok, maka titik akhir API server publik menerima permintaan dari semua alamat IP (0.0.0.0/0). catatan
Perintah berikut memungkinkan akses pribadi dan akses publik dari satu alamat IP untuk endpoint API server. Ganti
203.0.113.5/32
dengan satu CIDR blok, atau daftar CIDR blok 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": [] } }
-
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 pribadi saja API
Jika Anda telah menonaktifkan akses publik untuk klaster Anda Kubernetes APIendpoint server, Anda hanya dapat mengakses API server dari dalam Anda VPC atau jaringan yang terhubung. Berikut adalah beberapa cara yang mungkin untuk mengakses Kubernetes APItitik akhir server:
- 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 EKS kontrol Amazon Anda berisi aturan untuk mengizinkan lalu lintas masuk pada port 443 dari jaringan yang terhubung.
- Tuan rumah EC2 benteng Amazon
-
Anda dapat meluncurkan EC2 instans Amazon ke subnet publik di klaster Anda VPC dan kemudian SSH masuk melalui instance tersebut untuk menjalankan
kubectl
perintah. Untuk informasi selengkapnya, lihat Linux bastion host di AWS. Anda harus memastikan bahwa grup keamanan pesawat EKS kontrol Amazon Anda berisi aturan untuk mengizinkan lalu lintas masuk pada port 443 dari host benteng Anda. Untuk informasi selengkapnya, lihat Lihat persyaratan grup EKS keamanan Amazon untuk klaster. Saat Anda mengonfigurasi
kubectl
untuk host bastion Anda, pastikan untuk menggunakan AWS kredenal yang sudah dipetakan ke RBAC konfigurasi klaster Anda, atau tambahkan IAMprinsipal yang akan digunakan bastion Anda ke RBAC konfigurasi sebelum Anda menghapus akses publik titik akhir. Untuk informasi selengkapnya, silakan lihat Berikan akses IAM kepada pengguna dan peran ke Kubernetes APIs 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 hanya dengan browser. Anda dapat membuat AWS IDE Cloud9 di klaster VPC Anda dan menggunakannya untuk berkomunikasi IDE dengan klaster Anda. Untuk informasi selengkapnya, lihat Membuat lingkungan di AWS Cloud9. Anda harus memastikan bahwa grup keamanan pesawat EKS kontrol Amazon Anda berisi aturan untuk mengizinkan lalu lintas masuk pada port 443 dari grup IDE keamanan Anda. Untuk informasi selengkapnya, lihat Lihat persyaratan grup EKS keamanan Amazon untuk klaster.
Saat Anda mengonfigurasi
kubectl
AWS IDE Cloud9, pastikan untuk AWS menggunakan kredensional yang sudah dipetakan ke konfigurasi klaster RBAC Anda, atau tambahkan IAM prinsipal yang akan Anda gunakan ke konfigurasi sebelum IDE Anda menghapus akses publik titik RBAC akhir. Untuk informasi selengkapnya, silakan lihat Berikan akses IAM kepada pengguna dan peran ke Kubernetes APIs dan Tidak sah atau akses ditolak (kubectl).