当前位置: 首页 > news >正文

aws eks 配置授权额外的用户和角色访问集群

参考资料

  • https://github.com/kubernetes-sigs/aws-iam-authenticator#full-configuration-format
  • https://docs.amazonaws.cn/zh_cn/eks/latest/userguide/add-user-role.html

众所周知,aws eks使用 Authenticator 或者 aws 命令来进行账户级别的用户和角色的授权。

kubernetes和aws服务的认证是通过控制平面的webhook来进行转换的。对于x509认证的集群,有如下对应信息

  • CN(common name):对应集群中的user
  • Organization:对应集群中的group

对于新建的eks集群,则只有创建集群的用户有权限访问集群。之后如果需要将额外的用户或角色授权访问eks集群,需要进行额外配置

需要注意

  • 如果新建的集群,并且没有节点组,则不会创建名为aws-authconfigmap

查看eksctl的相关参数,可以分别对account和arn进行配置

Usage: eksctl create iamidentitymapping [flags]IAMIdentityMapping flags:--account string        Account ID to automatically map to its username--arn string            ARN of the IAM role or user to create--username string       User name within Kubernetes to map to IAM role--group strings         Groups within Kubernetes to which IAM role is mapped--service-name string   Service name; valid value: emr-containers--namespace string      Namespace in which to create RBAC resources--no-duplicate-arns     Throw error when an aws-auth record already exists

节点角色

在configmap中有如下配置,表明只有节点实例角色才有权访问集群

  • 在创建新的节点组并指定新的节点角色时,该角色会自动写入configmap
mapRoles: |
- groups:- system:bootstrappers- system:nodesrolearn: arn:aws:iam::111122223333:role/my-node-roleusername: system:node:{{EC2PrivateDNSName}}

特定用户

可以使用eksctl配置用户加入集群,或者手动配置。这里授予admin权限,可以按需修改

eksctl create iamidentitymapping \--cluster testcluster  \--region=cn-north-1 \--arn arn:aws-cn:iam::111122223333:user/test-user \--group system:masters \--no-duplicate-arns

在configmap中有如下配置,表明对应用户能够使用集群中user和group的权限

 mapRoles: |                                                                  - groups:                                                                  - system:masters                                                         rolearn: arn:aws-cn:iam::111122223333:role/test-role  

特定角色

可以使用eksctl配置角色加入集群,或者手动配置。这里授予admin权限,可以按需修改

eksctl create iamidentitymapping \--cluster testcluster \--region=cn-north-1 \--arn arn:aws-cn:iam::111122223333:role/service-role/test-role \--group system:masters \--no-duplicate-arns

在configmap中有如下配置,表明对应角色能够使用集群中user和group的权限

mapUsers: |                                                        - groups:                                                        - system:masters                                               userarn: arn:aws-cn:iam::111122223333:user/test-user

特定账户

可以使用eksctl配置账户映射,根据会将账户级别资源映射为指定的username

  • 这里只能配置账户id,不能指定group和username字段,否则会报错Error: account cannot be configured with any other options
eksctl create iamidentitymapping \--cluster test124 \--account 442337510176 \--region=cn-north-1 \--username test

在configmap中有如下配置

mapAccounts: |     - "442337510176" 

由于该字段并未指定user和group,因此只是将该账户下的user和role映射为集群中可以识别的主体,但是并没有授予相应的权限。之后如果需要对该账户授权,需要手动创建clusterrolebinding。例如以下

# read权限
kubectl create clusterrolebinding test-account-role --clusterrole=view --user="arn:aws-cn:iam::111122223333:role/111"  --group=test-group
# 为所有鉴权主体授权admin权限
kubectl create clusterrolebinding account-admin --clusterrole=cluster-admin --group=system:authenticated

这里和前3种方式相比特殊的地方在于,这里无法通过aws命令更新kubeconfig凭证。

可以通过手动生成带profile的凭证之后,再修改到目标profile

