Nice programing

boto3 S3에 연결할 때 자격 증명을 지정하는 방법은 무엇입니까?

nicepro 2020. 12. 7. 20:39
반응형

boto3 S3에 연결할 때 자격 증명을 지정하는 방법은 무엇입니까?


boto에서 다음과 같은 방법으로 S3에 연결할 때 자격 증명을 지정했습니다.

import boto
from boto.s3.connection import Key, S3Connection
S3 = S3Connection( settings.AWS_SERVER_PUBLIC_KEY, settings.AWS_SERVER_SECRET_KEY )

그런 다음 S3를 사용하여 작업을 수행 할 수 있습니다 (제 경우에는 버킷에서 객체 삭제).

boto3에서 내가 찾은 모든 예는 다음과 같습니다.

import boto3
S3 = boto3.resource( 's3' )
S3.Object( bucket_name, key_name ).delete()

내 자격 증명을 지정할 수 없으므로 모든 시도가 오류와 함께 실패 InvalidAccessKeyId합니다.

boto3로 자격 증명을 어떻게 지정할 수 있습니까?


세션을 만들 수 있습니다 .

import boto3
session = boto3.Session(
    aws_access_key_id=settings.AWS_SERVER_PUBLIC_KEY,
    aws_secret_access_key=settings.AWS_SERVER_SECRET_KEY,
)

그런 다음 해당 세션을 사용하여 S3 리소스를 가져옵니다.

s3 = session.resource('s3')

client아래와 같이 새로운 세션으로 바로 받을 수 있습니다 .

 s3_client = boto3.client('s3', 
                      aws_access_key_id=settings.AWS_SERVER_PUBLIC_KEY, 
                      aws_secret_access_key=settings.AWS_SERVER_SECRET_KEY, 
                      region_name=REGION_NAME
                      )

boto3.resource ()를 사용하는 동안 자격 증명을 저장하는 방법에는 여러 가지가 있습니다. 저는 AWS CLI 메서드를 직접 사용하고 있습니다. 완벽하게 작동합니다.

https://boto3.amazonaws.com/v1/documentation/api/latest/guide/configuration.html?fbclid=IwAR2LlrS4O2gYH6xAF4QDVIH2Q2tzfF_VZ6loM3XfXsPAOR4qA-pX_qAILys

참고 URL : https://stackoverflow.com/questions/45981950/how-to-specify-credentials-when-connecting-to-boto3-s3

반응형