LoginSignup
0
4

More than 5 years have passed since last update.

AWS IAMユーザーの追加(Python版)

Last updated at Posted at 2019-03-11

はじめに

AWSのユーザーIDを部署全員分作成する必要があり
コンソールからの手作業だと時間が掛かるためPython(boto3)による
自動作成プログラムを作成。

職業プログラマではないため、コードの記述が酷いのは容赦していただきたい。


やりたいこと

  • ExcelファイルからユーザーIDを読み込む
  • 乱数によるパスワードを生成して別ExcelファイルにユーザーID/パスワードを書き込み
  • boto3によりIAMユーザーの作成、グループのアタッチ

読み込むExcelファイルイメージ

WS000000.JPG

書き込み後

WS000001.JPG


qiita.py
import boto3
import xlrd
import xlwt
import string
import random


def password_generator(size=8, chars=string.ascii_letters + string.digits):
    return ''.join(random.choice(chars) for i in range(size))


def main():
    wbr = xlrd.open_workbook('aws_create_user.xls')
    book = xlwt.Workbook()
    newSheet_1 = book.add_sheet('Users') 
    read_sheet = wbr.sheet_by_name('User')

    for i in range(read_sheet.nrows):
        cell = read_sheet.cell(i, 0)

        if cell: 
            password = password_generator()
            newSheet_1.write(i, 0, cell.value)
            newSheet_1.write(i, 1, password) 
            Create_User(cell.value, password)

    book.save('AWS_User_Account.xls')


def Create_User(User, password):
    Group = 'admin'
    client = boto3.client('iam')

    client.create_user(
            Path = '/',
            UserName = User
            )

    client.add_user_to_group(
            GroupName = Group,
            UserName = User
            )

    iam = boto3.resource('iam')    
    login_profile = iam.LoginProfile(User)

    login_profile.create(
            Password = password,
            PasswordResetRequired = True
            )

if __name__ == '__main__':
    main()

今後、追加する(したい)機能

  • Google App Scriptで各ユーザーアカウント(メールアドレス)宛てにパスワードを通知
0
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
4