如何为RAM子账号授予单一RDS实例的访问权限?

本文涉及的产品
RDS PostgreSQL Serverless,0.5-4RCU 50GB 3个月
推荐场景:
对影评进行热评分析
云原生数据库 PolarDB 分布式版,标准版 2核8GB
云数据库 RDS SQL Server,基础系列 2核4GB
简介: 在阿里云中,如何为RAM子账号进行精准授权,授予单一RDS实例的访问权限?这篇文档帮到你

问题背景

由于公司权限控制,需要对阿里云RDS MySQL实例的进行资源隔离,即单一RAM子账号只能访问特定的资源,下面我们举一个例子来看看如何处理。



操作流程

1、主账号下有两个RDS实例A和B,我们选其中实例A来赋予RAM子账号独立访问操作的权限

image.png


2、首先我们在RAM访问控制中创建RAM子账号。

image.png

image.png


3、创建自定义权限策略

image.png

image.png

{
  "Statement": [
    {
      "Action": "rds:Describe*",
      "Effect": "Allow",
      "Resource": "acs:rds:*:*:dbinstance/rm-bxxxxxxxxo"
    },
    {
      "Action": "rds:DescribeDBInstances",
      "Effect": "Allow",
      "Resource": "*"
    }
  ],
  "Version": "1"
}

RDS支持policy在resource中指定资源实例ID写法。

image.png


4、授权操作,确认后点击【完成】即可。具体详见为RAM账户授权

image.png

image.png

授权成功。


5、使用对应的RAM账号登录验证:

image.png


6、此时,控制台还是能看到实例B。

image.png


7、访问实例A正常的,由于没有实例B的授权,因此点进实例页面会发现报错:“该实例不存在,请确认实例是否存在或已过期”,这个是因为没有授权导致。

image.png

image.png

