Dustin 씨가 Amazon S3에서
미리 서명된 URL로 작업하는
방법을 보여 줍니다.

dustin_s3_bucket_performance_improve

임시 토큰을 사용하여 Amazon S3(Amazon Simple Storage Service) 버킷에 대해 미리 서명된 URL을 만들었지만, 지정한 만료 시간 전에 이 URL이 만료되었습니다. 어떻게 이런 일이 발생할 수 있습니까? 더 긴 시간 동안 유효한 미리 서명된 URL을 만들려면 어떻게 해야 합니까?

임시 토큰을 사용하여 미리 서명된 URL을 만들면 이 URL이 토큰 만료보다 이후의 만료 시간으로 만들어진 경우에도 토큰이 만료되면 이 URL도 만료됩니다.

미리 서명된 URL을 만드는 데 사용할 수 있는 자격 증명에는 다음 사항이 포함됩니다.

  • AWS IAM(Identity and Access Management) 인스턴스 프로파일: 최대 6시간 동안 유효함
  • AWS 보안 토큰 서비스(STS): AWS 계정 루트 사용자 또는 IAM 사용자의 자격 증명과 같은 영구 자격 증명을 통해 서명된 경우 최대 36시간 동안 유효함
  • IAM 사용자: AWS 서명 버전 4​를 사용하는 경우 최대 7일 동안 유효함

최대 7일 동안 유효한 미리 서명된 URL을 만들려면 먼저 사용 중인 SDK에 IAM 사용자 자격 증명(액세스 키 및 보안 액세스 키)를 지정합니다. 그런 다음 AWS 서명 버전 4를 사용하여 미리 서명된 URL을 생성합니다.

예를 들어, 다음 단계에 따라 Boto 3을 사용하여 미리 서명된 URL을 만듭니다.

1.    Boto와 함께 사용할 IAM 사용자 자격 증명을 구성합니다.

2.    다음 코드 조각을 편집하고 실행하여 S3 객체와 함께 사용할 미리 서명된 URL을 만듭니다.

import boto3
from botocore.client import Config

# Get the service client with sigv4 configured
s3 = boto3.client('s3', config=Config(signature_version='s3v4'))

# Generate the URL to get 'key-name' from 'bucket-name'
# URL expires in 604800 seconds (seven days)
url = s3.generate_presigned_url(
    ClientMethod='get_object',
    Params={
        'Bucket': 'bucket-name',
        'Key': 'key-name'
    },
    ExpiresIn=604800
)

print(url)

경고: IAM 사용자가 삭제되는 경우 또는 액세스 키와 보안 액세스 키가 비활성화되는 경우 미리 서명된 URL이 조기에 만료됩니다.


페이지 내용이 도움이 되었습니까? | 아니요

AWS 지원 지식 센터로 돌아가기

도움이 필요하십니까? AWS 지원 센터를 방문하십시오.

게시 날짜: 2018-08-06