使用API/CLI对阿里云子账户做ACK(Kubernetes) RBAC授权

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: 使用API/CLI对阿里云子账户做ACK(Kubernetes) RBAC授权, 实现自动化运维和统一授权管理。系统管理员可以通过脚本,API实现对子账户的RAM,以及Kubernetes RBAC授权。

使用CloudShell 来一次完成ACK集群的RAM授权和RBAC授权

  1. 登录CloudShell获取一个配置完整集群管理命令行

image

  1. 授权

List existing users

aliyun ram ListUsers  | jq -r ".Users.User[].UserName"

wget https://ack-downloads.oss-cn-hangzhou.aliyuncs.com/rbac/ack-grant-once  -O ack-grant-once  && chmod 755 ack-grant-once

Grant permission once

./ack-grant-once <USER_NAME> <ROLE: one of custom:network-view, cs:admin, cs:ops and cs:dev>

e.g.

./ack-grant-once eric custom:network-view

Prerequisite

Prepare kube config for resource admin user kubernetes-admin before you get start cli and api calls.

Download public/privite kubernetes config file from cluster detail dashboard

https://cs.console.aliyun.com/#/k8s/cluster/<your_cluster_id>/info?eci=false

Otherwise fetch kubenetes config file with openAPI

https://help.aliyun.com/document_detail/86798.html?spm=a2c4g.11186623.6.804.385a49feoJu0gZ

Notice:
certificate-authority-data: kubeconfig ca
user->client-certificate-data: kubeconfig cert
user->client-key-data: kubeconfig key

Decode the base64 for above 3 ca/certs file to put into kubeconfig config.
echo * | base64 –d

RBAC

Grant permission of ACK RBAC thru CLI of kubectl

"cs:admin": cluster admin and full read/write access
"cs:ops": cluster operator without write access of pv/namespace/node
"cs:dev": developer of namespace level access

Additional network-view role is added for readonly access of network operator

"custom:network-view": read access for node/service/endpoints

wget http://ack-downloads.oss-cn-hangzhou.aliyuncs.com/rbac/ack-grant -O ack-grant  && chmod 755 ack-grant

./ack-grant <USER_ID> <ROLE: one of custom:network-view, cs:admin, cs:ops and cs:dev>

Use Python SDK to grant privilege to sub-account of aliyun

Kubernete Python SDK

pip install kubernetes
wget http://ack-downloads.oss-cn-hangzhou.aliyuncs.com/rbac/ack-grant.py -O ack-grant.py

python  ack-grant.py -u <UID of sub-account> -r cs:ops -c /Users/eric/.kube/config_f3

RBAC API

Example to DELETE existing clusterrolebinding

curl -k -v -XDELETE  -H "Accept: application/json" -H "Content-Type: application/json" -H "User-Agent: kubectl/v1.10.3 (darwin/amd64) kubernetes/2bba012" https://<public/private IP of Kubernetes API server>:6443/apis/rbac.authorization.k8s.io/v1/clusterrolebindings/<UID of sub-account>-clusterrolebinding

Create new clusterrolebinding

Request Body: {"apiVersion":"rbac.authorization.k8s.io/v1","kind":"ClusterRoleBinding","metadata":{"name":"<UID of sub-account>-clusterrolebinding","namespace":""},"roleRef":{"apiGroup":"rbac.authorization.k8s.io","kind":"ClusterRole","name":"cs:ops"},"subjects":[{"apiGroup":"rbac.authorization.k8s.io","kind":"User","name":"<UID of sub-account>"}]}

