Skip to content

Commit 88ec2c3

Browse files
author
Taniya Mathur
committed
remove duplicate inline python script from deployment validation
1 parent eea3229 commit 88ec2c3

File tree

1 file changed

+0
-82
lines changed

1 file changed

+0
-82
lines changed

.gitlab-ci.yml

Lines changed: 0 additions & 82 deletions
Original file line numberDiff line numberDiff line change
@@ -113,86 +113,4 @@ deployment_validation:
113113
script:
114114
# Check if service role has sufficient permissions for main stack deployment
115115
- python3 scripts/validate_service_role_permissions.py
116-
- |
117-
python3 -c "
118-
import yaml
119-
import sys
120-
import os
121-
import glob
122-
123-
def extract_aws_services_from_template(template_path):
124-
'''Extract AWS services used in a CloudFormation template'''
125-
try:
126-
with open(template_path, 'r') as f:
127-
template = yaml.safe_load(f)
128-
129-
services = set()
130-
if 'Resources' in template:
131-
for resource in template['Resources'].values():
132-
if 'Type' in resource:
133-
resource_type = resource['Type']
134-
if resource_type.startswith('AWS::'):
135-
service = resource_type.split('::')[1].lower()
136-
services.add(service)
137-
return services
138-
except Exception as e:
139-
print(f'Error processing {template_path}: {e}')
140-
return set()
141-
142-
def extract_permissions_from_role(role_template_path):
143-
'''Extract permissions from IAM role template'''
144-
with open(role_template_path, 'r') as f:
145-
role_template = yaml.safe_load(f)
146-
147-
permissions = set()
148-
for resource in role_template['Resources'].values():
149-
if resource['Type'] == 'AWS::IAM::Role':
150-
for policy in resource['Properties']['Policies']:
151-
for statement in policy['PolicyDocument']['Statement']:
152-
if statement['Effect'] == 'Allow':
153-
actions = statement['Action']
154-
if isinstance(actions, str):
155-
permissions.add(actions)
156-
else:
157-
permissions.update(actions)
158-
return permissions
159-
160-
# Extract permissions from service role
161-
role_permissions = extract_permissions_from_role('iam-roles/cloudformation-management/IDP-Cloudformation-Service-Role.yaml')
162-
163-
# Find all CloudFormation templates
164-
template_files = []
165-
template_files.append('template.yaml') # Main template
166-
template_files.extend(glob.glob('patterns/*/template.yaml'))
167-
template_files.extend(glob.glob('options/*/template.yaml'))
168-
169-
# Extract required services from all templates
170-
required_services = set()
171-
for template_file in template_files:
172-
if os.path.exists(template_file):
173-
services = extract_aws_services_from_template(template_file)
174-
required_services.update(services)
175-
print(f'Services in {template_file}: {sorted(services)}')
176-
177-
print(f'\\nAll required services: {sorted(required_services)}')
178-
179-
# Check if role has permissions for each service
180-
missing_services = []
181-
for service in required_services:
182-
# Check if role has wildcard or specific permissions for this service
183-
has_permission = any(
184-
perm == f'{service}:*' or
185-
perm.startswith(f'{service}:') or
186-
perm == '*'
187-
for perm in role_permissions
188-
)
189-
if not has_permission:
190-
missing_services.append(service)
191-
192-
if missing_services:
193-
print(f'\\nWARNING: Service role may be missing permissions for: {sorted(missing_services)}')
194-
sys.exit(1)
195-
else:
196-
print(f'\\nSUCCESS: Service role appears to have sufficient permissions for all required services')
197-
"
198116

0 commit comments

Comments
 (0)