1
1
#!/usr/bin/env python3
2
2
import argparse
3
- from botocore .exceptions import ClientError
3
+ from botocore .exceptions import ClientError , EndpointConnectionError
4
4
import os
5
5
6
6
# When writing a module, feel free to remove any comments, placeholders, or
@@ -100,13 +100,25 @@ def main(args, pacu_main):
100
100
else :
101
101
print (' ' + code )
102
102
print (' Could not list secrets... Exiting' )
103
- return None
103
+ response = None
104
+ break
105
+ except EndpointConnectionError as error :
106
+ print (' Error connecting to SecretsManager Endpoint for listing secrets for region: {}' .format (region ))
107
+ print (' Error: {}, {}' .format (error .__class__ , str (error )))
108
+ response = None
109
+ break
110
+ except Exception as error :
111
+ print (' Generic Error when Listing SecretsManager for region: {}' .format (region ))
112
+ print (' Error: {}, {}' .format (error .__class__ , str (error )))
113
+ response = None
114
+ break
104
115
105
116
else :
106
117
response = client .list_secrets ()
107
118
108
- for secret in response ['SecretList' ]:
109
- secret_ids .append ({"name" :secret ["Name" ],"region" :region })
119
+ if response :
120
+ for secret in response ['SecretList' ]:
121
+ secret_ids .append ({"name" :secret ["Name" ],"region" :region })
110
122
111
123
all_secrets_ids_sm += secret_ids
112
124
@@ -119,7 +131,7 @@ def main(args, pacu_main):
119
131
while response is None :
120
132
try :
121
133
response = client .get_secret_value (
122
- SecretId = sec ["name" ]
134
+ SecretId = sec ["name" ]
123
135
)
124
136
except ClientError as error :
125
137
code = error .response ['Error' ]['Code' ]
@@ -129,10 +141,22 @@ def main(args, pacu_main):
129
141
else :
130
142
print (' ' + code )
131
143
print (' Could not get secrets value... Exiting' )
132
- return None
133
-
134
- with open ('./sessions/{}/downloads/secrets/secrets_manager/secrets.txt' .format (session .name ),'a' ) as f :
135
- f .write ("{}:{}\n " .format (sec ["name" ], response ["SecretString" ]))
144
+ response = None
145
+ break
146
+ except EndpointConnectionError as error :
147
+ print (' Error connecting to SecretsManager Endpoint for getting secret for region: {}' .format (sec ["region" ]))
148
+ print (' Error: {}, {}' .format (error .__class__ , str (error )))
149
+ response = None
150
+ break
151
+ except Exception as error :
152
+ print (' Generic Error when getting Secret from Secrets Manager for region: {}' .format (sec ["region" ]))
153
+ print (' Error: {}, {}' .format (error .__class__ , str (error )))
154
+ response = None
155
+ break
156
+
157
+ if response :
158
+ with open ('./sessions/{}/downloads/secrets/secrets_manager/secrets.txt' .format (session .name ),'a' ) as f :
159
+ f .write ("{}:{}\n " .format (sec ["name" ], response ["SecretString" ]))
136
160
137
161
138
162
@@ -151,10 +175,22 @@ def main(args, pacu_main):
151
175
else :
152
176
print (' ' + code )
153
177
print (' Could not list parameters... Exiting' )
154
- return None
178
+ response = None
179
+ break
180
+ except EndpointConnectionError as error :
181
+ print (' Error connecting to SSM Endpoint for describing SSM Parameters for region: {}' .format (region ))
182
+ print (' Error: {}, {}' .format (error .__class__ , str (error )))
183
+ response = None
184
+ break
185
+ except Exception as error :
186
+ print (' Generic Error when describing SSM Parameters for region: {}' .format (region ))
187
+ print (' Error: {}, {}' .format (error .__class__ , str (error )))
188
+ response = None
189
+ break
155
190
156
- for param in response ["Parameters" ]:
157
- secrets_ssm .append ({"name" :param ["Name" ],"type" :param ["Type" ],"region" :region })
191
+ if response :
192
+ for param in response ["Parameters" ]:
193
+ secrets_ssm .append ({"name" :param ["Name" ],"type" :param ["Type" ],"region" :region })
158
194
159
195
160
196
all_secrets_ids_ssm += secrets_ssm
@@ -178,7 +214,17 @@ def main(args, pacu_main):
178
214
else :
179
215
print (' ' + code )
180
216
print (' Could not get parameter value... Exiting' )
181
- return None
217
+ response = None
218
+ break
219
+ except EndpointConnectionError as error :
220
+ print (' Error connecting to SSM Endpoint for describing SSM Secure parameter for region: {}' .format (param ["region" ]))
221
+ print (' Error: {}, {}' .format (error .__class__ , str (error )))
222
+ response = None
223
+ except Exception as error :
224
+ print (' Generic Error when describing SSM Secure Parameter for region: {}' .format (param ['region' ]))
225
+ print (' Error: {}, {}' .format (error .__class__ , str (error )))
226
+ response = None
227
+ break
182
228
183
229
else :
184
230
try :
@@ -194,10 +240,22 @@ def main(args, pacu_main):
194
240
else :
195
241
print (' ' + code )
196
242
print (' Could not get parameter value... Exiting' )
197
- return None
243
+ response = None
244
+ break
245
+ except EndpointConnectionError as error :
246
+ print (' Error connecting to SSM Endpoint for describing SSM parameter for region: {}' .format (param ["region" ]))
247
+ print (' Error: {}, {}' .format (error .__class__ , str (error )))
248
+ response = None
249
+ break
250
+ except Exception as error :
251
+ print (' Generic Error when describing SSM Parameter for region: {}' .format (param ['region' ]))
252
+ print (' Error: {}, {}' .format (error .__class__ , str (error )))
253
+ response = None
254
+ break
198
255
199
- with open ('./sessions/{}/downloads/secrets/parameter_store/parameters.txt' .format (session .name ),'a' ) as f :
200
- f .write ("{}:{}\n " .format (param ["name" ], response ["Parameter" ]["Value" ]))
256
+ if response :
257
+ with open ('./sessions/{}/downloads/secrets/parameter_store/parameters.txt' .format (session .name ),'a' ) as f :
258
+ f .write ("{}:{}\n " .format (param ["name" ], response ["Parameter" ]["Value" ]))
201
259
202
260
203
261
summary_data ["SecretsManager" ] = len (all_secrets_ids_sm )
0 commit comments