파이썬 (boto3)에서 자격 증명을 전환하는 8 가지 방법
소개
AWS의 각종 리소스를 Python으로 컨트롤 할 때 사용하는 boto3이지만 자격 증명을 전환하는 방법에는 여러 가지가 있으며 우선순위가 혼란스러울 수 있기 때문에 복습을 겸해 조사해 보았습니다. 이제 AWS 환경 전환도 쉽습니다.
boto3의 자격 증명 검색 순서
boto3은 다음 순서로 자격 증명을 검색하고 사용합니다.
boto3은 다음 순서로 자격 증명을 검색하고 사용합니다.
이하, YOUR_ACCESS_KEY, YOUR_SECRET_KEY는 적절하게 자신의 환경의 값으로 읽어내 주세요.
1. boto.client() 메소드의 파라미터로서 건네받은 자격 증명
import boto3
client = boto3.client(
's3',
aws_access_key_id=YOUR_ACCESS_KEY,
aws_secret_access_key=YOUR_SECRET_KEY,
)
boto3.client를 호출할 때 명시적으로 사용하려는 환경의 자격 증명 정보를 전달하는 방법입니다.
실제의 값은 환경 변수 경유로 취득하는 등으로 해, 코드내에 원의 값을 기입하는 것은 회피하는 것이 좋다.
2. Session 객체를 만들 때 매개 변수로 전달된 자격 증명
import boto3
session = boto3.Session(
aws_access_key_id=YOUR_ACCESS_KEY,
aws_secret_access_key=YOUR_SECRET_KEY,
)
1과 마찬가지로 boto3.Session을 만들 때 명시 적으로 사용하려는 환경의 자격 증명을 전달하는 방법입니다.
3. 환경 변수
export AWS_ACCESS_KEY_ID=YOUR_AWS_ACCESS_KEY_ID
export AWS_SECRET_ACCESS_KEY=YOUR_AWS_SECRET_ACCESS_KEY
Python을 실행하는 환경의 환경 변수에 자격 증명 정보를 설정하면 boto3이 참조합니다.
자격 증명 전환이 발생하지 않는 경우에는 간단한 방법이며 사용하는 경우도 많습니다.
4. 공유 자격 증명 파일(~/.aws/credentials)
~/.aws/credentials
[your_profile_name]
aws_access_key_id = YOUR_ACCESS_KEY
aws_secret_access_key = YOUR_SECRET_KEY
import boto3
session = boto3.Session(profile_name='your_profile_name')
client = session.client('s3')
~/.aws/credencials
로 프로파일 별로 aws_access_key_id
, aws_secret_access_key
를 설정한 후 boto3에서는 설정한 프로파일 이름을 지정합니다.awscli로 친숙한 방법으로 설정한 프로파일 정보를 이용할 수 있으므로 시인성이 뛰어나 로컬 개발 환경에서도 자주 이용합니다.
5. AWS config 파일(~/.aws/config)
~/.aws/config
[profile YOUR_PROFILE_NAME]
region = YOUR_REGION
output = TOUR_OUTPUT
aws_access_key_id = YOUR_AWS_ACCESS_KEY_ID
aws_secret_access_key = YOUR_SECRET_KEY
aws configure
명령으로 자격 증명을 설정하면 access_key_id
및 secret_access_key
는 자격 증명 파일에 나열됩니다. 이 내용은 config 파일에 기재하는 것도 가능하기 때문에, region이나 output 정보에 가세해, 상기와 같이 크리덴셜 정보를 기재할 수 있습니다.6. Assume Role provider
~/.aws/config
[profile YOUR_TARGET_PROFILE_NAME]
role_arn = YOUR_TARGRT_ROLE_ARN
source_profile = YOUR_PROFILE_NAME
대상이 되는 AWS 계정의 액세스 키, 시크릿 키를 직접 이용하지 않고, IAM 역할을 통해 조작을 하는 경우는 대상의 AWS 환경에 AssumeRole를 리퀘스트해, 돌려주어진 자격 증명을 이용하는 것으로 조작할 수 있습니다.
~/.aws/config
에 이용하는 롤의 ARN과 원이 되는 프로파일명을 설정하는 것으로 이용 가능합니다.7. Boto2 설정 파일 (/etc/boto.cfg, ~/.boto)
boto2와의 역호환성이 있기 때문에,
Boto_CONFIG
가 설정되어 있으면 BOTO_CONFIG
가 지정하는 파일을 체크해, 그렇지 않으면 /etc/boto.cfg
와 ~/.boto
를 체크합니다.8. IAM 역할이 구성된 Amazon EC2 인스턴스의 인스턴스 메타데이터 서비스
Amazon EC2에는 IAM 역할을 할당할 수 있기 때문에 EC2에서 실행 중이며 위의 항목 중 하나가 설정되지 않은 경우 인스턴스 메타데이터 서비스에서 자격 증명을 로드합니다.
이 기능을 사용하려면 EC2 인스턴스를 만들 때 사용할 IAM 역할을 지정해야 합니다.
참고문헌
이 기사는 다음 정보를 참고로 작성했습니다.
Reference
이 문제에 관하여(파이썬 (boto3)에서 자격 증명을 전환하는 8 가지 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/hmdsg/items/1c7a750a5549807921c5텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)