Module: Cody::Dsl::Role
- Included in:
- Role
- Defined in:
- lib/cody/dsl/role.rb
Constant Summary collapse
- PROPERTIES =
%w[ AssumeRolePolicyDocument ManagedPolicyArns MaxSessionDuration Path PermissionsBoundary Policies RoleName ]
Instance Method Summary collapse
-
#iam_policy(*definitions) ⇒ Object
convenience wrapper methods.
- #managed_iam_policy(*definitions) ⇒ Object
-
#standardize_iam_policy(definition) ⇒ Object
Returns standarized IAM statement.
-
#standardize_managed_iam_policy(definition) ⇒ Object
AmazonEC2ReadOnlyAccess => arn:aws:iam::aws:policy/AmazonEC2ReadOnlyAccess.
Instance Method Details
#iam_policy(*definitions) ⇒ Object
convenience wrapper methods
19 20 21 |
# File 'lib/cody/dsl/role.rb', line 19 def iam_policy(*definitions) @iam_statements = definitions.map { |definition| standardize_iam_policy(definition) } end |
#managed_iam_policy(*definitions) ⇒ Object
39 40 41 |
# File 'lib/cody/dsl/role.rb', line 39 def managed_iam_policy(*definitions) @managed_policy_arns = definitions.map { |definition| standardize_managed_iam_policy(definition) } end |
#standardize_iam_policy(definition) ⇒ Object
Returns standarized IAM statement
24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
# File 'lib/cody/dsl/role.rb', line 24 def standardize_iam_policy(definition) case definition when String # Expands simple string from: logs => logs:* definition = "#{definition}:*" unless definition.include?(':') { Action: [definition], Effect: "Allow", Resource: "*", } when Hash definition end end |
#standardize_managed_iam_policy(definition) ⇒ Object
AmazonEC2ReadOnlyAccess => arn:aws:iam::aws:policy/AmazonEC2ReadOnlyAccess
44 45 46 47 48 |
# File 'lib/cody/dsl/role.rb', line 44 def standardize_managed_iam_policy(definition) return definition if definition.include?('iam::aws:policy') "arn:aws:iam::aws:policy/#{definition}" end |