티스토리 뷰

반응형
import boto3
import json

# 프로파일 이름과 관련된 정보를 리스트로 관리
profiles = ['fendys-prodn','fendys-dev']

# IAM 정책 문서 정의
policy_document = {
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ec2:*"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
             "network-firewall:*"
            ],
            "Resource": "*"
        }
    ]
}

# IAM 정책 생성 함수
def create_policy(profile, policy_name, policy_doc):
    session = boto3.Session(profile_name=profile)
    iam = session.client('iam')
    try:
        response = iam.create_policy(
            PolicyName=policy_name,
            PolicyDocument=json.dumps(policy_doc)
        )
        print(f"Policy Created in {profile}: {response['Policy']['Arn']}")
        return response
    except Exception as e:
        print(f"Error creating policy in {profile}: {str(e)}")

# 각 프로파일에 대해 정책 생성 실행
for profile in profiles:
    policy_name = f"fendys_policy"
    create_policy(profile, policy_name, policy_document)
반응형