通过RAM权限策略限制RAM用户权限

您可以通过为RAM用户配置RAM权限策略,限制该用户对RDS实例进行相关操作。

功能介绍

为提高RDS实例安全性,阿里云提供了RAM权限策略。您可以通过配置权限策略,实现多个场景。更多信息,请参见RDS权限策略总表

说明

如需了解RAM权限策略的更多信息,请参见权限策略概览

操作步骤

  1. 登录RAM控制台

  2. 在左侧导航栏,选择权限管理 > 权限策略

  3. 权限策略页面,单击创建权限策略

  4. 单击脚本编辑页签,在代码框中输入权限策略脚本,单击继续编辑基本信息

    说明
  5. 基本信息区域的名称文本框中,参考RDS权限策略总表权限策略名称列输入权限策略名称,并单击确定

    说明

    您也可以自定义权限策略的名称。名称格式要求如下:

    • 需包含1~128个字符。

    • 可包含英文字母、数字和短划线(-)。

  6. 在跳转的页面中单击新增授权,为目标RAM用户授权。

    1. 选择授权范围

      • 整个云账号:权限在当前阿里云账号内生效。

      • 指定资源组:权限在指定的资源组内生效。

        说明

        指定资源组授权生效的前提是该云服务已支持资源组。更多信息,请参见支持资源组的云服务

    2. 选择授权主体

      说明

      授权主体即需要授权的RAM用户,您可以在搜索框中输入RAM用户名进行模糊搜索,快速找到目标RAM用户。

    3. 选择权限下方单击自定义策略

    4. 在权限策略列表中找到步骤4中创建的权限策略名称,单击确定

      说明

      您可以在权限策略列表上方的搜索框中输入权限策略的名称进行模糊搜索,快速找到目标权限策略。

RDS权限策略总表

限制项

权限策略名称

代码

说明

实例创建

CreateRdsWithNonDiskEncryptionForbidden

点击展开

{ 
  "Statement": [ 
    {
      "Action": [
        "rds:CreateDBInstance", 
        "rds:PreCheckCreateOrder", 
        "rds:CreateOrder"
      ], 
      "Effect": "Deny", 
      "Resource": "*", 
      "Condition": {
        "Bool": { 
          "rds:DiskEncryptionRequired": "false" 
        } 
      } 
    } 
  ], 
  "Version": "1" 
}

防止目标用户创建磁盘没有加密的RDS实例。

说明

本功能当前仅适用于新建主实例,除此之外的所有场景下(例如创建只读实例、恢复数据到新实例),本功能不会生效。

CreateRdsWithNonVPCNetworkTypeForbidden

点击展开

{ 
  "Statement": [
    {
      "Action": [
        "rds:CreateDBInstance",
        "rds:PreCheckCreateOrder",
        "rds:CreateOrder"
      ], 
      "Effect": "Deny", 
      "Resource": "*", 
      "Condition": { 
        "StringNotEquals": { 
          "rds:InstanceNetworkType": "VPC" 
        } 
      }
    } 
  ], 
  "Version": "1" 
}

防止目标用户创建网络类型为非专有网络VPC的RDS实例。

说明

本功能当前仅适用于新建主实例,除此之外的所有场景下(例如创建只读实例、恢复数据到新实例),本功能不会生效。

网络配置

DatabaseConnectionNonVPCNetworkTypeForbidden

点击展开

{
  "Statement": [
    {
      "Action": "rds:ModifyDBInstanceNetworkType", 
      "Effect": "Deny", 
      "Resource": "*", 
      "Condition": {
        "StringNotEquals": {
          "rds:InstanceNetworkType": "VPC" 
        }
      }
    }
  ],
  "Version": "1" 
}

防止目标用户切换RDS实例的网络类型为经典网络。

安全配置

DataSecuritySSLDisabledForbidden

点击展开

{ 
  "Statement": [
    {
      "Action": "rds:ModifyDBInstanceSSL", 
      "Effect": "Deny", 
      "Resource": "*", 
      "Condition": {
        "StringEquals": { 
          "rds:SSLEnabled": "0" 
        }
      }
    }
  ],
  "Version": "1" 
}

防止目标用户关闭RDS实例的SSL加密。

DataSecurityTDEDisabledForbidden

点击展开

