Skip to content
This repository was archived by the owner on Oct 7, 2025. It is now read-only.

Commit c9807ec

Browse files
authored
Merge pull request #2481 from codeenigma/Updatng-permissions-and-adding-more-functions-PR-devel-2.x
Updatng permissions and adding more functions pr devel 2.x
2 parents 1db53ae + 2fa119a commit c9807ec

File tree

11 files changed

+80
-18
lines changed

11 files changed

+80
-18
lines changed

roles/aws/aws_admin_tools/defaults/main.yml

Lines changed: 27 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,19 +4,40 @@ aws_admin_tools:
44
allowed_ips:
55
- 192.168.1.1/32 # Ip of server with access to API-s
66
functions:
7-
- name: "GetForecastedCosts"
7+
- name: "get_forecasted_costs"
88
type: GET
99
inline_policies:
1010
name: "{{ _aws_profile }}Billing"
1111
resource: "*"
12-
acton:
12+
action:
1313
- "ce:*"
1414
policies: []
15-
- name: "ChangeASGScaling"
15+
- name: "change_asg_scaling"
1616
type: POST
1717
policies:
1818
- arn:aws:iam::aws:policy/AmazonEC2FullAccess
19-
- name: "GetListOfEC2"
19+
- name: "get_list_of_ec2"
2020
type: GET
21-
policies:
22-
- arn:aws:iam::aws:policy/AmazonEC2FullAccess
21+
policies: []
22+
inline_policies:
23+
name: "list_ec2"
24+
resource: "*"
25+
action:
26+
- "ec2:DescribeAddresses"
27+
- "ec2:DescribeInstances"
28+
- name: "get_ip_set"
29+
type: GET
30+
policies: []
31+
inline_policies:
32+
name: "get_ip_set"
33+
resource: "*"
34+
action:
35+
- "wafv2:GetIPSet"
36+
- name: "update_ip_set"
37+
type: POST
38+
policies: []
39+
inline_policies:
40+
name: "update_ip_set"
41+
resource: "*"
42+
action:
43+
- "wafv2:UpdateIPSet"

roles/aws/aws_admin_tools/tasks/create.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@
6565
- name: Update Lambda triggers.
6666
ansible.builtin.command: >-
6767
aws lambda add-permission
68-
--function-name "API_{{ item.name }}"
68+
--function-name "api_{{ item.name }}"
6969
--statement-id "{{ item.name }}_{{ _rand_str }}"
7070
--action "lambda:InvokeFunction"
7171
--principal apigateway.amazonaws.com

roles/aws/aws_admin_tools/tasks/create_methods.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@
5454
--type AWS
5555
--content-handling CONVERT_TO_TEXT
5656
--integration-http-method POST
57-
--uri "arn:aws:apigateway:{{ _aws_region }}:lambda:path/2015-03-31/functions/arn:aws:lambda:{{ _aws_region }}:{{ _acc_id }}:function:API_{{ item.name }}/invocations"
57+
--uri "arn:aws:apigateway:{{ _aws_region }}:lambda:path/2015-03-31/functions/arn:aws:lambda:{{ _aws_region }}:{{ _acc_id }}:function:api_{{ item.name }}/invocations"
5858
--region {{ _aws_region }}
5959
6060
- name: Add method response.

roles/aws/aws_admin_tools/tasks/lambda_functions.yml

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -12,30 +12,30 @@
1212

1313
- name: Write Lambda functions.
1414
ansible.builtin.template:
15-
src: "API_{{ item.name }}.py.j2"
16-
dest: "/tmp/API_{{ item.name }}.py"
15+
src: "api_{{ item.name }}.py.j2"
16+
dest: "/tmp/api_{{ item.name }}.py"
1717

1818
- name: Create a zip archive of Lambda functions.
1919
community.general.archive:
20-
path: "/tmp/API_{{ item.name }}.py"
21-
dest: "/tmp/API_{{ item.name }}.zip"
20+
path: "/tmp/api_{{ item.name }}.py"
21+
dest: "/tmp/api_{{ item.name }}.zip"
2222
format: zip
2323

2424
- name: Place Lambda functions in S3 bucket.
2525
amazon.aws.s3_object:
2626
bucket: "{{ _aws_profile }}-lambda-api-functions"
2727
object: "lambda-functions/API-{{ item.name }}.zip"
28-
src: "/tmp/API_{{ item.name }}.zip"
28+
src: "/tmp/api_{{ item.name }}.zip"
2929
mode: put
3030

3131
- name: Get appropriate IAM role for Lambda.
3232
amazon.aws.iam_role_info:
33-
name: "API_{{ item.name }}"
33+
name: "api_{{ item.name }}"
3434
register: _iam_api_lambda
3535

3636
- name: Create Lambda functions.
3737
amazon.aws.lambda:
38-
name: "API_{{ item.name }}"
38+
name: "api_{{ item.name }}"
3939
description: "Lambda function for {{ item.name }}"
4040
region: "{{ _aws_region }}"
4141
timeout: "{{ aws_admin_tools.timeout }}"
@@ -44,6 +44,6 @@
4444
state: present
4545
runtime: "{{ aws_admin_tools.runtime }}"
4646
role: "{{ _iam_api_lambda.iam_roles[0].arn }}"
47-
handler: "API_{{ item.name }}.lambda_handler"
47+
handler: "api_{{ item.name }}.lambda_handler"
4848
tags:
49-
Name: "API_{{ item.name }}"
49+
Name: "api_{{ item.name }}"

roles/aws/aws_admin_tools/tasks/lambda_iam.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,8 @@
77
name: aws/aws_iam_role
88
vars:
99
aws_iam_role:
10-
name: "API_{{ item.name }}"
10+
name: "api_{{ item.name }}"
1111
aws_profile: "{{ _aws_profile }}"
1212
managed_policies: "{{ _policies }}"
13+
inline_policies: "{{ item.inline_policies | default(omit) }}"
1314
policy_document: "{{ lookup('template', 'trusted_entitites.j2') }}"

roles/aws/aws_admin_tools/templates/API_ChangeASGScaling.py.j2 renamed to roles/aws/aws_admin_tools/templates/api_change_asg_scaling.py.j2

File renamed without changes.

roles/aws/aws_admin_tools/templates/API_GetForecastedCosts.py.j2 renamed to roles/aws/aws_admin_tools/templates/api_get_forecasted_costs.py.j2

File renamed without changes.
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
import json
2+
import boto3
3+
4+
waf_cli = boto3.client("wafv2")
5+
6+
def lambda_handler(event, context):
7+
8+
print("Gathering instance details.")
9+
ip_set=waf_cli.get_ip_set(
10+
Name=event['ip_set'],
11+
Scope='REGIONAL',
12+
Id=event['id']
13+
)
14+
15+
return {
16+
'statusCode': 200,
17+
'name': ip_set['IPSet']['Name'],
18+
'id': ip_set['IPSet']['Id'],
19+
'addresses': ip_set['IPSet']['Addresses'],
20+
'lock_token': ip_set['LockToken'],
21+
}

roles/aws/aws_admin_tools/templates/API_GetListOfEC2.py.j2 renamed to roles/aws/aws_admin_tools/templates/api_get_list_of_ec2.py.j2

File renamed without changes.
File renamed without changes.

0 commit comments

Comments
 (0)