Skip to content

Commit 0fbd7fe

Browse files
authored
Bugfix for error when checking template containing only role trust policy and no other supported resources (#44)
1 parent 9f88a8e commit 0fbd7fe

File tree

1 file changed

+6
-4
lines changed

1 file changed

+6
-4
lines changed

cfn_policy_validator/validation/policy_analysis.py

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,8 @@
3434
"AWS::IAM::AssumeRolePolicyDocument"
3535
}
3636

37+
ASSUME_ROLE_POLICY_TYPE = "AWS::IAM::AssumeRolePolicyDocument"
38+
3739
def get_identity_resource_name(resource):
3840
if isinstance(resource, PermissionSet):
3941
return resource.Name
@@ -365,12 +367,12 @@ def check_resources(self, resources, roles):
365367
raise ApplicationError(f'Unable to find trust policy for {role.RoleName}')
366368
else:
367369
policy_str = json.dumps(role.TrustPolicy)
368-
if (policy_str, resource.ResourceType) not in self.resource_policy_cache:
370+
if (policy_str, ASSUME_ROLE_POLICY_TYPE) not in self.resource_policy_cache:
369371
LOGGER.info(f'Check trust policy for role {role.RoleName}')
370-
response = self._call_api(role.TrustPolicy, RESOURCE_POLICY_TYPE, "AWS::IAM::AssumeRolePolicyDocument")
372+
response = self._call_api(role.TrustPolicy, RESOURCE_POLICY_TYPE, ASSUME_ROLE_POLICY_TYPE)
371373
LOGGER.info(f'{self.operation_name} response {response}')
372-
self.resource_policy_cache[(policy_str, resource.ResourceType)] = response
374+
self.resource_policy_cache[(policy_str, ASSUME_ROLE_POLICY_TYPE)] = response
373375
else:
374376
LOGGER.info(f'Trust policy for role {role.RoleName} already checked. Skipped.')
375-
response = self.resource_policy_cache.get((policy_str, resource.ResourceType))
377+
response = self.resource_policy_cache.get((policy_str, ASSUME_ROLE_POLICY_TYPE))
376378
self._handle_response(response, role.RoleName, 'TrustPolicy', self.operation_name)

0 commit comments

Comments
 (0)