这个问题的原因是由于单个实例授权在控制台现在不支持,实例列表页请求本身不带资源ID鉴权不会通过,现在只能支持到acs:rds:*:主账号uid:dbinstance/*这种策略,单一api调用是可以用实例级别的策略。


那能不能进一步优化,隐藏掉未指定的实例?接着往下看

1、首先我们使用主账号回到RAM访问控制>用户页面为RAM账户绑定标签注意:Tag的key和value不要用大写字母。image.png

image.png


2、因为在【资源管理/标签】对应的标签就自动创建了,我们再给实例绑定该标签。

image.png

image.png


3、验证下,按照标签检索

image.png


4、回到前面自定义的授权页面,变更授权

image.png

image.png

参考:权限策略由哪些元素组成_访问控制-阿里云帮助中心


5、变更后:

image.png

文本格式:

{
    "Statement": [
        {
            "Action": "rds:*",
            "Effect": "Allow",
            "Resource": "acs:rds:*:*:*",
            "Condition": {
                "StringEquals": {
                    "rds:ResourceTag/chytag": "test"
                }
            }
        },
        {
            "Action": "rds:DescribeTag*",
            "Effect": "Allow",
            "Resource": "*"
        }
    ],
    "Version": "1"
}

更详细授权如下:

{
    "Statement": [
        {
            "Action": "rds:Describe*",
            "Effect": "Allow",
            "Resource": "acs:rds:*:*:*",
            "Condition": {
                "StringEquals": {
                    "rds:ResourceTag/chytag": "test"
                }
            }
        },
        {
            "Action": "rds:DescribeTag*",
            "Effect": "Allow",
            "Resource": "*"
        },
        {
            "Action": [
                "rds:DescribeSQLCollectorVersion",
                "rds:DescribeVSwitches"
            ],
            "Effect": "Allow",
            "Resource": "acs:rds:*:*:*"
        },
        {
            "Action": [
                "hdm:Get*",
                "hdm:Describe*",
                "hdm:Query*"
            ],
            "Resource": "*",
            "Effect": "Allow"
        },
        {
            "Action": [
                "actiontrail:Lookup*",
                "actiontrail:Describe*",
                "actiontrail:Get*",
                "actiontrail:Check*",
                "actiontrail:List*"
            ],
            "Resource": "*",
            "Effect": "Allow"
        }
    ],
    "Version": "1"
}


6、RAM子账号登录验证:RDS实例列表控制台

image.png


7、通过Tag标签检索

image.png

成功获取实例,且具有该RDS实例的所有权限

image.png



两种方案各有利弊吧,都有不太妥当的地方,期待阿里云继续优化吧。

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
1月前
|
存储 关系型数据库 MySQL
环比、环比增长率、同比、同比增长率 ,占比,Mysql 8.0 实例(最简单的方法之一)(sample database classicmodels _No.2 )
环比、环比增长率、同比、同比增长率 ,占比,Mysql 8.0 实例(最简单的方法之一)(sample database classicmodels _No.2 )
95 1
|
1月前
|
SQL 前端开发 关系型数据库
全表数据核对 ,行数据核对,列数据核对,Mysql 8.0 实例(sample database classicmodels _No.3 )
全表数据核对 ,行数据核对,列数据核对,Mysql 8.0 实例(sample database classicmodels _No.3 )
49 0
全表数据核对 ,行数据核对,列数据核对,Mysql 8.0 实例(sample database classicmodels _No.3 )
|
19天前
|
关系型数据库 MySQL Docker
docker环境下mysql镜像启动后权限更改问题的解决
在Docker环境下运行MySQL容器时,权限问题是一个常见的困扰。通过正确设置目录和文件的权限,可以确保MySQL容器顺利启动并正常运行。本文提供了多种解决方案,包括在主机上设置正确的权限、使用Dockerfile和Docker Compose进行配置、在容器启动后手动更改权限以及使用 `init`脚本自动更改权限。根据实际情况选择合适的方法,可以有效解决MySQL容器启动后的权限问题。希望本文对您在Docker环境下运行MySQL容器有所帮助。
33 1
|
21天前
|
SQL NoSQL 关系型数据库
|
29天前
|
存储 关系型数据库 MySQL
基于案例分析 MySQL 权限认证中的具体优先原则
【10月更文挑战第26天】本文通过具体案例分析了MySQL权限认证中的优先原则,包括全局权限、数据库级别权限和表级别权限的设置与优先级。全局权限优先于数据库级别权限,后者又优先于表级别权限。在权限冲突时,更严格的权限将被优先执行,确保数据库的安全性与资源合理分配。
|
12天前
|
关系型数据库 MySQL 数据库
【赵渝强老师】启动与关闭MySQL数据库实例
MySQL数据库安装完成后,可以通过命令脚本启动、查看状态、配置开机自启、查看自启列表及关闭数据库。本文提供了详细的操作步骤和示例代码,并附有视频讲解。
|
1月前
|
关系型数据库 MySQL Java
Django学习二:配置mysql,创建model实例,自动创建数据库表,对mysql数据库表已经创建好的进行直接操作和实验。
这篇文章是关于如何使用Django框架配置MySQL数据库,创建模型实例,并自动或手动创建数据库表,以及对这些表进行操作的详细教程。
65 0
Django学习二:配置mysql,创建model实例,自动创建数据库表,对mysql数据库表已经创建好的进行直接操作和实验。
|
1月前
|
存储 关系型数据库 MySQL
mysql 8.0 的 建表 和八种 建表引擎实例
mysql 8.0 的 建表 和八种 建表引擎实例
21 0
|
1月前
|
存储 关系型数据库 MySQL
Key_Value 形式 存储_5级省市城乡划分代码 (mysql 8.0 实例)
本文介绍了如何使用MySQL8.0数据库中的Key_Value形式存储全国统计用区划代码和城乡划分代码(5级),包括导入数据、通过数学函数提取省市区信息,以及查询5级行政区划的详细数据。
32 0
|
1月前
|
算法 关系型数据库 MySQL
复购率 mysql 实例(sample database classicmodels _No.1 )
复购率 mysql 实例(sample database classicmodels _No.1 )
27 0

相关产品

  • 云数据库 RDS MySQL 版
  • 云数据库 RDS
  • 下一篇
    无影云桌面