コード例 #1
0
    def iam_delete_role(self, rolename):
        try:
            # response = setup_cli_iam(self.profile_name).get_instance_profile(
            #     InstanceProfileName=rolename
            # )
            setup_cli_iam(self.profile_name).delete_instance_profile(
                InstanceProfileName=rolename)
            setup_cli_iam(self.profile_name).delete_role(RoleName=rolename)
            print(f"Role '{rolename}' Deleted")

        except botocore.errorfactory.NoSuchEntityException:
            print()
コード例 #2
0
    def iam_delete_user(self, username):
        try:
            group_count = IamModify.list_group_for_user(self, username)

            if group_count == 0:
                try:
                    response = setup_cli_iam(
                        self.profile_name).get_login_profile(UserName=username)
                    setup_cli_iam(self.profile_name).delete_login_profile(
                        UserName=username)
                except Exception as e:
                    pass
                try:
                    response1 = setup_cli_iam().list_attached_user_policies(
                        UserName=username, )
                    if len(response1['AttachedPolicies']) == 0:
                        setup_cli_iam(
                            self.profile_name).delete_user(UserName=username)
                        print(f"User '{username}' Deleted")
                    else:
                        for policy in response1['AttachedPolicies']:
                            IamModify.iam_detech_policy_from_user(
                                self, username, policy['PolicyArn'])

                        setup_cli_iam(
                            self.profile_name).delete_user(UserName=username)
                        print(f"User '{username}' Deleted")
                except Exception as e:
                    print(e)
            else:
                print(
                    "User is attached to above group/s, please remove user from above group before deleting this user."
                )
        except Exception as e:
            print(e)
コード例 #3
0
 def remove_user_from_group(self, groupname, username):
     try:
         response = setup_cli_iam(self.profile_name).remove_user_from_group(
             GroupName=groupname, UserName=username)
         print("User Successfully removed from the group.")
     except Exception as e:
         print(e)
コード例 #4
0
 def user_login_profile(self, username):
     password = IamProvision(self.profile_name).create_random_password()
     response = setup_cli_iam(self.profile_name).create_login_profile(
         UserName=username,
         Password = password,
         PasswordResetRequired=True
     )
     print(f"Username: '******' with password : {password} is created.")
コード例 #5
0
 def iam_detech_policy_from_group(self, groupname, policyarn):
     try:
         response = setup_cli_iam(self.profile_name).detach_group_policy(
             GroupName=groupname, PolicyArn=policyarn)
         print("Policy detech from group")
     except Exception as e:
         print(e)
         print("!!!! Enter Correct inputs.")
コード例 #6
0
 def iam_detech_policy_from_user(self, username, policyarn):
     try:
         response = setup_cli_iam(self.profile_name).detach_user_policy(
             UserName=username, PolicyArn=policyarn)
         print("Policy detech from user")
     except Exception as e:
         print(e)
         print("!!!! Enter Correct inputs.")
コード例 #7
0
    def list_group_for_user(self, username):
        response = setup_cli_iam(self.profile_name).list_groups_for_user(
            UserName=username, )
        group_count = len(response['Groups'])
        for group in response['Groups']:
            print(group['GroupName'])

        return group_count
コード例 #8
0
 def add_user_to_group(self,groupname, username):
     try:
         output = setup_cli_iam(self.profile_name).add_user_to_group(
             GroupName=groupname,
             UserName=username
         )
         print("User added to the Group")
     except Exception as e:
         print(e)
コード例 #9
0
 def all_groups_user_dict(self):
     paginator = setup_cli_iam(
         self.profile_name).get_paginator('list_groups')
     response_iterator = paginator.paginate()
     for each_page in response_iterator:
         for each_group in each_page['Groups']:
             group_name = each_group['GroupName']
             IamInventory(self.profile_name).list_iam_group(group_name)
     return IamInventory(self.profile_name).user_group
コード例 #10
0
 def list_iam_group(self, group_name):
     message_output = setup_cli_iam(self.profile_name).get_group(
         GroupName=group_name, )
     count = 1
     for each_user in message_output['Users']:
         IamInventory(self.profile_name).user_group[
             each_user['UserName']] = group_name
         count += 1
     return IamInventory(self.profile_name).user_group
コード例 #11
0
 def add_policy_to_user(self,username,policyarn):
     try:
         output = setup_cli_iam(self.profile_name).attach_user_policy(
                 UserName=username,
                 PolicyArn=policyarn
         )
         print("Policy added to the User")
     except Exception as e:
         print(e)
