AWS IAM 계정에는, default로 아무 권한이 없어서, EKS cluster에 접근할 수 있는 권한을 부여해야 합니다.
1) AWS IAM policy 생성
- AWS IAM 콘솔 - Policies - 'Create Policy' - 해당 Policy를 아래 json 포맷으로 AWS permission 할당
```
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": [
"eks:ListNodegroups",
"eks:DescribeFargateProfile",
"eks:ListTagsForResource",
"eks:ListAddons",
"eks:DescribeAddon",
"eks:ListFargateProfiles",
"eks:DescribeNodegroup",
"eks:DescribeIdentityProviderConfig",
"eks:ListUpdates",
"eks:DescribeUpdate",
"eks:AccessKubernetesApi",
"eks:DescribeCluster",
"eks:ListClusters",
"eks:DescribeAddonVersions",
"eks:ListIdentityProviderConfigs"
],
"Resource": "*"
}
]
}
2) AWS IAM 계정에게, 위 policy 할당

- cloud9 사용자용 IAM 계정은 아래와 같이 권한을 부여

< Cluster Resource 운영 권한 >
1) aws-auth ConfigMap을 편집 (with .yaml)
apiVersion: v1
ind: ConfigMap
etadata:
name: aws-auth
namespace: kube-system
ata:
mapRoles: |
- rolearn: arn:aws:iam::<내AWS계정ID>:role/AWSServiceRoleForAmazonEKS
username: system:node:{*}
groups:
- system:bootstrappers
- system:nodes
- rolearn: arn:aws:iam::<내AWS계정ID>:role/eksctl-eks-cluster-ms05-cl-FargatePodExecutionRole-1KL8FFQRRALXF
username: system:node:{{SessionName}}
groups:
- system:bootstrappers
- system:nodes
- system:node-proxier
mapUsers: |
- userarn: arn:aws:iam::<내AWS계정ID>:user/admin_dream/
username: admin_dream
groups:
- system:masters
- userarn: arn:aws:iam::<내AWS계정ID>:user/user01
username: user01
- userarn: arn:aws:iam::<내AWS계정ID>:user/ecr-user01
username: ecr-user01
groups:
- system:masters
- 'system:masters' 권한을 할당하지 않은 사용자는, readOnly 권한이 부여됩니다.
kubectl apply -f aws-auth.yaml
aws iam list-attached-user-policies --user-name [MyUser]
eksctl create iamidentitymapping --cluster --region= --arn arn:aws:iam::123456:role/testing --group system:masters --username admin
<공식 문서>