Skip to content
This repository was archived by the owner on Jun 4, 2021. It is now read-only.

Commit bdae0aa

Browse files
committed
Add a hack to make AWS Roles usable
Enable using a manually-generated session token for AWS Roles. A better solution would be to use https://docs.ansible.com/ansible/latest/modules/sts_assume_role_module.html, but I'm not sure how to add the conditional logic required to add that to the Streisand setup workflow.
1 parent 8f06cad commit bdae0aa

File tree

3 files changed

+24
-0
lines changed

3 files changed

+24
-0
lines changed

playbooks/amazon.yml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,16 @@
9191
prompt: "\nWhat is your AWS Secret Access Key?\n"
9292
private: no
9393

94+
- name: "aws_session_token"
95+
prompt: |
96+
If you use AWS Roles, see https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-role.html
97+
then get a session token by running 'aws sts get-caller-identity --profile <profile>' and finding
98+
it in ~/.aws/cli/cache/*.json.
99+
100+
What is your AWS Session Token? Press enter for default (no token).
101+
default: ""
102+
private: no
103+
94104
- name: "confirmation"
95105
prompt: "\nStreisand will now set up your server. This process usually takes around ten minutes. Press Enter to begin setup...\n"
96106

playbooks/roles/ec2-security-group/tasks/main.yml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
vpc_id: "{{ aws_vpc_id | default(omit) }}"
88
aws_access_key: "{{ aws_access_key }}"
99
aws_secret_key: "{{ aws_secret_key }}"
10+
security_token: "{{ aws_session_token }}"
1011

1112
- name: Pause for fifteen seconds to ensure the EC2 security group has been created
1213
pause:
@@ -20,6 +21,7 @@
2021
vpc_id: "{{ aws_vpc_id | default(omit) }}"
2122
aws_access_key: "{{ aws_access_key }}"
2223
aws_secret_key: "{{ aws_secret_key }}"
24+
security_token: "{{ aws_session_token }}"
2325
rules:
2426
# Nginx
2527
# ---
@@ -55,6 +57,7 @@
5557
vpc_id: "{{ aws_vpc_id | default(omit) }}"
5658
aws_access_key: "{{ aws_access_key }}"
5759
aws_secret_key: "{{ aws_secret_key }}"
60+
security_token: "{{ aws_session_token }}"
5861
purge_rules: no
5962
purge_rules_egress: no
6063
rules:
@@ -82,6 +85,7 @@
8285
vpc_id: "{{ aws_vpc_id | default(omit) }}"
8386
aws_access_key: "{{ aws_access_key }}"
8487
aws_secret_key: "{{ aws_secret_key }}"
88+
security_token: "{{ aws_session_token }}"
8589
purge_rules: no
8690
purge_rules_egress: no
8791
rules:
@@ -109,6 +113,7 @@
109113
vpc_id: "{{ aws_vpc_id | default(omit) }}"
110114
aws_access_key: "{{ aws_access_key }}"
111115
aws_secret_key: "{{ aws_secret_key }}"
116+
security_token: "{{ aws_session_token }}"
112117
purge_rules: no
113118
purge_rules_egress: no
114119
rules:
@@ -130,6 +135,7 @@
130135
vpc_id: "{{ aws_vpc_id | default(omit) }}"
131136
aws_access_key: "{{ aws_access_key }}"
132137
aws_secret_key: "{{ aws_secret_key }}"
138+
security_token: "{{ aws_session_token }}"
133139
purge_rules: no
134140
purge_rules_egress: no
135141
rules:
@@ -157,6 +163,7 @@
157163
vpc_id: "{{ aws_vpc_id | default(omit) }}"
158164
aws_access_key: "{{ aws_access_key }}"
159165
aws_secret_key: "{{ aws_secret_key }}"
166+
security_token: "{{ aws_session_token }}"
160167
purge_rules: no
161168
purge_rules_egress: no
162169
rules:
@@ -184,6 +191,7 @@
184191
vpc_id: "{{ aws_vpc_id | default(omit) }}"
185192
aws_access_key: "{{ aws_access_key }}"
186193
aws_secret_key: "{{ aws_secret_key }}"
194+
security_token: "{{ aws_session_token }}"
187195
purge_rules: no
188196
purge_rules_egress: no
189197
rules:

playbooks/roles/genesis-amazon/tasks/main.yml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
state: absent
1414
aws_access_key: "{{ aws_access_key }}"
1515
aws_secret_key: "{{ aws_secret_key }}"
16+
security_token: "{{ aws_session_token }}"
1617
region: "{{ aws_region }}"
1718
wait: yes
1819

@@ -22,13 +23,15 @@
2223
key_material: "{{ ssh_key.stdout }}"
2324
aws_access_key: "{{ aws_access_key }}"
2425
aws_secret_key: "{{ aws_secret_key }}"
26+
security_token: "{{ aws_session_token }}"
2527
region: "{{ aws_region }}"
2628
wait: yes
2729

2830
- name: Determine which AMI to use
2931
ec2_ami_facts:
3032
aws_access_key: "{{ aws_access_key }}"
3133
aws_secret_key: "{{ aws_secret_key }}"
34+
security_token: "{{ aws_session_token }}"
3235
owners: "{{ aws_ami_owner }}"
3336
region: "{{ aws_region }}"
3437
filters:
@@ -39,6 +42,7 @@
3942
ec2:
4043
aws_access_key: "{{ aws_access_key }}"
4144
aws_secret_key: "{{ aws_secret_key }}"
45+
security_token: "{{ aws_session_token }}"
4246
instance_type: "{{ aws_instance_type }}"
4347
image: "{{ ami.images|sort(reverse=True,attribute='name')|map(attribute='image_id')|first }}"
4448
region: "{{ aws_region }}"
@@ -58,6 +62,7 @@
5862
state: present
5963
aws_access_key: "{{ aws_access_key }}"
6064
aws_secret_key: "{{ aws_secret_key }}"
65+
security_token: "{{ aws_session_token }}"
6166
region: "{{ aws_region }}"
6267
namespace: "AWS/EC2"
6368
metric: StatusCheckFailed_System
@@ -83,6 +88,7 @@
8388
ec2_eip:
8489
aws_access_key: "{{ aws_access_key }}"
8590
aws_secret_key: "{{ aws_secret_key }}"
91+
security_token: "{{ aws_session_token }}"
8692
region: "{{ aws_region }}"
8793
device_id: "{{ streisand_server.instances[0].id }}"
8894
in_vpc: "{{ aws_vpc_id is defined and aws_vpc_id != '' }}"

0 commit comments

Comments
 (0)