コード例 #12
0
 def attach_policy_to_group(self, groupname, policy_arn):
     try:
         message_output = setup_cli_iam(self.profile_name).attach_group_policy(
             GroupName=groupname,
             PolicyArn=policy_arn
         )
         print(f"Policy attached to {groupname}.....")
     except Exception as e:
         print(e)
コード例 #13
0
 def list_iam_groups(self):
     paginator = setup_cli_iam(
         self.profile_name).get_paginator('list_groups')
     response_iterator = paginator.paginate()
     count = 1
     print("\nGroup information is as follows:\n")
     for each_page in response_iterator:
         for each_group in each_page['Groups']:
             print(f"{count}. {each_group['GroupName']}")
             count += 1
コード例 #14
0
 def create_group(self, groupname):
     try:
         message_output = setup_cli_iam(self.profile_name).create_group(
             #Path='string',
             GroupName=groupname
         )
         output = f"Group '{message_output['Group']['GroupName']}' created"
     except Exception as e:
         print(e)
     return output
コード例 #15
0
 def list_group_policies(self, groupname):
     response = setup_cli_iam(
         self.profile_name).list_attached_group_policies(
             GroupName=groupname, )
     policy_count = len(response['AttachedPolicies'])
     if policy_count > 0:
         policy_list = []
         for arn in response['AttachedPolicies']:
             policy_list.append(arn['PolicyArn'])
         return policy_list
     else:
         return policy_count
コード例 #16
0
    def iam_delete_group(self, groupname):
        try:
            response1 = setup_cli_iam(self.profile_name).get_group(
                GroupName=groupname, )
            if len(response1['Users']) == 0:
                x = iam_list.IamInventory.list_group_policies(self, groupname)
                if x == 0:
                    response2 = setup_cli_iam(
                        self.profile_name).delete_group(GroupName=groupname)
                else:
                    for policyarn in x:
                        IamModify.iam_detech_policy_from_group(
                            self, groupname, policyarn)

                    response3 = setup_cli_iam(
                        self.profile_name).delete_group(GroupName=groupname)
                    print(f"Group '{groupname}' Deleted")
            else:
                print("Removed attached user before deleting the group")

        except Exception as e:
            print(e)
コード例 #17
0
    def list_iam_users(self):
        paginator = setup_cli_iam(
            self.profile_name).get_paginator('list_users')
        message_output = paginator.paginate()
        user_group = IamInventory(self.profile_name).all_groups_user_dict()
        count = 1
        print("\nUser information is as follows:\n")
        for each_page in message_output:
            for each_user in each_page['Users']:

                print(
                    f"{count}. UserName : {each_user['UserName']}, UserId : {each_user['UserId']}, "
                    f"Group Name: {user_group.get(each_user['UserName'])}, "
                    f"CreationDate : {each_user['CreateDate'].strftime('%d-%b-%Y')}, "
                )

                count += 1
コード例 #18
0
 def list_all_roles(self):
     try:
         paginator = setup_cli_iam(
             self.profile_name).get_paginator('list_roles')
         response_iterator = paginator.paginate()
         print(
             "Requested Roles information is as follows:\nRole Name, Role Id, Role Arn\n"
         )
         count = 1
         for page in response_iterator:
             for role in page["Roles"]:
                 print(
                     f"{count}. {role['RoleName']}, {role['RoleId']}, {role['Arn']}"
                 )
                 count += 1
     except Exception as e:
         print(e)
コード例 #19
0
 def create_user(self, username):
     try:
         message_output = setup_cli_iam(self.profile_name).create_user(
             UserName=username,
             #PermissionsBoundary='string',
             # Tags=[
             #     {
             #         'Key': 'string',
             #         'Value': 'string'
             #     },
             #]
         )
         output = f"User/User Id : {message_output['User']['UserName']}/{message_output['User']['UserId']} Created."
     except Exception as e:
         print(e)
     #print(output)
     return username
コード例 #20
0
 def list_all_policies(self, pattern_to_filter="all"):
     try:
         paginator = setup_cli_iam(
             self.profile_name).get_paginator('list_policies')
         response_iterator = paginator.paginate()
         count = 1
         filter = pattern_to_filter.lower()
         print("\nUser Policy information is as follows:\n")
         for each_policy in response_iterator:
             for policy in each_policy['Policies']:
                 if pattern_to_filter != "all":
                     x = re.search(filter, policy['PolicyName'].lower())
                     if x is not None:
                         print(
                             f"{count}. {policy['PolicyName']} | {policy['Arn']}"
                         )
                         count += 1
                 else:
                     print(
                         f"{count}. {policy['PolicyName']} | {policy['Arn']}"
                     )
                     count += 1
     except Exception as e:
         print(e)