Контекст: У меня есть скрипт Python, который может создавать пользователя, определять программный доступ или нет, выводить список текущих групп для пользователей. Моя проблема , которую я хочу добавить нового пользователя в одну из существующих, показанных групп.
Я попробовал приведенный ниже код, но получил следующую ошибку:
python ec2-play.py
Please enter your e-mail address: 1@1.com
Do you require programmatic access?(y/n): n
Console access only
[...list of Groups...]
1: admin-short-term
2: aws-admin
3: aws-admin-mfa
4: aws-training
Please pick a Group number: 4
You selected option 4: arn:aws:iam::xxxxxxxxxxxx:group/aws-training
Traceback (most recent call last):
File "ec2-play.py", line 41, in <module>
final = grp.add_user_to_group(GroupName=g, UserName=mail)
File "/opt/axe/local/python/local/lib/python2.7/site-packages/botocore/client.py", line 314, in _api_call
return self._make_api_call(operation_name, kwargs)
File "/opt/axe/local/python/local/lib/python2.7/site-packages/botocore/client.py", line 612, in _make_api_call
raise error_class(parsed_response, operation_name)
botocore.errorfactory.NoSuchEntityException: An error occurred (NoSuchEntity) when calling the AddUserToGroup operation: The group with name r cannot be found.
Это код, который выводит эту ошибку:
import boto3
iam = boto3.resource('iam')
iam_keys = boto3.resource('iam')
group_list = boto3.client('iam')
attach_group = boto3.client('iam')
grp = boto3.client("iam")
mail = raw_input("Please enter your e-mail address: ")
response = iam.create_user(UserName=mail)
prog = raw_input("Do you require programmatic access?(y/n): ")
if prog == "y":
iam_keys.create_access_key(UserName=mail)
print("Make sure awscli is installed on your machine")
elif prog == "n":
print("Console access only")
list = group_list.list_groups()
groups = list['Groups']
print(groups)
index = 1
for group in groups:
print("%d: %s" % (index, group["GroupName"]))
index +=1
option = int(input("Please pick a Group number: "))
arn = groups[option-1]["Arn"]
print("You selected option %d: %s" % (option, arn))
var = "%s" % (arn)
var.split(":group/")[1]
g = var[1]
final = grp.add_user_to_group(GroupName=g, UserName=mail)
print("User has been added to Group %s you selected" % (g))
Ожидаемое поведение: Новый пользователь присоединяется к выбранной группе.
Фактическое поведение: Сбой Python, сообщив, что группа r не найдена.