开发者社区 问答 正文

API参考 - API参考 - RAM资源授权



描述


您通过云账号创建的RDS实例,都是该账号自己拥有的资源。默认情况下,账号对自己的资源拥有完整的操作权限。
通过使用阿里云的RAM(Resource Access Management)服务,您可以将您云账号下RDS资源的访问及管理权限授予RAM中的子用户。
目前,可以在RAM中进行授权的资源类型只有dbinstance。在通过RAM进行授权时,资源的描述方式如下:

请求参数

[tr=rgb(51, 205, 229)][td]资源类型 授权策略中的资源描述方式dbinstanceacs:rds:$regionid:$accountid:dbinstance/$dbinstanceid
acs:rds:$regionid:$accountid:dbinstance/
acs:rds:::dbinstance/
参数说明:
[tr=rgb(51, 205, 229)][td]参数名称 说明

$regionid地域的ID,可以用*代替。

$dbinstanceid实例的名称,可以用*代替。

$accountid云账号的数字ID,可以用*代替。

RDS API的鉴权规则


当子用户通过API访问RDS时,RDS后台会向RAM进行权限检查,以确保调用者拥有相应权限。每个API会根据涉及到的资源以及API的语义来确定需要检查哪些资源的权限。每个API的鉴权规则如下表所示:
[tr=rgb(51, 205, 229)][td]API 鉴权规则CreateDBInstanceacs:rds:$regionid:$accountid:dbinstance/$dbinstanceidDeleteDBInstanceacs:rds:$regionid:$accountid:dbinstance/$dbinstanceidDescribeDBInstancesacs:rds:$regionid:$accountid:dbinstance/$dbinstanceidSwitchDBInstanceNetTypeacs:rds:$regionid:$accountid:dbinstance/$dbinstanceidModifyDBInstanceDescriptionacs:rds:$regionid:$accountid:dbinstance/$dbinstanceidModifyDBInstanceMaintainTimeacs:rds:$regionid:$accountid:dbinstance/$dbinstanceidPurgeDBInstanceLogacs:rds:$regionid:$accountid:dbinstance/$dbinstanceidDeleteDatabaseacs:rds:$regionid:$accountid:dbinstance/$dbinstanceidModifyDBDescriptionacs:rds:$regionid:$accountid:dbinstance/$dbinstanceidDescribeFilesForSQLServeracs:rds:$regionid:$accountid:dbinstance/$dbinstanceidDescribeImportsForSQLServeracs:rds:$regionid:$accountid:dbinstance/$dbinstanceidCancelImportacs:rds:$regionid:$accountid:dbinstance/$dbinstanceidResetAccountPasswordacs:rds:$regionid:$accountid:dbinstance/$dbinstanceidRevokeAccountPrivilegeacs:rds:$regionid:$accountid:dbinstance/$dbinstanceidDeleteAccountacs:rds:$regionid:$accountid:dbinstance/$dbinstanceidCreateBackupacs:rds:$regionid:$accountid:dbinstance/$dbinstanceidCreateTempDBInstanceacs:rds:$regionid:$accountid:dbinstance/$dbinstanceidModifyBackupPolicyacs:rds:$regionid:$accountid:dbinstance/$dbinstanceidDescribeDBInstancePerformanceacs:rds:$regionid:$accountid:dbinstance/$dbinstanceidDescribeSlowLogRecordsacs:rds:$regionid:$accountid:dbinstance/$dbinstanceidDescribeBinlogFilesacs:rds:$regionid:$accountid:dbinstance/$dbinstanceidDescribeSQLLogRecordsacs:rds:$regionid:$accountid:dbinstance/$dbinstanceidDescribeOptimizeAdviceOnMissPKacs:rds:$regionid:$accountid:dbinstance/$dbinstanceidDescribeOptimizeAdviceOnMissIndexacs:rds:$regionid:$accountid:dbinstance/$dbinstanceidDescribeParametersacs:rds:$regionid:$accountid:dbinstance/$dbinstanceidCreatePrepaidDBInstanceForChannelacs:rds:$regionid:$accountid:dbinstance/$dbinstanceidModifyPrepaidDBInstanceSpecacs:rds:$regionid:$accountid:dbinstance/$dbinstanceidCreatePostpaidDBInstanceForChannelacs:rds:$regionid:$accountid:dbinstance/$dbinstanceidModifyPostpaidDBInstanceSpecacs:rds:$regionid:$accountid:dbinstance/$dbinstanceidDescribeDBInstanceAttributeacs:rds:$regionid:$accountid:dbinstance/$dbinstanceidRestartDBInstanceacs:rds:$regionid:$accountid:dbinstance/$dbinstanceidModifySecurityIpsacs:rds:$regionid:$accountid:dbinstance/$dbinstanceidUpgradeDBInstanceEngineVersionacs:rds:$regionid:$accountid:dbinstance/$dbinstanceidCreateDatabaseacs:rds:$regionid:$accountid:dbinstance/$dbinstanceidDescribeDatabasesacs:rds:$regionid:$accountid:dbinstance/$dbinstanceidCreateUploadPathForSQLServeracs:rds:$regionid:$accountid:dbinstance/$dbinstanceidImportDataBaseBetweenInstancesacs:rds:$regionid:$accountid:dbinstance/$dbinstanceidCreateAccountacs:rds:$regionid:$accountid:dbinstance/$dbinstanceidGrantAccountPrivilegeacs:rds:$regionid:$accountid:dbinstance/$dbinstanceidDescribeAccountsacs:rds:$regionid:$accountid:dbinstance/$dbinstanceidModifyAccountDescriptionacs:rds:$regionid:$accountid:dbinstance/$dbinstanceidDescribeBackupsacs:rds:$regionid:$accountid:dbinstance/$dbinstanceidDescribeBackupPolicyacs:rds:$regionid:$accountid:dbinstance/$dbinstanceidDescribeResourceUsageacs:rds:$regionid:$accountid:dbinstance/$dbinstanceidDescribeSlowLogsacs:rds:$regionid:$accountid:dbinstance/$dbinstanceidDescribeErrorLogsacs:rds:$regionid:$accountid:dbinstance/$dbinstanceidDescribeSQLLogReportsacs:rds:$regionid:$accountid:dbinstance/$dbinstanceidDescribeOptimizeAdviceOnStorageacs:rds:$regionid:$accountid:dbinstance/$dbinstanceidDescribeOptimizeAdviceOnExcessIndexacs:rds:$regionid:$accountid:dbinstance/$dbinstanceidDescribeOptimizeAdviceByDBAacs:rds:$regionid:$accountid:dbinstance/$dbinstanceid[tr=rgb(239, 251, 255)][td]ModifyeParameter acs:rds:$regionid:$accountid:dbinstance/$dbinstanceid

