Kontrol akses jaringan ke titik akhir API server cluster - 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.

Kontrol akses jaringan ke titik akhir API server cluster

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

Saat Anda membuat klaster baru, Amazon EKS membuat titik akhir untuk Kubernetes API server terkelola yang Anda gunakan untuk berkomunikasi dengan klaster Anda (menggunakan alat Kubernetes 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 Kubernetes Role Based Access Control (RBAC) asli.

Anda dapat mengaktifkan akses pribadi ke Kubernetes API server 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 API server dan bukan AWS PrivateLink titik akhir tradisional untuk berkomunikasi dengan AWS API, titik akhir ini 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.

  • KubernetesAPIpermintaan 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 tempat node dan Pods Fargate (jika Anda menggunakannya) mengakses titik akhir publik.

Diaktifkan Diaktifkan
  • KubernetesAPIpermintaan 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. kubectlPerintah apa pun 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.

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

  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 Kubernetes API server klaster Anda. Jika Anda mengaktifkan akses pribadi, Kubernetes API permintaan 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 titik akhir Kubernetes API server klaster Anda. Jika Anda menonaktifkan akses publik, Kubernetes API server klaster Anda hanya dapat menerima permintaan dari dalam klasterVPC.

  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, seperti203.0.113.5/32. Blok tidak dapat mencakup reserved addresses. 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 Amazon EKS dan kuota Fargate layanan. 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.

AWS CLI
Untuk memodifikasi akses endpoint API server cluster 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 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 Amazon EKS dan kuota Fargate layanan. 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 endpoint Kubernetes API server cluster Anda, Anda hanya dapat mengakses API server dari dalam VPC atau jaringan yang terhubung. Berikut adalah beberapa cara yang mungkin untuk mengakses endpoint Kubernetes API 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 lebih lanjut, lihat host Linux benteng 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 Anda hanya dengan browser. Anda dapat membuat AWS Cloud9 IDE di cluster Anda VPC dan menggunakan IDE untuk berkomunikasi dengan cluster 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.

Ketika Anda mengonfigurasi kubectl untuk Anda AWS Cloud9 IDE, pastikan untuk menggunakan AWS kredensional yang sudah dipetakan ke RBAC konfigurasi klaster Anda, atau tambahkan IAM prinsipal yang IDE akan Anda gunakan 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).