apiVersion: v1
clusters:
- cluster:certificate-authority-data: dxxxxxxxxxxxxxxCg==server: https://C96x9B.yl4.cn-north-1.eks.amazonaws.com.cnname: arn:aws-cn:eks:cn-north-1:111122223333:cluster/test-cluster
contexts:
- context:cluster: arn:aws-cn:eks:cn-north-1:111122223333:cluster/test-clusteruser: arn:aws-cn:eks:cn-north-1:111122223333:cluster/test-clustername: arn:aws-cn:eks:cn-north-1:111122223333:cluster/test-cluster
current-context: arn:aws-cn:eks:cn-north-1:111122223333:cluster/test-cluster
kind: Config
preferences: {}
users:
- name: arn:aws-cn:eks:cn-north-1:111122223333:cluster/test-clusteruser:exec:apiVersion: client.authentication.k8s.io/v1beta1args:- --region- cn-north-1- eks- get-token- --cluster-name- test124command: awsenv:- name: AWS_PROFILEvalue: test-account

相关文章:

aws eks 配置授权额外的用户和角色访问集群

参考资料 https://github.com/kubernetes-sigs/aws-iam-authenticator#full-configuration-formathttps://docs.amazonaws.cn/zh_cn/eks/latest/userguide/add-user-role.html 众所周知,aws eks使用 Authenticator 或者 aws 命令来进行账户级别的用户和角色的授权…...

MagicalCoder可视化开发平台:轻松搭建业务系统,为企业创造更多价值

让软件应用开发变得轻松起来,一起探索MagicalCoder可视化开发工具的魔力!你是否为编程世界的各种挑战感到头痛?想要以更高效、简单的方式开发出专业级的项目?MagicalCoder低代码工具正是你苦心寻找的产品!它是一款专为…...

8个不能错过的程序员必备网站,惊艳到我了!!!

程序员是一个需要不断学习的职业,不少朋友每天来逛CSDN、掘金等网站,但一直都抱着“收藏从未停止,学习从未开始”的态度,别骗自己了兄弟。在编程体系中,有很多不错的小工具,可以极大得提升我们的开发效率。…...

Mybatis(二):实现“增删改查”

Mybatis(二):实现“增删改查”前言一、MyBatis的增删改查1、添加2、修改3、删除4、查询4.1 查询一个实体4.1 查询集合二、MyBatis获取参数值的两种方式(重点)1、单个字面量类型的参数2、多个字面量类型的参数3、map集合…...

Faster RCNN 对血液细胞目标检测

目录 1. 介绍 2. 工具函数介绍 utils 2.1 xml 文件的读取 get_label_from_xml 2.2 绘制边界框 draw_bounding_box...

【数据结构】Java实现栈

目录 1. 概念 2. 栈的使用 3. 自己动手实现栈(使用动态数组实现栈) 1. 创建一个MyStack类 2. push入栈 3. pop出栈 4. 查看栈顶元素 5. 判断栈是否为空与获取栈长 6. toString方法 4. 整体实现 4.1 MyStack类 4.2 Test类 4.3 测试结果 1.…...

【数据结构】排序

作者:✿✿ xxxflower. ✿✿ 博客主页:xxxflower的博客 专栏:【数据结构】篇 语录:⭐每一个不曾起舞的日子,都是对生命的辜负。⭐ 文章目录1.排序1.1排序的概念1.2常见的排序算法2.常见排序算法2.1插入排序2.1.1直接插入…...

过拟合、验证集、交叉验证

过拟合 简单描述:训练集误差小,测试集误差大,模型评估指标的方差(variance)较大; 判断方式: 1、观察 train set 和 test set 的误差随着训练样本数量的变化曲线。 2、通过training accuracy 和…...

原力计划来了【协作共赢 成就未来】

catalogue🌟 写在前面🌟 新星计划持续上新🌟 原力计划方向🌟 原力计划拥抱优质🌟 AIGC🌟 参加新星计划还是原力计划🌟 创作成就未来🌟 写在最后🌟 写在前面 哈喽&#x…...

