Kontrol akses jaringan ke titik akhir API server cluster - Amazon EKS

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 (RBAC). Endpoint ini dikenal sebagai cluster public endpoint. Juga ada titik akhir pribadi cluster. Untuk informasi selengkapnya tentang titik akhir pribadi cluster, lihat bagian folowing. Titik akhir pribadi cluster

IPv6format 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.

AWS

EKStitik akhir publik/pribadi cluster: eks-cluster.region.api.aws

AWS GovCloud (US)

EKStitik akhir publik/pribadi cluster: eks-cluster.region.api.aws

Amazon Web Services in China

EKStitik akhir publik/pribadi cluster: eks-cluster.region.api.amazonwebservices.com.cn

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.

IPv4format titik akhir cluster

EKSmembuat titik akhir unik dalam format berikut untuk setiap cluster yang memilih IPv4 dalam pengaturan keluarga IP (ipFamily) cluster:

AWS

EKScluster titik akhir publik/pribadi eks-cluster.region.eks.amazonaws.com

AWS GovCloud (US)

EKScluster titik akhir publik/pribadi eks-cluster.region.eks.amazonaws.com

Amazon Web Services in China

EKScluster titik akhir publik/pribadi eks-cluster.region.api.amazonwebservices.com.cn

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

  • Ini adalah perilaku default untuk EKS cluster Amazon baru.

  • Kubernetes APIpermintaan yang berasal dari dalam klaster Anda VPC (seperti node untuk mengontrol komunikasi pesawat) meninggalkan jaringan Amazon VPC tetapi tidak.

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

Diaktifkan

Diaktifkan

  • Kubernetes APIpermintaan dalam klaster Anda VPC (seperti node untuk mengontrol komunikasi pesawat) menggunakan VPC titik akhir pribadi.

  • APIServer cluster Anda dapat diakses dari internet. Anda dapat, secara opsional, membatasi CIDR blok yang dapat mengakses titik akhir publik.

Nonaktif

Diaktifkan

  • Semua lalu lintas ke API server cluster Anda harus berasal dari dalam kluster Anda VPC atau jaringan yang terhubung.

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

  • Endpoint API server cluster diselesaikan oleh DNS server publik ke alamat IP pribadi dari file. VPC Di masa lalu, titik akhir hanya bisa diselesaikan dari dalam. VPC

    Jika titik akhir Anda tidak menyelesaikan ke alamat IP pribadi dalam VPC untuk klaster yang 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 API server cluster Anda menggunakan AWS Management Console atau AWS CLI.

Konfigurasikan akses titik akhir - konsol AWS

  1. Buka EKSkonsol Amazon.

  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 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.

  5. 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.

  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 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.

  7. 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.

  1. 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 mengaturendpointPublicAccess=true, maka Anda dapat (opsional) memasukkan satu CIDR blok, atau daftar blok yang dipisahkan koma untuk. CIDR publicAccessCidrs 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": [] } }
  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 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).