Oracle——限制API权限

目的

为了防止在部署抢鸡脚本时,API被人滥用从而造成盗号等行为,可以通过限制API的权限来达到目的

适用情况

  • 部署抢鸡脚本需要API密钥
  • 随便借给别人玩玩
  • 别人使用VNC救砖

原理

  • 创建一个新用户
  • 该用户只有实例引导卷网络的权限,而没有其他任何权限
  • 如果部署抢鸡脚本,无需用户登录,直接生成API密钥即可
  • 如果需要VNC救砖,则需要登录密码

核心步骤

  • 创建用户组
  • 创建策略
  • 创建用户
  • 生成API密钥

创建API密钥的方式

  • 强烈推荐脚本操作,方便快捷
  • 手动操作

脚本创建API

打开Cloud Shell运行下面的语句

1
wget -N "https://raw.githubusercontent.com/jin-gubang/public/main/oracle_role_apiuser_policy.sh" --no-check-certificate && chmod +x oracle_role_apiuser_policy.sh && bash oracle_role_apiuser_policy.sh

关于语句的内容及安全性,有能力的可以查看GitHub,以下是网址
https://github.com/jin-gubang/public/blob/main/oracle_role_apiuser_policy.sh
运行后的效果如图

image

然后就会创建出策略用户,接着找到User_for_Api_used创建密钥即可

手动创建API

创建用户组

image
image

名称:Group_for_Api_used

说明:这个用户组是给API使用的,权限会受限制以防止API操作用户类权限

创建策略

image
image

名称:Policy_for_Api_used

说明:这个用户组是给API使用的,权限会受限制以防止API操作用户类权限

策略构建器:(这里的Group_for_Api_used就是上一步中的用户组名称)

Allow group ‘Default’/‘Group_for_Api_used’ to manage instance-family in tenancy

Allow group ‘Default’/‘Group_for_Api_used’ to manage volume-family in tenancy

Allow group ‘Default’/‘Group_for_Api_used’ to manage virtual-network-family in tenancy

创建用户

image
image

名字,姓氏,用户名:User_for_Api_used

电子邮件:xxxxxx@domain.com(由于这个用户根本不用登录,来一个不可能登录的电子邮件就可以,或者用个你自己备用邮件也可以)

用户组:选择Group_for_Api_used

生成API密钥

image

完成后截图核对

策略如图

image
image

组如图

image
image