curl -k -v -XPOST  -H "Accept: application/json" -H "Content-Type: application/json" -H "User-Agent: kubectl/v1.10.3 (darwin/amd64) kubernetes/2bba012" https://<public/private IP of Kubernetes API server>:6443/apis/rbac.authorization.k8s.io/v1/clusterrolebindings
相关实践学习
Docker镜像管理快速入门
本教程将介绍如何使用Docker构建镜像,并通过阿里云镜像服务分发到ECS服务器,运行该镜像。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
目录
相关文章
|
4天前
|
存储 Kubernetes Docker
容器服务ACK常见问题之阿里云控制台进不去了如何解决
容器服务ACK(阿里云容器服务 Kubernetes 版)是阿里云提供的一种托管式Kubernetes服务,帮助用户轻松使用Kubernetes进行应用部署、管理和扩展。本汇总收集了容器服务ACK使用中的常见问题及答案,包括集群管理、应用部署、服务访问、网络配置、存储使用、安全保障等方面,旨在帮助用户快速解决使用过程中遇到的难题,提升容器管理和运维效率。
|
4天前
|
人工智能 运维 Kubernetes
阿里云容器服务ACK AI助手正式上线带来的便利性
作为开发者想必大家都知道,云原生容器技术的优势,尤其是近两年的随着容器技术的迅猛发展,Kubernetes(K8s)已成为广泛应用于容器编排和管理的领先解决方案,但是K8s的运维复杂度一直是挑战之一。为了应对这一问题,就在最近,阿里云容器服务团队正式发布了ACK AI助手,这是一款旨在通过大模型增强智能诊断的产品,旨在帮助企业和开发者降低Kubernetes(K8s)的运维复杂度。那么本文就来详细讲讲关于这款产品,让我们结合实际案例分享一下K8s的运维经验,探讨ACK AI助手能否有效降低K8s的运维复杂度,并展望ACK AI助手正式版上线后的新功能。
284 2
阿里云容器服务ACK AI助手正式上线带来的便利性
|
4天前
|
Kubernetes 容器
要获取ACK(阿里云容器服务)集群中的Deployment
要获取ACK(阿里云容器服务)集群中的Deployment【1月更文挑战第8天】【1月更文挑战第40篇】
68 4
|
4天前
|
运维 Serverless API
Serverless 应用引擎产品使用之在阿里函数计算中开启函数计算 API 接口如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
123 6
|
4天前
|
弹性计算 运维 Serverless
Serverless 应用引擎产品使用之在阿里函数计算中,使用阿里云API或SDK从函数计算调用ECS实例的服务如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
45 4
|
4天前
|
缓存 运维 Serverless
Serverless 应用引擎产品使用之阿里函数计算中。将本地电脑上的项目文件部署到阿里云函数计算(FC)上并实现对外提供API和WebUI如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
39 1
|
4天前
|
缓存 Serverless API
Serverless 应用引擎操作报错合集之阿里函数计算中出现关于“FC environment variables [FC_RuntIME_API] are not defined exit status 1”的报错如何解决
Serverless 应用引擎(SAE)是阿里云提供的Serverless PaaS平台,支持Spring Cloud、Dubbo、HSF等主流微服务框架,简化应用的部署、运维和弹性伸缩。在使用SAE过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
29 3
|
4天前
|
消息中间件 Kubernetes Kafka
Terraform阿里云创建资源1分钟创建集群一键发布应用Terraform 创建 Kubernetes 集群
Terraform阿里云创建资源1分钟创建集群一键发布应用Terraform 创建 Kubernetes 集群
33 0
|
4天前
|
存储 DataWorks Kubernetes
阿里云cam授权案例
以下是内容摘要: 1. 阿里云OSS自定义策略允许全权访问`dc-odsopr`及其所有内容。 2. Dataworks授权文档详情见[此处](https://help.aliyun.com/document_detail/74302.html)。 3. 日志权限策略涵盖多种日志操作,如获取和管理项目、作业、日志存储等,限定于`cn-shenzhen`区域的`k8s`项目。 4. AliKafka权限包括实例、主题的管理,消息操作及部署、ACL、用户管理等。 5. OSS策略允许上传对象至`sz-creative-system-test-public`存储空间。
53 5
|
4天前
|
Kubernetes 搜索推荐 Linux
K8S 1.20 弃用 Docker 评估之 Docker CLI 的替代产品 nerdctl
K8S 1.20 弃用 Docker 评估之 Docker CLI 的替代产品 nerdctl

相关产品

  • 容器服务Kubernetes版

  • http://www.vxiaotou.com