展开
收起
梨好橙 2018-09-16 22:57:06 1566 分享
分享
版权
举报
阿里云 AI 助理回答

在阿里云环境中,通过Resource Access Management (RAM) 服务,您可以灵活地将云账号下RDS资源的访问及管理权限授予给RAM子用户。以下是关于如何利用RAM进行RDS实例授权的具体指导:

RDS资源类型与授权描述方式

  • 资源类型:目前支持授权的RDS资源类型为dbinstance
  • 授权策略中的资源描述方式
    • 具体格式:acs:rds:$regionid:$accountid:dbinstance/$dbinstanceid
    • 参数说明:
    • $regionid:地域ID,可使用通配符*代表所有地域。
    • $dbinstanceid:RDS实例名称,同样可以使用*作为通配符。
    • $accountid:云账号的数字ID,亦可用*表示所有账号。

RAM中资源授权步骤概览

  1. 登录RAM控制台,导航至权限管理 > 权限策略
  2. 点击创建权限策略,选择可视化编辑脚本编辑方式。
  3. 配置权限策略,确保至少包含必要的读操作(如DescribeDBInstances),以允许查看实例列表。
  4. 在资源部分,根据需要选择全部资源或精确指定资源,使用上述资源描述方式。
  5. 保存策略,并为其命名及添加备注。
  6. 将此自定义策略应用到目标RAM用户:进入身份管理 > 用户,找到目标用户并点击添加权限,选择已创建的策略并确认授权。

API鉴权规则

每项RDS API调用都会触发权限检查,确保调用者具备相应权限。例如,CreateDBInstanceDeleteDBInstance等API要求具有特定实例级别的权限,其资源描述遵循上述格式。这意味着,当配置策略时,需精确匹配API所需的操作和资源,确保子用户能够执行期望的操作。

注意事项

  • 最小权限原则:仅赋予完成任务所需的最小权限集合,避免过度授权。
  • 资源ARN配置:正确填写资源ARN是权限生效的关键,务必根据实际需求选择合适的资源范围。
  • 定期审查:随着业务发展,定期回顾和调整RAM策略,保持权限设置的最新和最安全状态。

综上所述,通过细致配置RAM权限策略,您可以安全且高效地控制子用户对RDS实例的访问权限,满足不同场景下的权限管理需求。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答