티스토리 뷰

반응형
import boto3
import json

# IAM 역할을 생성하고 태그를 추가하는 함수
def create_role_and_add_tags(profile_name, role_name, trust_policy, tags):
    # 세션 생성
    session = boto3.Session(profile_name=profile_name)
    iam_client = session.client('iam')
    
    # IAM 역할 생성
    print(f"Creating role {role_name} in profile {profile_name}...")
    response = iam_client.create_role(
        RoleName=role_name,
        AssumeRolePolicyDocument=json.dumps(trust_policy)
    )
    print(f"Role creation response for profile {profile_name}: {response}")
    
    # IAM 역할에 태그 추가
    print(f"Adding tags to role {role_name} in profile {profile_name}...")
    iam_client.tag_role(
        RoleName=role_name,
        Tags=tags
    )
    print(f"Tags added to role {role_name} for profile {profile_name}")

# 각 계정의 자격 증명을 위한 프로파일 리스트
profiles = ['fendys-prod','fendys-dev']  # AWS CLI 프로파일 이름

# 역할 생성에 사용할 신뢰 정책
trust_policy = {
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "ec2.amazonaws.com"
            },
            "Action": "sts:AssumeRole"
        }
    ]
}

# 역할에 추가할 태그 리스트
tags = [
    {'Key': 'fendys.com/ticket', 'Value': 'fendys-12345'}
]

# 각 계정에 대해 IAM 역할 생성 및 태그 추가
for profile in profiles:
    role_name = f'saml-fendys-role'
    create_role_and_add_tags(profile, role_name, trust_policy, tags)
반응형