cloud-governance 1.1.379__py3-none-any.whl → 1.1.381__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- cloud_governance/common/clouds/aws/iam/iam_operations.py +6 -3
- cloud_governance/main/environment_variables.py +1 -0
- cloud_governance/policy/aws/unused_access_key.py +1 -4
- {cloud_governance-1.1.379.dist-info → cloud_governance-1.1.381.dist-info}/METADATA +1 -1
- {cloud_governance-1.1.379.dist-info → cloud_governance-1.1.381.dist-info}/RECORD +8 -8
- {cloud_governance-1.1.379.dist-info → cloud_governance-1.1.381.dist-info}/WHEEL +0 -0
- {cloud_governance-1.1.379.dist-info → cloud_governance-1.1.381.dist-info}/licenses/LICENSE +0 -0
- {cloud_governance-1.1.379.dist-info → cloud_governance-1.1.381.dist-info}/top_level.txt +0 -0
|
@@ -222,11 +222,14 @@ class IAMOperations:
|
|
|
222
222
|
if last_used_date:
|
|
223
223
|
last_used_days = (now - last_used_date).days
|
|
224
224
|
else:
|
|
225
|
-
|
|
225
|
+
# when no last used date is available, get the age of the key
|
|
226
|
+
last_used_days = age_days
|
|
226
227
|
except Exception:
|
|
227
|
-
|
|
228
|
+
# Set None in case of error to avoid deletion, not "N/A" because it will take age time
|
|
229
|
+
logger.error(f"Failed to get last used date for access key")
|
|
230
|
+
last_used_days = None
|
|
228
231
|
|
|
229
|
-
result[username][label] = {'label': label, 'status': status, 'age_days': age_days, 'last_activity_days': last_used_days
|
|
232
|
+
result[username][label] = {'label': label, 'status': status, 'age_days': age_days, 'last_activity_days': last_used_days}
|
|
230
233
|
|
|
231
234
|
# Tags as list of dicts
|
|
232
235
|
try:
|
|
@@ -185,6 +185,7 @@ class EnvironmentVariables:
|
|
|
185
185
|
self._environment_variables_dict['RESOURCE_TO_TAG'] = EnvironmentVariables.get_env('RESOURCE_TO_TAG', '')
|
|
186
186
|
|
|
187
187
|
# Common env vars
|
|
188
|
+
# when dry_run='no', choose FORCE_DELETE=True and update self._resource_id in abstract_policy_operations.py
|
|
188
189
|
self._environment_variables_dict['dry_run'] = EnvironmentVariables.get_env('dry_run', 'yes')
|
|
189
190
|
self._environment_variables_dict['FORCE_DELETE'] = EnvironmentVariables.get_boolean_from_environment(
|
|
190
191
|
'FORCE_DELETE', False)
|
|
@@ -21,15 +21,12 @@ class UnusedAccessKey(AWSPolicyOperations):
|
|
|
21
21
|
if 'access key' in access_key_label.lower():
|
|
22
22
|
last_activity_days = access_key_data['last_activity_days']
|
|
23
23
|
age_days = access_key_data['age_days']
|
|
24
|
-
# if access key last_activity_days is "N/A", use age_days
|
|
25
|
-
if last_activity_days == "N/A":
|
|
26
|
-
last_activity_days = age_days
|
|
27
24
|
region = user_data['region']
|
|
28
25
|
user_name = username
|
|
29
26
|
tags = user_data.get('Tags', [])
|
|
30
27
|
cleanup_result = False
|
|
31
28
|
cleanup_days = 0
|
|
32
|
-
if int(last_activity_days) >= UNUSED_ACCESS_KEY_DAYS and self._has_active_access_keys(user_name, access_key_label) and self.get_skip_policy_value(tags=tags) not in ('NOTDELETE', 'SKIP'):
|
|
29
|
+
if last_activity_days and int(last_activity_days) >= UNUSED_ACCESS_KEY_DAYS and self._has_active_access_keys(user_name, access_key_label) and self.get_skip_policy_value(tags=tags) not in ('NOTDELETE', 'SKIP'):
|
|
33
30
|
cleanup_days = self.get_clean_up_days_count(tags=tags)
|
|
34
31
|
cleanup_result = self.verify_and_delete_resource(resource_id=user_name, tags=tags,
|
|
35
32
|
clean_up_days=cleanup_days, access_key_label=access_key_label)
|
|
@@ -51,7 +51,7 @@ cloud_governance/common/clouds/aws/dynamodb/dynamodb_operations.py,sha256=eeV3Yg
|
|
|
51
51
|
cloud_governance/common/clouds/aws/ec2/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
52
52
|
cloud_governance/common/clouds/aws/ec2/ec2_operations.py,sha256=0ibMvf7nqyK9MCRhxrg11xnOPELqsZIQsZUgd6_neKc,24680
|
|
53
53
|
cloud_governance/common/clouds/aws/iam/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
54
|
-
cloud_governance/common/clouds/aws/iam/iam_operations.py,sha256=
|
|
54
|
+
cloud_governance/common/clouds/aws/iam/iam_operations.py,sha256=cQWh1iJdlQCGVcZcQF6aDt8fQrKnv6n-361xALNQ7QQ,11732
|
|
55
55
|
cloud_governance/common/clouds/aws/price/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
56
56
|
cloud_governance/common/clouds/aws/price/price.py,sha256=Ju76WniNTVujQPi6QFRgLt6Jd8gsxL2FOnN7c1et5F0,6403
|
|
57
57
|
cloud_governance/common/clouds/aws/price/resources_pricing.py,sha256=k-hucUvxpZfF126wLQQwJt3BzNQiOoSU1x6gjIQ_4cM,6253
|
|
@@ -143,7 +143,7 @@ cloud_governance/common/utils/configs.py,sha256=shFxWt0Kc-GwzcZKYCkHm058ujwdTxn4
|
|
|
143
143
|
cloud_governance/common/utils/json_datetime_encoder.py,sha256=_-jzRTe0UqAKTn2E9qaU8SYIxHUoRA5ElWuVA0Y54Xw,338
|
|
144
144
|
cloud_governance/common/utils/utils.py,sha256=ZUsi4ax2XhDIV-EQ5kJt5Ppd72kmm2psqcg1cNDZrvc,4349
|
|
145
145
|
cloud_governance/main/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
146
|
-
cloud_governance/main/environment_variables.py,sha256=
|
|
146
|
+
cloud_governance/main/environment_variables.py,sha256=8OdeTmZNnjCJtXVKjQnqVR4_fnVCRxxW4mZ4Oirq09M,29564
|
|
147
147
|
cloud_governance/main/environment_variables_exceptions.py,sha256=UR0Ith0P0oshsDZdJRlRq8ZUTt0h8jFvUtrnP4m4AIY,437
|
|
148
148
|
cloud_governance/main/es_uploader.py,sha256=6Ify5CS2NtUF1xXZ-rMwpYxVzDKfEZhv2vogWFltt98,10656
|
|
149
149
|
cloud_governance/main/main.py,sha256=4TBiCBO_1z8KpGXb8brPKBmv3jHBl8fl_-Sb80ctYno,18880
|
|
@@ -166,7 +166,7 @@ cloud_governance/policy/aws/optimize_resources_report.py,sha256=zG7w8KHF7Z25jxYG
|
|
|
166
166
|
cloud_governance/policy/aws/s3_inactive.py,sha256=NXUUGtJhpqohaWYczSebw-q0Q7RKg3XMMj_h7xfGhQ0,2839
|
|
167
167
|
cloud_governance/policy/aws/skipped_resources.py,sha256=D0kbt9dg6Bkl5PgGaqimWvLct6D-JOnerzJ0FkWzGFc,5679
|
|
168
168
|
cloud_governance/policy/aws/spot_savings_analysis.py,sha256=lGG5qtz8pr7xjLo5BrtVSHGTz928MLwYPbSCaDfpTes,5513
|
|
169
|
-
cloud_governance/policy/aws/unused_access_key.py,sha256=
|
|
169
|
+
cloud_governance/policy/aws/unused_access_key.py,sha256=T4XwZT9b4IjTuV9JgCGvBPgMHbyu9tr-W9XI7d-emSE,3381
|
|
170
170
|
cloud_governance/policy/aws/zombie_cluster_resource.py,sha256=Qkd5_Sh74cixaL7yiQgU1OvoEIfGmeKSECb5tNAnQ7I,59675
|
|
171
171
|
cloud_governance/policy/aws/zombie_snapshots.py,sha256=V48cq4GCG2z-MRwUSE4b5wQcGeI_T1Ah99SiHlTwkvY,3834
|
|
172
172
|
cloud_governance/policy/aws/cleanup/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -264,8 +264,8 @@ cloud_governance/policy/policy_runners/elasticsearch/__init__.py,sha256=47DEQpj8
|
|
|
264
264
|
cloud_governance/policy/policy_runners/elasticsearch/upload_elastic_search.py,sha256=pOwUJWXjJbyTy8iv3Ap8xJGnqQe-5lZgoR8-vGfAVos,1881
|
|
265
265
|
cloud_governance/policy/policy_runners/ibm/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
266
266
|
cloud_governance/policy/policy_runners/ibm/policy_runner.py,sha256=V0E_f7F3hXit0aSq4BlfX1Jd4vjR2NEvOWsJ5upvZ4o,1302
|
|
267
|
-
cloud_governance-1.1.
|
|
268
|
-
cloud_governance-1.1.
|
|
269
|
-
cloud_governance-1.1.
|
|
270
|
-
cloud_governance-1.1.
|
|
271
|
-
cloud_governance-1.1.
|
|
267
|
+
cloud_governance-1.1.381.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
|
|
268
|
+
cloud_governance-1.1.381.dist-info/METADATA,sha256=OXwXhY7LJ5wTFMQi5HwapZIK1FHkuaP9T1w1NuDKPi0,11384
|
|
269
|
+
cloud_governance-1.1.381.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
270
|
+
cloud_governance-1.1.381.dist-info/top_level.txt,sha256=jfB1fgj7jvx3YZkZA4G6hFeS1RHO7J7XtnbjuMNMRww,17
|
|
271
|
+
cloud_governance-1.1.381.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|