이제 모든 필요한 구성을 완료 했으므로 새로 생성 된 IAM 역할을 사용하여 2개의 쿠버네티스 작업을 실행 합니다.
먼저 S3 버킷을 생성합니다.
aws s3 mb s3://eksworkshop-$ACCOUNT_ID-$AWS_REGION --region $AWS_REGION
service account S3 버킷을 나열 할 수 있는지 테스트하여 시작 하겠습니다.
mkdir ~/environment/irsa
cat <<EoF> ~/environment/irsa/job-s3.yaml
apiVersion: batch/v1
kind: Job
metadata:
name: eks-iam-test-s3
spec:
template:
metadata:
labels:
app: eks-iam-test-s3
spec:
serviceAccountName: iam-test
containers:
- name: eks-iam-test
image: amazon/aws-cli:latest
args: ["s3", "ls"]
restartPolicy: Never
EoF
kubectl apply -f ~/environment/irsa/job-s3.yaml
kubectl get job -l app=eks-iam-test-s3
로그를 확인하여 명령이 성공적으로 실행 되었는지 확인 합니다.
kubectl logs -l app=eks-iam-test-s3
이제 service account EC2 인스턴스를 나열 할 수 없는지 확인합니다.
cat <<EoF> ~/environment/irsa/job-ec2.yaml
apiVersion: batch/v1
kind: Job
metadata:
name: eks-iam-test-ec2
spec:
template:
metadata:
labels:
app: eks-iam-test-ec2
spec:
serviceAccountName: iam-test
containers:
- name: eks-iam-test
image: amazon/aws-cli:latest
args: ["ec2", "describe-instances", "--region", "${AWS_REGION}"]
restartPolicy: Never
backoffLimit: 0
EoF
kubectl apply -f ~/environment/irsa/job-ec2.yaml
kubectl get job -l app=eks-iam-test-ec2
작업이 성공적으로 완료되지 않는 것이 정상입니다.
마지막으로 로그를 검토합니다.
kubectl logs -l app=eks-iam-test-ec2