in migration/bring-your-own-role/byor.py [0:0]
def _copy_managed_policies_arn(source_role, dest_role, iam_client, execute_flag):
paginator = iam_client.get_paginator('list_attached_role_policies')
policies_to_attach = []
for page in paginator.paginate(RoleName=source_role['Role']['RoleName']):
for policy in page['AttachedPolicies']:
policies_to_attach.append(policy['PolicyArn'])
_replace_role_arn_in_policies(policies_to_attach, iam_client, source_role['Role']['Arn'], dest_role['Role']['Arn'], execute_flag)
if execute_flag:
for policy_arn in policies_to_attach:
iam_client.attach_role_policy(
RoleName=dest_role['Role']['RoleName'],
PolicyArn=policy_arn
)
print(f"Managed policies attached successfully to role: `{dest_role['Role']['RoleName']}`\n")
else:
print(f"Managed policies to attach to role `{dest_role['Role']['RoleName']}` would be:")
pprint(policies_to_attach)
print(f"Managed policies attach skipped for role: `{dest_role['Role']['RoleName']}`, set --execute flag to True to do the actual update.\n")