一文了解Jackson注解@JsonFormat及失效解决

背景 项目中使用WRITE_DATES_AS_TIMESTAMPS: true转换日期格式为时间戳未生效。如下: spring:jackson:time-zone: Asia/Shanghaiserialization:WRITE_DATES_AS_TIMESTAMPS: true尝试是否关于时间的注解是否会生效,使用JsonForma和JsonFiled均失效。 常…...

webpack——使用、分析打包代码

世上本无nodejs js最初是在前端浏览器上运行的语言,js代码一旦脱离了浏览器环境,就无法被运行。直到nodejs的出现,我们在电脑上配置了node环境,就可以让js代码脱离浏览器,在node环境中运行。 浏览器不支持模块化 nodej…...

libvirt零知识学习5 —— libvirt源码编译安装(3)

接前一篇文章libvirt零知识学习4 —— libvirt源码编译安装(2) 在上篇文章及上上篇文章中构建libvirt的时候遇到了一个问题“ERROR: Problem encountered: YAJL 2 is required to build QEMU driver”。上篇文章讲到即使安装了相应的YAJL库仍然不能解决问…...

Nmap 的使用教程

Nmap是一个网络侦测和安全审计工具。它可以用于发现网络上的主机和服务,并提供广泛的信息,其中包括操作系统类型和版本、应用程序和服务的详细信息等。在本文中,我们将介绍如何使用Nmap扫描网络主机,识别开放端口以及进行操作系统…...

async与await异步编程

ECMA2017中新加入了两个关键字async与await 简单来说它们是基于promise之上的的语法糖,可以让异步操作更加地简单明了 首先我们需要用async关键字,将函数标记为异步函数 async function f() {} f()异步函数就是指:返回值为promise对象的函…...

移动应用架构设计:如何转变开发流程

移动应用架构设计:如何转变开发流程 2023 年掌握移动应用程序架构的指南(附案例研究) 如果他们要解决这个问题,开发人员需要了解移动架构设计的最佳实践,使他们能够构建用户喜欢的优化应用程序。其中一些做法包括使用…...

NX二次开发 图层函数总结

简介: NX二次开发 图层相关的总结。 函数: uc5007()uc5008()uc5009()UF_LAYER_ask_category_info()获取图层类别的信息UF_LAYER_ask_category_tag()根据图层分类名称查询其图层分类标识UF_LAYER_ask_status()UF_LAYER_ask_work_layer()UF_LAYER_create…...

windows微服务部署

windows部署一.nginx部署1.nginx 官网下载2. 配置nginx3.配置nigix 防止nigix刷新404不生效二.配置redis部署成服务1.在系统配置中 配置为系统变量2.打开快捷登录服务管理#3. 开启redis三.windows部署jar包一.nginx部署 1.nginx 官网下载 地址 官网地址 安装 windows版本 可安…...

Java四种内部类(看这一篇就够了)

🎉🎉🎉点进来你就是我的人了 博主主页:🙈🙈🙈戳一戳,欢迎大佬指点!人生格言:当你的才华撑不起你的野心的时候,你就应该静下心来学习! 欢迎志同道合的朋友一起加油喔🦾&am…...

蓝桥杯刷题第二十天

第一题:纸张尺寸问题描述在 ISO 国际标准中定义了 A0 纸张的大小为 1189mm 841mm, 将 A0 纸 沿长边对折后为 A1 纸, 大小为 841mm 594mm, 在对折的过程中长度直接取 下整 (实际裁剪时可能有损耗)。将 A1 纸沿长边对折后为 A2 纸, 依此类推。输入纸张的名称, 请输出…...

如何通过命令行查看CentOS版本信息和linux系统信息

