Pada skenario yang memerlukan confidential computing, seperti industri pengendalian risiko keuangan dan layanan kesehatan, Anda dapat menggunakan Cloud API Adaptor (CAA), juga dikenal sebagai Peer Pods, untuk menerapkan beban kerja dalam lingkungan confidential computing berbasis Intel® Trust Domain Extensions (TDX). Pendekatan ini membantu melindungi data sensitif dari serangan eksternal atau potensi risiko dari penyedia layanan cloud sekaligus memastikan beban kerja memenuhi persyaratan kepatuhan industri.
Intel® TDX adalah teknologi keamanan berbasis perangkat keras CPU yang digunakan oleh Elastic Compute Service (ECS) untuk mengamankan confidential computing. Untuk informasi selengkapnya, lihat Pengenalan TDX.
Ikhtisar fitur
CAA merupakan komponen utama proyek Cloud Native Computing Foundation (CNCF) Confidential Containers. CAA mengintegrasikan confidential computing dengan Kubernetes dengan memanggil operasi API pada platform cloud untuk secara otomatis membuat confidential VM. Confidential VM tersebut berfungsi sebagai sandbox bagi beban kerja dan menyediakan trusted execution environment (TEE) berbasis perangkat keras guna meningkatkan keamanan data runtime. Solusi berbasis CAA ini menawarkan manfaat berikut.
Kemudahan penggunaan: CAA menghilangkan kebutuhan untuk memelihara server bare metal dasar atau stack virtualisasi bersarang. Setelah menerapkan CAA di kluster Container Service for Kubernetes (ACK), Anda dapat menggunakan kubectl untuk menerapkan beban kerja rahasia.
Keamanan dan kerahasiaan: CAA memungkinkan Anda menjalankan beban kerja pada confidential VM ECS yang dibangun di atas mekanisme enkripsi dan isolasi memori berbasis perangkat keras untuk menjamin integritas dan kerahasiaan data runtime.
Kompatibilitas dengan komunitas: ACK berkolaborasi dengan komunitas Confidential Containers untuk mendukung penerapan beban kerja rahasia. Selain itu, ACK memungkinkan transparansi kode agar komunitas dapat melakukan audit secara berkelanjutan.
Anda dapat menerapkan CAA sebagai DaemonSet di kluster ACK. Beban kerja rahasia yang diterapkan akan berjalan di Pod yang dijalankan pada confidential VM, sehingga menjamin keamanan data runtime sepanjang siklus hidup Pod dan melindungi beban kerja dari serangan eksternal. Gambar berikut menunjukkan arsitektur solusi berbasis CAA.
Persiapan
Confidential computing TDX memiliki beberapa batasan. Pastikan Anda memahami batasan tersebut sebelum menggunakan confidential computing TDX.
Sebuah kluster ACK managed Pro telah dibuat. Kluster tersebut harus memenuhi persyaratan berikut. Untuk informasi selengkapnya, lihat Buat kluster ACK managed.
Parameter
Deskripsi
Region dan Zone
Hanya Zone I di wilayah China (Beijing) dan Zone B di wilayah Singapura yang didukung.
Untuk membuat vSwitch, lihat Buat dan kelola vSwitch.
Kubernetes Version
Hanya versi 1.34 yang didukung.
Untuk meningkatkan kluster ACK Anda, lihat Tingkatkan kluster secara manual.
Network Plug-in
Pilih Flannel.
Configure SNAT for VPC
Pilih kotak centang ini. Fitur ini memungkinkan kluster mengakses Internet.
Anda juga dapat mengaktifkan fitur ini untuk kluster ACK yang sudah ada. Untuk informasi selengkapnya, lihat Aktifkan kluster ACK yang sudah ada untuk mengakses Internet.
RRSA OIDC
Pilih Aktifkan. Fitur RAM Roles for Service Accounts (RRSA) memungkinkan Anda membatasi izin untuk melakukan operasi API pada volume OSS tertentu. Hal ini memungkinkan Anda mengatur akses ke sumber daya cloud secara detail halus dan meningkatkan keamanan kluster.
Anda juga dapat mengaktifkan fitur ini untuk kluster ACK yang sudah ada. Untuk informasi selengkapnya, lihat Gunakan RRSA untuk mengotorisasi Pod berbeda mengakses layanan cloud berbeda.
Setelah mengaktifkan fitur ini, rujuk ke Dapatkan informasi URL dan ARN untuk memperoleh Alibaba Cloud Resource Name (ARN) penyedia OpenID Connect (OIDC) guna autentikasi.
Langkah 1: Konfigurasikan RRSA
Untuk memungkinkan CAA mengelola dan mengonfigurasi confidential VM, Anda harus menetapkan identitas (peran RAM) dan memberikan izin yang diperlukan (kebijakan RAM) kepada CAA. Bagian ini menjelaskan cara mengotorisasi akun layanan yang digunakan oleh Cloud API Adaptor untuk mengelola instance ECS dan virtual private cloud (VPC). Hal ini memerlukan kontrol izin spesifik per Pod.
1. Buat peran RAM
Rujuk ke Buat peran RAM untuk IdP tepercaya untuk membuat peran RAM. Dalam contoh ini, peran RAM diberi nama ack-caa-demo. Tabel berikut menjelaskan parameter utama peran RAM tersebut.
Parameter | Deskripsi |
Identity Provider Type | Pilih OIDC. |
Identity Provider | Pilih ack-rrsa-<CLUSTER_ID>. <CLUSTER_ID> menunjukkan ID kluster Anda. |
Condition |
|
Role Name | Tetapkan nama peran menjadi ack-caa-demo. |
Setelah membuat peran, buka halaman detail peran dan catat ARN peran tersebut di bagian Basic Information untuk autentikasi.
2. Buat kebijakan RAM
Gunakan skrip berikut untuk membuat kebijakan
ack-caa-policyyang memberikan izin untuk mengakses ECS dan VPC. Untuk informasi selengkapnya, lihat Buat kebijakan kustom.{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": [ "ecs:RunInstances", "ecs:DeleteInstance", "ecs:DescribeInstanceAttribute", "ecs:CreateNetworkInterface", "ecs:DeleteNetworkInterface", "ecs:AttachNetworkInterface", "ecs:ModifyNetworkInterfaceAttribute", "ecs:DescribeNetworkInterfaceAttribute" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "vpc:DescribeVSwitchAttributes", "vpc:AllocateEipAddress", "vpc:ReleaseEipAddress", "vpc:AssociateEipAddress", "vpc:UnassociateEipAddress", "vpc:DescribeEipAddresses" ], "Resource": "*" } ] }Lampirkan kebijakan
ack-caa-policyke peran RAM yang telah Anda buat. Untuk informasi selengkapnya, lihat Berikan izin kepada peran RAM.
Langkah 2: Buat kelompok node dan konfigurasikan aturan grup keamanan kelompok node
Buat kelompok node yang digunakan untuk menerapkan controller CAA. Konfigurasikan aturan grup keamanan kelompok node untuk membuka port yang digunakan oleh CAA.
Masuk ke Konsol ACK. Di panel navigasi kiri, klik Clusters.
Di halaman Clusters, temukan kluster yang akan dikelola lalu klik namanya. Di panel navigasi kiri, pilih .
Klik Create Node Pool dan lengkapi konfigurasi kelompok node sesuai petunjuk di layar.
Tabel berikut hanya menjelaskan parameter utama. Untuk informasi selengkapnya tentang parameter kelompok node, lihat Buat dan kelola kelompok node.
Parameter
Deskripsi
Configure Managed Node Pool
Pilih Disable.
vSwitch
Pilih vSwitch di bawah Zone yang didukung. Node di Zone I ditambahkan ke kelompok node.
Operating System
Pilih Ubuntu 22.04 64-bit.
Expected Nodes
Jumlah awal node di kelompok node. Anda harus menentukan setidaknya satu node.
Bentangkan Advanced Options (Optional) untuk mengonfigurasi pengaturan lanjutan.
Node Labels
Tambahkan label berikut untuk memfasilitasi penjadwalan controller CAA.
Tetapkan kunci menjadi
node.kubernetes.io/worker.Biarkan nilai kosong.
Buka halaman Node Pools dan klik nama kelompok node yang telah Anda buat. Di halaman detail kelompok node, klik tab Overview. Di bagian Node Pool Information, klik ID grup keamanan untuk membuka halaman detail grup keamanan.
Di tab Inbound, klik Add Rule untuk menambahkan aturan berikut.
Protocol
Source
Destination
Deskripsi
Custom TCP
Current VPC CIDR Block
15150
Mengaktifkan komponen CAA untuk berkomunikasi dengan confidential VM.
Custom UDP
Current VPC CIDR Block
4789
Mengaktifkan manajemen jaringan berdasarkan Virtual Extensible Local Area Network (VXLAN).
Langkah 3: Terapkan CAA
Terapkan komponen utama berikut:
Operator Confidential Containers (CoCo): Komponen ini secara otomatis menerapkan dan mengelola lingkungan runtime tempat confidential container dijalankan, seperti Kata Remote Runtime dari Kata Containers.
DaemonSet CAA: CAA diterapkan pada node sebagai DaemonSet dan secara dinamis membuat confidential VM sebagai node runtime untuk Pod berdasarkan persyaratan penjadwalan Pod di kluster.
1. Instal CoCo Operator
Jalankan perintah berikut untuk menginstal CoCo Operator:
2. Terapkan DaemonSet CAA
Unduh kode sumber proyek.
git clone https://github.com/confidential-containers/cloud-api-adaptor.git -b v0.17.0 cd cloud-api-adaptorUbah konfigurasi di
src/cloud-api-adaptor/install/overlays/alibabacloud/kustomization.yaml.Parameter
Deskripsi
newTagTag versi gambar kontainer untuk DaemonSet CAA. Ubah nilai ini menjadi
v0.17.0-alibaba-alpha0.SECURITY_GROUP_IDSID grup keamanan. Tetapkan nilai ini ke ID grup keamanan kelompok node yang dibuat di Langkah 2.
VSWITCH_IDID vSwitch. Tetapkan nilai ini ke ID vSwitch yang digunakan oleh kelompok node yang dibuat di Langkah 2.
IMAGEIDID citra VM yang digunakan untuk meluncurkan instance di kelompok node.
China (Beijing): Ubah nilai ini menjadi
m-2zef6zaa0j0qz3sunhjp.Singapura: Ubah nilai ini menjadi
m-t4n9ocuen5sy6rhbxbk1.
Buat file
src/cloud-api-adaptor/install/overlays/alibabacloud/alibabacloud-cred.envuntuk mengonfigurasi informasi autentikasi. Kode berikut menunjukkan isi file tersebut:Ganti
<role_arn>dengan ARN peran RAM dan<provider_arn>dengan ARN penyedia RRSA OIDC.ALIBABA_CLOUD_ROLE_ARN=<role_arn> ALIBABA_CLOUD_OIDC_PROVIDER_ARN=<provider_arn> ALIBABA_CLOUD_OIDC_TOKEN_FILE=/var/run/secrets/ack.alibabacloud.com/rrsa-tokens/tokenTerapkan beban kerja CAA.
kubectl apply -k src/cloud-api-adaptor/install/overlays/alibabacloudTunggu 3 menit dan periksa progres penerapan.
kubectl -n confidential-containers-system get podOutput yang diharapkan:
NAME READY STATUS RESTARTS AGE cc-operator-controller-manager-5d79465b47-d8s2k 1/1 Running 0 2m11s cc-operator-daemon-install-trlvt 1/1 Running 0 108s cc-operator-pre-install-daemon-qpvzw 1/1 Running 0 117s cloud-api-adaptor-daemonset-46spp 1/1 Running 0 92sJika
cc-operator-*dancloud-api-adaptor-daemonset-*ditampilkan dalam output dan berada dalam statusRunning, beban kerja CAA telah berhasil diterapkan.
Langkah 4: Terapkan aplikasi
Lakukan operasi berikut untuk menerapkan aplikasi. Dalam konfigurasi aplikasi, pengaturan runtimeClassName: kata-remote menentukan runtime confidential container. Saat Pod dijadwalkan, Kata Remote memicu CAA untuk secara dinamis membuat confidential VM TDX.
Sebelum menghapus kluster, pastikan semua beban kerja dengan runtimeClassName: kata-remote telah dihapus untuk mencegah sisa sumber daya confidential VM yang dibuat oleh CAA.
Gunakan templat YAML berikut untuk membuat file pod-caa-demo.yaml, yang digunakan untuk membuat Pod yang menggunakan runtime confidential container.
apiVersion: v1 kind: Pod metadata: name: pod-caa-demo spec: runtimeClassName: kata-remote containers: - image: alibaba-cloud-linux-3-registry.cn-hangzhou.cr.aliyuncs.com/alinux3/alinux3:latest name: hello command: - sh - -c - 'echo hello && sleep infinity'Terapkan file pod-caa-demo.yaml.
kubectl apply -f pod-caa-demo.yamlTunggu 3 menit dan periksa progres penerapan.
kubectl get pod pod-caa-demoOutput yang diharapkan:
NAME READY STATUS RESTARTS AGE pod-caa-demo 1/1 Running 0 52sMasuk ke ECS console. Di panel navigasi kiri, klik Instances. Jika terdapat confidential VM TDX yang namanya diawali dengan
podvm-, berarti CAA telah membuat sumber daya komputasi dasar untuk aplikasi tersebut.
FAQ
Mengapa hanya Pod cc-operator-controller-manager yang berjalan setelah saya menjalankan kubectl -n confidential-containers-system get pod?
Kemungkinan penyebab
Node pekerja Anda mungkin tidak memiliki label yang diperlukan. Tanpa label tersebut, penjadwal Kubernetes tidak dapat menempatkan Pod terkait ke node, sehingga Pod tetap dalam status Pending dan tidak langsung muncul.
Solusi
Periksa label saat ini pada node pekerja Anda.
kubectl get nodes --show-labelsTambahkan label yang diperlukan ke node target Anda.
for NODE_NAME in $(kubectl get nodes -o jsonpath='{.items[*].metadata.name}'); do kubectl label node $NODE_NAME node.kubernetes.io/worker= doneTunggu satu hingga dua menit agar penjadwal menempatkan Pod, lalu periksa statusnya kembali.
kubectl -n confidential-containers-system get pod
Referensi
Hubungi kami
Jika Anda memiliki pertanyaan atau saran mengenai ACK, bergabunglah dengan grup DingTalk 30521601 untuk menghubungi kami.