Ruby SDK v3中AWS::Core::Policy类去向及创建方法咨询
AWS Ruby SDK v3 中创建IAM策略对象的替代方案
旧版Ruby SDK v2中创建策略的方式:
AWS::Core::Policy.new.allow(:resource => some_arn, :principals => some_users, :actions => some_actions)
在Ruby SDK v3中,AWS::Core::Policy已被移除,相关功能整合到了**Aws::IAM::Policy**类中,同时SDK提供了更贴合IAM策略原生结构的API来构建策略对象,以下是两种常用实现方式:
方法1:直接基于IAM策略结构初始化
直接定义符合IAM规范的策略哈希,传入Aws::IAM::Policy初始化:
policy = Aws::IAM::Policy.new( version: "2012-10-17", statements: [ { effect: "Allow", resources: [some_arn], principals: some_users, actions: some_actions } ] )
方法2:通过Statement类分步构建
先创建Aws::IAM::Statement对象定义权限规则,再添加到策略中:
# 创建允许类型的权限语句 allow_statement = Aws::IAM::Statement.new( effect: "Allow", resources: [some_arn], principals: some_users, actions: some_actions ) # 初始化策略并添加语句 policy = Aws::IAM::Policy.new(version: "2012-10-17") policy.statements << allow_statement
注意:v3的API参数命名更贴近IAM策略的JSON字段(比如用resources替代旧版的resource),需要对应调整参数名称。
内容的提问来源于stack exchange,提问作者patrick
相关产品推荐
相关产品推荐