1.如何查看已安装的CentOS版本信息: 1.cat /proc/version 2.uname -a 3.uname -r 4.cat /etc/centos-release 5.lsb_release -a 6.hostnamectl1. 第一种方式输出的结果是: Linux version 3.10.0-1127.el7.x86_64 (mockbuildkbuilder.bsys.centos.org) …...

大数据学习栈记——Neo4j的安装与使用

本文介绍图数据库Neofj的安装与使用,操作系统:Ubuntu24.04,Neofj版本:2025.04.0。 Apt安装 Neofj可以进行官网安装:Neo4j Deployment Center - Graph Database & Analytics 我这里安装是添加软件源的方法 最新版…...

设计模式和设计原则回顾

设计模式和设计原则回顾 23种设计模式是设计原则的完美体现,设计原则设计原则是设计模式的理论基石, 设计模式 在经典的设计模式分类中(如《设计模式:可复用面向对象软件的基础》一书中),总共有23种设计模式,分为三大类: 一、创建型模式(5种) 1. 单例模式(Sing…...

脑机新手指南(八):OpenBCI_GUI:从环境搭建到数据可视化(下)

一、数据处理与分析实战 (一)实时滤波与参数调整 基础滤波操作 60Hz 工频滤波:勾选界面右侧 “60Hz” 复选框,可有效抑制电网干扰(适用于北美地区,欧洲用户可调整为 50Hz)。 平滑处理&…...

Leetcode 3576. Transform Array to All Equal Elements

Leetcode 3576. Transform Array to All Equal Elements 1. 解题思路2. 代码实现 题目链接:3576. Transform Array to All Equal Elements 1. 解题思路 这一题思路上就是分别考察一下是否能将其转化为全1或者全-1数组即可。 至于每一种情况是否可以达到&#xf…...

新能源汽车智慧充电桩管理方案:新能源充电桩散热问题及消防安全监管方案

随着新能源汽车的快速普及,充电桩作为核心配套设施,其安全性与可靠性备受关注。然而,在高温、高负荷运行环境下,充电桩的散热问题与消防安全隐患日益凸显,成为制约行业发展的关键瓶颈。 如何通过智慧化管理手段优化散…...

2025盘古石杯决赛【手机取证】

前言 第三届盘古石杯国际电子数据取证大赛决赛 最后一题没有解出来,实在找不到,希望有大佬教一下我。 还有就会议时间,我感觉不是图片时间,因为在电脑看到是其他时间用老会议系统开的会。 手机取证 1、分析鸿蒙手机检材&#x…...

04-初识css

一、css样式引入 1.1.内部样式 <div style"width: 100px;"></div>1.2.外部样式 1.2.1.外部样式1 <style>.aa {width: 100px;} </style> <div class"aa"></div>1.2.2.外部样式2 <!-- rel内表面引入的是style样…...

基于TurtleBot3在Gazebo地图实现机器人远程控制

1. TurtleBot3环境配置 # 下载TurtleBot3核心包 mkdir -p ~/catkin_ws/src cd ~/catkin_ws/src git clone -b noetic-devel https://github.com/ROBOTIS-GIT/turtlebot3.git git clone -b noetic https://github.com/ROBOTIS-GIT/turtlebot3_msgs.git git clone -b noetic-dev…...

JavaScript 数据类型详解

JavaScript 数据类型详解 JavaScript 数据类型分为 原始类型&#xff08;Primitive&#xff09; 和 对象类型&#xff08;Object&#xff09; 两大类&#xff0c;共 8 种&#xff08;ES11&#xff09;&#xff1a; 一、原始类型&#xff08;7种&#xff09; 1. undefined 定…...

怎么让Comfyui导出的图像不包含工作流信息,

为了数据安全&#xff0c;让Comfyui导出的图像不包含工作流信息&#xff0c;导出的图像就不会拖到comfyui中加载出来工作流。 ComfyUI的目录下node.py 直接移除 pnginfo&#xff08;推荐&#xff09;​​ 在 save_images 方法中&#xff0c;​​删除或注释掉所有与 metadata …...