in migration/bring-your-own-role/byor.py [0:0]
def _copy_inline_policies_arn(source_role, dest_role, iam_client, execute_flag):
paginator = iam_client.get_paginator('list_role_policies')
for page in paginator.paginate(RoleName=source_role['Role']['RoleName']):
for policy_name in page['PolicyNames']:
policy_document = iam_client.get_role_policy(
RoleName=source_role['Role']['RoleName'],
PolicyName=policy_name
)['PolicyDocument']
if execute_flag:
iam_client.put_role_policy(
RoleName=dest_role['Role']['RoleName'],
PolicyName=policy_name,
PolicyDocument=str(policy_document).replace("'", '"')
)
else:
print(f"New inline policy `{policy_name}` would be copied to role `{dest_role['Role']['RoleName']}` is:")
pprint(policy_document)
print(f"Skipping copy new inline policy `{policy_name}` to role `{dest_role['Role']['RoleName']}`, set --execute flag to True to do the actual copy.\n")
if execute_flag:
print(f"Successfully copied inline policies to role: `{dest_role['Role']['RoleName']}`\n")