💡
준비물
AWS-CLI, Python, Boto3환경
AWS-CLI, Python, Boto3환경
시작 전
boto3를 처음 접할 때 보통 자격증명에 AWS Configure를 사용하거나 직관적으로 Access Key를 직접 입력한다.
하지만
AWS CLI에서 SSO를 사용한 접속과 같이 Access Key가 없는 환경에서도 스크립트를 사용하고 싶었다.
AWS CLI에서 SSO로 로그인한 경우 C:\Users\[사용자]\.aws\config
경로에 session profile이 저장되는데, 이 profile을 사용해서 Access Key없이도 boto3를 사용할 수 있다.
기존 자격증명
AWS CLI에서 스크립트를 사용하기 위해 .py
파일에 boto3를 사용한다.
AWS Configure를 사용해서 자격 증명하기
- EC2를 생성하는 간단한 Python 스크립트
test.py
생성import boto3 ec2 = boto3.resource('ec2') ##여기까지 중요하고 이 밑으로는 작동 확인을 위한 코드 instance = ec2.create_instances( ImageId='ami-0f2c95e9fe3f8f80e', MinCount=1, MaxCount=1, InstanceType='t2.micro', ) print(instance[0].id) #생성된 EC2의 id를 확인하는 코드
- 장점 : 간단하다
- 단점 : 적용 계정 변경시 AWS Configure 값을 매번 변경해야한다. (다중 계정 동시작업에 불편)
- EC2를 생성하는 간단한 Python 스크립트
Access Key와 Sercret Key를 입력해서 자격 증명하기
- access_key와 secret_access_key를 입력해서 작동하는
test.py
생성import boto3 access_key ='[Access Key]' secret_access_key = '[Secret Key]' region = 'ap-northeast-2' ec2 = boto3.resource('ec2', aws_access_key_id=access_key, aws_secret_access_key=secret_access_key, region_name=region) instance = ec2.create_instances( ImageId='ami-0f2c95e9fe3f8f80e', MinCount=1, MaxCount=1, InstanceType='t2.micro', ) print(instance[0].id)
python test.py
명령으로 테스트하면 Access_key를 가진 계정에 ec2가 생성된다.
- 장점 : 여러 계정을 바꿔가면서 사용할 때 스크립트만 바꿔주면 된다.
- 단점 : Access Key를 노출해야하거나 (변수파일 생성 후 참조하는 방법이 있을 것이다.), AWS SSO로 로그인한 경우 Access Key를 부여하지 않는다.
- access_key와 secret_access_key를 입력해서 작동하는
Profile로 자격증명
AWS SSO 로그인 및 profile 정보 확인방법 → AWS CLI에서 SSO를 사용한 접속
Profile을 사용해서 자격 증명하기
- SSO 로그인 후 설정한 profile_name 을 넣어서
test.py
작성import boto3 region = 'ap-northeast-2' session = boto3.Session(profile_name='[프로필 이름]') ec2 = session.resource('ec2',region_name=region) instance = ec2.create_instances( ImageId='ami-0f2c95e9fe3f8f80e', MinCount=1, MaxCount=1, InstanceType='t2.micro', ) print(instance[0].id)
- SSO 로그인 후 설정한 profile_name 을 넣어서
Uploaded by Notion2Tistory v1.1.0