Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python에서 Boto3 라이브러리로 AWS 세션 생성하는 방법

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 서비스에 안정적으로 연결할 수 있습니다.