Lambda 함수나 프로그래밍 코드를 통해 AWS 서비스를 사용하려면, 먼저 AWS 서비스에 접근할 수 있는 세션(Session)을 설정해야 합니다.
AWS 세션은 기본(Default) 세션으로 사용할 수도 있고, 필요에 따라 사용자가 직접 커스터마이징(Customizing)할 수도 있습니다.
문제 정의: Python의 Boto3 라이브러리를 사용하여 AWS 세션을 생성합니다.
문제 해결 접근 방법
1단계: 인증 자격 증명 설정
AWS 세션을 생성하려면 먼저 인증 자격 증명(Credentials)을 설정해야 합니다. 자격 증명은 IAM 콘솔에서 확인하거나, 자격 증명 파일을 직접 생성할 수도 있습니다. 기본적으로 자격 증명 파일의 위치는 ~/.aws/credentials입니다.
예시:
[default]
aws_access_key_id = YOUR_ACCESS_KEY
aws_secret_access_key = YOUR_SECRET_ACCESS_KEY
aws_session_token = YOUR_SESSION_TOKEN
region = REGION_NAME
2단계: Boto3 설치
다음 명령어를 실행하여 Boto3 라이브러리를 설치합니다.
pip install boto3
3단계: Boto3 라이브러리 임포트
Python 코드에서 Boto3 라이브러리를 임포트합니다.
4단계: 기본 세션 생성
기본 자격 증명으로 세션을 생성하려면 Session()을 파라미터 없이 호출하면 됩니다.
5단계: 커스텀 세션 생성
세션을 커스터마이징하려면 아래 파라미터들을 전달합니다.
- aws_access_key_id (string) — AWS 액세스 키 ID
- aws_secret_access_key (string) — AWS 시크릿 액세스 키
- aws_session_token (string) — AWS 임시 세션 토큰
- region_name (string) — 새 연결 생성 시 사용할 기본 리전
- profile_name (string) — 사용할 프로파일 이름. 지정하지 않으면 기본 프로파일이 사용됩니다.
예제 코드
아래 코드는 기본 자격 증명과 커스텀 자격 증명으로 각각 AWS 세션을 생성하는 방법을 보여줍니다.
import boto3
# 기본 세션 생성:
def create_aws_session():
session = boto3.session.Session()
# 기본 세션을 생성하며, 모든 AWS 서비스에 연결하는 데 사용할 수 있습니다.
return session
print(create_aws_session())
# 커스텀 세션 생성:
def create_customized_session(aws_access_key, aws_secret_key, aws_token,
region_name=None, profile_name=None):
session = boto3.session.Session(aws_access_key_id=aws_access_key,
aws_secret_access_key=aws_secret_key,
aws_session_token=aws_token,
region_name=region_name,
profile_name=profile_name)
# region_name과 profile_name은 선택적 파라미터이며, 기본값은 None입니다.
print(session)
return session
실행 결과
# 자격 증명 파일 또는 호출 파라미터에 region_name이 없거나 None인 경우
Session(region_name=None)
Session(region_name=None)
# 자격 증명 파일 또는 호출 파라미터에 region_name이 지정된 경우
Session(region_name=YOUR_REGION_NAME)
Session(region_name=YOUR_REGION_NAME)
위와 같이 Boto3의 Session 객체를 활용하면 기본 설정 그대로 간편하게 세션을 만들 수도 있고, 액세스 키·리전·프로파일 등을 직접 지정하여 유연하게 구성할 수도 있습니다. 이를 통해 Lambda, EC2, S3 등 다양한 AWS 서비스에 안정적으로 연결할 수 있습니다.