Trong AWS CodePipeline, chúng ta sẽ sử dụng AWS CodeBuild để triển khai một dịch vụ Kubernetes mẫu.Việc này sẽ yêu cầu chúng ta tạo một IAM Role để làm việc với EKS cluster. Trong bước này , chúng ta sẽ tạo 1 IAM Role và gán 1 inline policy ( policy gán trực tiếp ) vào role, việc này cho phép chúng ta sử dụng CodeBuild để tương tác với EKS cluster thông qua kubectl.
cd ~/environment
TRUST="{ \"Version\": \"2012-10-17\", \"Statement\": [ { \"Effect\": \"Allow\", \"Principal\": { \"AWS\": \"arn:aws:iam::${ACCOUNT_ID}:root\" }, \"Action\": \"sts:AssumeRole\" } ] }"
echo '{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "eks:Describe*", "Resource": "*" } ] }' > /tmp/iam-role-policy
aws iam create-role --role-name EksWorkshopCodeBuildKubectlRole --assume-role-policy-document "$TRUST" --output text --query 'Role.Arn'
aws iam put-role-policy --role-name EksWorkshopCodeBuildKubectlRole --policy-name eks-describe --policy-document file:///tmp/iam-role-policy
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "eks:Describe*", "Resource": "*" } ] }