【发布时间】:2019-10-10 19:16:34
【问题描述】:
尝试设置 EKS 集群。
调用DescribeCluster operation 时发生错误(AccessDeniedException):帐户 xxx 未被授权使用此服务。这个错误来自 CLI,在控制台上我能够成功地创建集群和一切。
我以root user 登录(这只是我的个人帐户)。
它说 Account 听起来好像不是用户/权限问题? 我必须启用我的帐户才能使用此服务吗?我没有看到任何这样的选项。
另外,如果以用户身份(而不是 root)登录 - 我将能够看到之前以 root 身份创建的所有内容。我现在已经创建了一个用户并分配了 admin 和 eks* 权限。 我检查了这个 当我以用户身份登录时 - 我可以看到所有内容。
aws cli 是使用 root 凭据设置的(我认为) - 所以我必须返回并撤消所有这些修复并只使用此用户。
更新 1
我重做/重新启动了一切,包括用户和 awscli 配置 - 只是为了确保。但问题仍然没有得到解决。
create the file manually 有一个选项 - 终于奏效了。
我能够:kubectl get svc
名称类型 CLUSTER-IP EXTERNAL-IP PORT(S) 年龄 Kubernetes ClusterIP 10.100.0.1 443/TCP 48m
KUBECONFIG: 我已经设置了 env:KUBECONFIG
$env:KUBECONFIG="C:\Users\sbaha\.kube\config-EKS-nginixClstr"
$Env:KUBECONFIG
C:\Users\sbaha\.kube\config-EKS-nginixClstr
kubectl config get-contexts
CURRENT NAME CLUSTER AUTHINFO NAMESPACE
* aws kubernetes aws
kubectl config current-context
aws
我的理解是我应该同时看到 aws 和我的 EKS-nginixClstr 上下文,但我只看到 aws - 这(也是)一个问题吗?
下一步是创建和添加工作节点。我在 .yaml 文件中正确更新了节点 arn:kubectl apply -f ~\.kube\aws-auth-cm.yamlconfigmap/aws-auth configured 所以这可能有效。
但接下来它失败了:
kubectl get nodes在默认命名空间中找不到资源。
在 AWS 控制台 NodeGrp 上显示 - 创建完成。同样在 CLI kubectl get nodes --watch - 它甚至不返回。
所以接下来必须调试这个 - (它永远不会结束)
aws-auth-cm.yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: aws-auth
namespace: kube-system
data:
mapRoles: |
- rolearn: arn:aws:iam::arn:aws:iam::xxxxx:role/Nginix-NodeGrpClstr-NodeInstanceRole-1SK61JHT0JE4
username: system:node:{{EC2PrivateDNSName}}
groups:
- system:bootstrappers
- system:nodes
【问题讨论】:
-
这是来自控制台、来自 CLI 还是来自代码 (SDK)?如果是 CLI 或 SDK,您如何设置 AWS 凭证? (例如,如果 CLI 你使用了
aws configure?) -
它来自 Powershell 控制台 CLI,是的,我使用
aws configure来设置 cli - 可能会使用我的 root 凭据(这是不久前)。但是在 AWS Mgmt 控制台上——我可以用 EKS 做任何事情。 -
如果您的
eks集群是由其他 root 创建并使用不同用户的 CLI(尽管具有管理员权限),您将收到此错误。使用相同的 IAM 用户从 cli 本身创建 eks 集群。 -
@ Mahattam - 问题是不同的用户还是不同的工具或两者兼而有之?为此,我必须同时使用控制台和 CLI - 按照说明。我的其他用户也具有管理员权限。错误听起来也像“帐户权限”而不是用户权限?
-
这可能不是您所看到的,但我在尝试在不支持 EKS 的
ca-central-1中创建 EKS 集群时遇到了这个问题。 -_-
标签: amazon-web-services kubernetes amazon-iam kubectl amazon-eks