agent: |
UGwuhvGGuGfsQJAcbxSHAttach an AWS IAM User to a Group
Attach an AWS IAM User to a Group
There was a problem that the LLM was not able to address. Please rephrase your prompt and try again.
This task manages user permissions in AWS by confirming the existence of both IAM users and groups, ensuring users aren't already in the target group, and then adding them if necessary. This process streamlines user access management and maintains organized, best-practice-based user-group associations in AWS IAM.
inputs
outputs
import boto3
from botocore.exceptions import ClientError
creds = _get_creds(cred_label)['creds']
access_key = creds['username']
secret_key = creds['password']
def add_user_to_group(user_name, group_name):
"""
Adds an IAM user to an IAM group, after checking if both exist and if the user is not already in the group.
:param user_name: The name of the IAM user.
:param group_name: The name of the IAM group.
"""
# Create an IAM client
iam_client = boto3.client('iam',aws_access_key_id=access_key,aws_secret_access_key=secret_key)
try:
# Check if the user exists
iam_client.get_user(UserName=user_name)
except ClientError as error:
if error.response['Error']['Code'] == 'NoSuchEntity':
print(f"The user '{user_name}' does not exist.")
return
else:
raise
try:
# Check if the group exists and if the user is already a member
response = iam_client.get_group(GroupName=group_name)
if any(user['UserName'] == user_name for user in response['Users']):
print(f"User '{user_name}' is already a member of the group '{group_name}'.")
return
except ClientError as error:
if error.response['Error']['Code'] == 'NoSuchEntity':
print(f"The group '{group_name}' does not exist.")
return
else:
raise
try:
# Add user to the group
iam_client.add_user_to_group(
GroupName=group_name,
UserName=user_name
)
print(f"User '{user_name}' has been successfully added to the group '{group_name}'.")
except ClientError as error:
# Handle other possible errors
print(f"Unexpected error: {error}")
except Exception as e:
# Handle any other exception
print(f"An error occurred: {e}")
# Example usage
#username = 'test_user'
#groupname = 'your-group-name'
add_user_to_group(username, groupname)
context.proceed=False
copied