{ 
  "Statement": [
    {
      "Action": "rds:ModifyDBInstanceTDE", 
      "Effect": "Deny",
      "Resource": "*",
      "Condition": {
        "StringNotEquals": {
          "rds:TDEStatus": "Enabled" 
        }
      }
    }
  ], 
  "Version": "1"
}

防止目标用户关闭RDS实例的透明数据加密TDE。

数据库代理配置

DatabaseProxyWithNonVPCNetworkTypeForbidden

点击展开

{ 
  "Statement": [
    { 
      "Action": "rds:ModifyDBProxy",
      "Effect": "Deny",
      "Resource": "*",
      "Condition": { 
        "StringNotEquals": {
          "rds:InstanceNetworkType": "VPC"
        }
      }
    }
  ],
  "Version": "1" 
}

防止目标用户在开启RDS实例的数据库代理服务时,指定网络地址类型为外网。

DatabaseProxyCreateEndpointAddressWithNonVPCNetworkTypeForbidden

点击展开

{
  "Statement": [
    {
      "Action": "rds:CreateDBProxyEndpointAddress", 
      "Effect": "Deny",
      "Resource": "*",
      "Condition": { 
        "StringNotEquals": {
          "rds:DBProxyConnectStringNetType": "VPC"
        }
      }
    }
  ],
  "Version": "1" 
}

防止目标用户在创建RDS实例的数据库代理连接地址时,指定网络地址类型为外网。

DatabaseProxyModifyEndpointAddressWithNonVPCNetworkTypeForbidden

点击展开

{ 
  "Statement": [
    {
      "Action": "rds:ModifyDBProxyEndpointAddress",
      "Effect": "Deny", 
      "Resource": "*",
      "Condition": {
        "StringNotEquals": {
          "rds:DBProxyConnectStringNetType": "VPC"
        }
      }
    }
  ],
  "Version": "1" 
}

防止目标用户在修改RDS实例的数据库代理连接地址时,指定网络地址类型为外网。

DatabaseProxyDbProxyInstanceSslDisabledForbidden

点击展开

{ 
  "Statement": [
    {
      "Action": "rds:ModifyDbProxyInstanceSsl",
      "Effect": "Deny",
      "Resource": "*", 
      "Condition": {
        "StringEquals": {
          "rds:DbProxySslEnabled": "0" 
        }
      }
    }
  ], 
  "Version": "1" 
}

防止目标用户关闭RDS实例的数据库代理SSL加密功能。

备份相关配置

BackupAndRestorationCrossBackupDisabledForbidden

点击展开

{ 
  "Statement": [
    {
      "Action": "rds:ModifyInstanceCrossBackupPolicy",
      "Effect": "Deny", 
      "Resource": "*",
      "Condition": { 
        "StringNotEquals": {
          "rds:BackupEnabled": "1" 
        }
      }
    },
    {
      "Action": "rds:ModifyInstanceCrossBackupPolicy",
      "Effect": "Deny", 
      "Resource": "*",
      "Condition": { 
        "StringNotEquals": {
          "rds:LogBackupEnabled": "1" 
        } 
      }
    }
  ],
  "Version": "1"
}

防止目标用户关闭RDS实例的跨地域备份功能。

BackupAndRestorationBackupPolicyDisabledForbidden

点击展开

{ 
  "Statement": [
    {
      "Action": "rds:ModifyBackupPolicy",
      "Effect": "Deny",
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "rds:EnableBackupLog": "0"
        }
      }
    },
    {
      "Action": "rds:ModifyBackupPolicy",
      "Effect": "Deny", 
      "Resource": "*",
      "Condition": { 
        "StringEquals": {
          "rds:BackupLog": "Disabled"
        }
      }
    }
  ],
  "Version": "1"
}

防止目标用户关闭RDS实例的日志备份功能。

历史事件

EventCenterActionEventEnableEventLogForbidden

点击展开

{ 
  "Statement": [
    { 
      "Action": "rds:ModifyActionEventPolicy",
      "Effect": "Deny",
      "Resource": "*",
      "Condition": { 
        "StringNotEquals": {
          "rds:EnableEventLog": "False"
        }
      }
    }
  ],
  "Version": "1" 
}

防止目标用户开启RDS实例的历史事件功能。