手順ガイドに従ってAWSにkubernetes環境をセットアップしています。
https://docs.aws.Amazon.com/eks/latest/userguide/getting-started.html#role-create
すでにいくつかの問題がありましたが、それらは部分的に回答されています。
何らかの理由で、人々はこれらの回答で利用可能なこれらのガイドラインを使用して解決することができましたが、それでも私はそれを破ることができませんでした。
could not get token: AccessDenied: User: arn:aws:iam::sssssss:user/testprofileUser is not authorized to perform: sts:AssumeRole on resource: arn:aws:iam::sssssssss:role/eksServiceRole
私がやった事:
amazonEKSServiceRoleには、以下のような信頼関係があります。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "eks.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}
これは私のkubeconfigファイルです。
apiVersion: v1
clusters:
- cluster:
server: https://7F30ANNSDSDMDCE1.ylq.us-east-1.eks.amazonaws.com
certificate-authority-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUN5RENDQWJDZ0F3SUJBZ0lCQURB...
name: clouddev
contexts:
- context:
cluster: clouddev
user: aws
name: aws
current-context: aws
kind: Config
preferences: {}
users:
- name: aws
user:
exec:
apiVersion: client.authentication.k8s.io/v1alpha1
command: aws-iam-authenticator
args:
- "token"
- "-i"
- "clouddev"
- "-r"
- "arn:aws:iam::xxxxx:role/amazonEKSServiceRole"
env:
- name: AWS_PROFILE
value: "testprofile"
明確にするために、~/.aws/credentials
でtestprofile
を正しく設定しています
誰かがいくつかの光を当てることができれば非常に感謝しています。
また、AWSServiceRoleForAmazonEKSロールの「信頼関係」をセットアップする必要があります。これにより、EKSがそれを引き受けることができます。
このリンクの下部近くに、何をすべきかの詳細があります:
これを機能させる唯一の方法は、CLIを使用してクラスターを作成することです。
aws eks create-cluster --name <cluster name>
--role-arn <EKS Service Role>
--resources-vpc-config subnetIds=<subnet ids>,securityGroupIds=<security group id>
これは、複数のAWSリソースおよびガイドで推奨されています。これを実行する正確なコマンドは、これからですSO回答: https://stackoverflow.com/a/53002925/8749874
私の状況は、ルートユーザーを使用してVPCを作成し、インフラストラクチャの残りを作成した(eksコントロールプレーンとワーカーノードを別のユーザーを使用して)です。同じユーザー(ただし、rootユーザーではない)を使用してすべてを再作成すると、状況はスムーズになり、awsのドキュメントを使用してクラスターを作成できました。