Por: @jonasc
Publicado em: 2021-02-03
Integração com AWS IAM SDK para criação de usuários e chaves automaticamente
Requisitos
Necessário uma conta de acesso às APIs da AWS e a ferramenta awscli configurada no servidor que executar o código.
Instalação
Instalando AWS CLI:
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install
Instalando lib do python para integração com SDK AWS:
pip install boto3
Configuração
Configurando AWS CLI:
jonasc@jonasc:~$ aws configure
AWS Access Key ID [None]: AKIALALALALALA5ZG
AWS Secret Access Key [None]: V18xhNqJjVlalalalalalalalalalalO+ExoT/r
Default region name [None]: sa-east-1
Default output format [None]: json
Exemplo de uso
Código completo:
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
from sys import argv
import boto3
def get_sd_client_list():
client_list = ['testeX']
return client_list
def aws_create_users(client_list):
iam = boto3.client('iam')
user_list = []
print('################# criando usuários ############')
for client in client_list:
username='itflex-client-backup-'+client
try:
response = iam.create_user(
UserName=username
)
print(response)
except:
pass
print()
user_list.append(username)
return user_list
def aws_adduser_togroup(user_list):
iam = boto3.resource('iam')
group = iam.Group('itflex-client-backup')
print('################# adicionando usuários ao grupo ############')
for username in user_list:
response = group.add_user(
UserName=username
)
print(response)
return
def aws_create_access_key(user_list):
iam = boto3.client('iam')
print('################# Criando access keys ############')
for username in user_list:
response = iam.create_access_key(
UserName=username
)
print(response)
return
def aws_list_access_key(user_list):
iam = boto3.client('iam')
paginator = iam.get_paginator('list_access_keys')
print('################# Listando access keys ############')
for username in user_list:
for response in paginator.paginate(UserName=username):
print(response)
return
def aws_update_access_key_status():
return
def update_sd_client_access_key():
return
def aws_list_users():
iam = boto3.client('iam')
paginator = iam.get_paginator('list_users')
user_list = paginator.paginate()
return user_list
def main():
help = """
Uso: {0} <-op1|-op2> [op3]
Parâmetros:
-op1 Lalalala
Exemplos:
Lalala:
{0} -op1 op3
"""
if len(argv) < 1 or argv[1] == "-h":
print(help.format(argv[0]))
exit(1)
elif argv[1] == "-op1":
clients = get_sd_client_list()
aws_users = aws_create_users(clients)
aws_adduser_togroup(aws_users)
aws_list_access_key(aws_users)
aws_create_access_key(aws_users)
#user_list = aws_list_users()
#for user in user_list:
# print(user)
# print
exit(0)
else:
print(help.format(argv[0]))
exit(1)
if __name__ == '__main__':
main()