要实现AWS EKS RBAC - 基于证书的认证,可以按照以下步骤进行:
下面是一个示例代码,展示如何使用AWS CLI创建IAM角色和用户,并生成访问密钥:
aws iam create-role --role-name eks-role --assume-role-policy-document file://eks-role-trust-policy.json
eks-role-trust-policy.json文件内容如下:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "eks.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"eks:DescribeCluster"
],
"Resource": "*"
}
]
}
然后将策略附加到角色:
aws iam put-role-policy --role-name eks-role --policy-name eks-role-permissions-policy --policy-document file://eks-role-permissions-policy.json
aws iam create-user --user-name eks-user
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"eks:DescribeCluster"
],
"Resource": "*"
}
]
}
然后将策略附加到用户:
aws iam put-user-policy --user-name eks-user --policy-name eks-user-permissions-policy --policy-document file://eks-user-permissions-policy.json
aws iam create-access-key --user-name eks-user
将返回的访问密钥ID和密钥值保存在安全的位置供后续使用。
apiVersion: v1
clusters:
- cluster:
server: https://
certificate-authority-data:
name: eks-cluster
contexts:
- context:
cluster: eks-cluster
user: eks-user
name: eks-context
current-context: eks-context
kind: Config
preferences: {}
users:
- name: eks-user
user:
client-certificate-data:
client-key-data:
其中,
完成上述步骤后,您现在可以使用生成的Kubernetes配置文件以及IAM用户的访问密钥来访问EKS集群。