2020년 9월 30일이후 생성된 S3 Bucket에 대하여 path style의 S3 API Request가 중지됩니다
공식 블로그
https://aws.amazon.com/ko/blogs/korea/amazon-s3-path-deprecation-plan-the-rest-of-the-story/
Amazon S3 경로 기반 API 사용 중지 계획 안내 | Amazon Web Services
지난 주 저희는 Amazon S3 버킷에 있는 객체의 주소를 지정하는 데 사용되는 경로 기반 액세스 모델을 중지할 것임을 발표했습니다. 이 블로그 게시물을 작성하기 위해 저는 현 상황에 대해 S3 팀과
aws.amazon.com
S3 Endpoint 지정방법
패스 형식(path-style)
V1이라고 불림
패스부분에 버킷명이 들어감
http://s3.amazonaws.com/<bucket-name>(버지니아 리전만 가능)
http://s3-ap-northeast-2.amazonaws.com/<bucket-name>
가상호스트 형식(virtual hosted-style)
V2이라고 불림
호스트명에 버킷명이 들어감
http://<bucket-name>.s3.amazonaws.com
http://<bucket-name>.s3-ap-northeast-2.amazonaws.com
2020년9월30일이후에 생성된 버킷에 대하여 가상호스트형식만 허용됩니다.
따라서 2020년 9월 30일 이전에 생성된 버킷에 대해서는 가상호스트형식 뿐만 아니라 패스형식으로도 억세스가 가능합니다.
앞으로는 가상호스트 형식만 가능하므로 sdk를 이용하거나 버킷을 생성할때에 주의할 점이 있습니다.
aws-sdk-php 이용시 주의할 점
최신 SDK를 이용하면 되지만 프로그램 상에 use_path_style_endpoint가 false로 되어있는지를 확인해 볼 필요가 있습니다.
https://docs.aws.amazon.com/aws-sdk-php/v3/api/class-Aws.S3.S3Client.html
Class Aws\S3\S3Client | AWS SDK for PHP 3.x
Aws\AwsClient implements Aws\AwsClientInterface uses Aws\AwsClientTrait Aws\S3\S3Client implements Aws\S3\S3ClientInterface uses Aws\S3\S3ClientTrait Namespace: Aws\S3 Located at S3/S3Client.php Client used to interact with Amazon Simple Storage Service (A
docs.aws.amazon.com
버킷 생성시 주의할 점
under score ( _ ) 사용금지
버킷 생성시에 under score가 입력되지 않습니다만, 이전에 생성해둔 버킷명에 포함되어 있는지 확인해볼 필요가 있습니다. under score는 호스트명에 사용할 수 없으므로 호스트형식으로 변경되면 접근할 수 없습니다.
대문자 사용금지
under score와 마찬가지로 버킷 생성시에 대문자가 입력되지 않습니다만, 이전에 생성해둔 버킷명에 포함되어 있는지 확인해볼 필요가 있습니다. 대문자는 호스트명에서 소문자로 바뀌게 되므로 주의할 필요가 있습니다.
period 사용금지
under score와 대문자와 마찬가지로 period(마침표)를 버킷명에 사용할 수 없습니다. 버킷에 억세스할때 https로 억세스하기 때문에 *.s3.amazonaws.com 도메인의 SSL증명서를 사용할 수 없게 됩니다.
버킷명에 대한 공식 문서
https://docs.aws.amazon.com/ko_kr/AmazonS3/latest/dev/BucketRestrictions.html