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.
Konfigurasikan pods untuk mengakses AWS layanan dengan akun layanan
Jika Pod perlu mengakses Layanan AWS, maka Anda harus mengkonfigurasinya untuk menggunakan akun Kubernetes layanan. Akun layanan harus dikaitkan dengan peran AWS Identity and Access Management (IAM) yang memiliki izin untuk mengakses. Layanan AWS
Prasyarat
-
Sebuah klaster yang sudah ada. Jika Anda tidak memilikinya, Anda dapat membuatnya menggunakan salah satu panduan Memulai dengan Amazon EKS.
-
Akun Kubernetes layanan yang ada dan asosiasi Identitas Pod EKS yang mengaitkan akun layanan dengan peran IAM. Peran harus memiliki kebijakan IAM terkait yang berisi izin yang Pods ingin Anda gunakan. Layanan AWS Untuk informasi selengkapnya tentang cara membuat akun dan peran layanan, dan mengonfigurasinya, lihatMenetapkan IAM peran ke akun Kubernetes layanan.
-
Versi terbaru dari yang AWS CLI diinstal dan dikonfigurasi pada perangkat Anda atau AWS CloudShell. Anda dapat memeriksa versi saat ini dengan
aws --version | cut -d / -f2 | cut -d ' ' -f1
. Package manager sepertiyum
apt-get
,, atau Homebrew untuk macOS sering beberapa versi di belakang versi terbaru AWS CLI. Untuk menginstal versi terbaru, lihat Menginstal, memperbarui, dan menghapus konfigurasi AWS CLI dan Cepat denganaws configure
di Panduan AWS Command Line Interface Pengguna. AWS CLI Versi yang diinstal di AWS CloudShell mungkin juga beberapa versi di belakang versi terbaru. Untuk memperbaruinya, lihat Menginstal AWS CLI ke direktori home Anda di Panduan AWS CloudShell Pengguna. -
Alat baris
kubectl
perintah diinstal pada perangkat Anda atau AWS CloudShell. Versi dapat sama dengan atau hingga satu versi minor lebih awal atau lebih lambat dari Kubernetes versi cluster Anda. Misalnya, jika versi cluster Anda1.29
, Anda dapat menggunakankubectl
versi1.28
,1.29
, atau1.30
dengan itu. Untuk menginstal atau memutakhirkankubectl
, lihat Mengatur kubectl dan eksctl. -
kubectl
config
File yang sudah ada yang berisi konfigurasi cluster Anda. Untuk membuatkubectl
config
file, lihatConnect kubectl ke kluster EKS dengan membuat kubeconfig file.
Untuk mengkonfigurasi Pod untuk menggunakan akun layanan
-
Gunakan perintah berikut untuk membuat manifes penerapan yang dapat digunakan Pod untuk mengonfirmasi konfigurasi. Ganti
dengan nilai-nilai milik Anda sendiri.example values
cat >
my-deployment.yaml
<<EOF apiVersion: apps/v1 kind: Deployment metadata: name:my-app
spec: selector: matchLabels: app:my-app
template: metadata: labels: app:my-app
spec: serviceAccountName:my-service-account
containers: - name:my-app
image:public.ecr.aws/nginx/nginx:X.XX
EOF -
Terapkan manifes ke cluster Anda.
kubectl apply -f
my-deployment.yaml
-
Konfirmasikan bahwa variabel lingkungan yang diperlukan ada untuk AndaPod.
-
Lihat Pods yang digunakan dengan penerapan pada langkah sebelumnya.
kubectl get pods | grep
my-app
Contoh output adalah sebagai berikut.
my-app
-6f4dfff6cb-76cv9
1/1 Running 0 3m28s -
Konfirmasikan bahwa Pod memiliki file token akun layanan mount.
kubectl describe pod
my-app
-6f4dfff6cb-76cv9
| grep AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE:Contoh output adalah sebagai berikut.
AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE: /var/run/secrets/pods.eks.amazonaws.com/serviceaccount/eks-pod-identity-token
-
-
Konfirmasikan bahwa Anda Pods dapat berinteraksi dengan Layanan AWS menggunakan izin yang ditetapkan dalam kebijakan IAM yang dilampirkan pada peran Anda.
catatan
Saat Pod menggunakan AWS kredensi dari peran IAM yang terkait dengan akun layanan, SDK AWS CLI atau lainnya dalam container untuk itu Pod menggunakan kredenal yang disediakan oleh peran tersebut. Jika Anda tidak membatasi akses ke kredensial yang diberikan ke peran IAM node Amazon EKS, Pod masih memiliki akses ke kredensi ini. Untuk informasi selengkapnya, lihat Membatasi akses ke profil instance yang ditetapkan ke node pekerja
. Jika Anda tidak Pods dapat berinteraksi dengan layanan seperti yang Anda harapkan, selesaikan langkah-langkah berikut untuk mengonfirmasi bahwa semuanya telah dikonfigurasi dengan benar.
-
Konfirmasikan bahwa Anda Pods menggunakan versi AWS SDK yang mendukung asumsi peran IAM melalui asosiasi Identitas Pod EKS. Untuk informasi selengkapnya, lihat Menggunakan AWS SDK yang didukung.
-
Konfirmasikan bahwa penyebaran menggunakan akun layanan.
kubectl describe deployment
my-app
| grep "Service Account"Contoh output adalah sebagai berikut.
Service Account:
my-service-account
-