gsutil을 이용하여 s3에 접근할 때 다음의 AuthorizationHeaderMalformed 오류가 발생하는 경우가 있습니다. REST API를 이용한 호출에서 HTTP헤더의 정보에 오류가 있을 때 발생합니다. 아래의 오류는 S3의 region을 확인하지 못해서 발생하는 오류입니다. us-east-2
에 접근해야 하는데 us-east-1
에 접근하여 해당 오류가 발생하였습니다.
$ gsutil ls s3://sample-bucket/
BadRequestException: 400 AuthorizationHeaderMalformed
<?xml version="1.0" encoding="UTF-8"?>
<Error><Code>AuthorizationHeaderMalformed</Code><Message>The authorization header is malformed; the region 'us-east-1' is wrong; expecting 'us-east-2'</Message><Region>ap-northeast-2</Region><RequestId>aaa</RequestId><HostId>bbb</HostId></Error>
이때는 사용자 홈 디렉토리의 ~/.boto
파일에 host 설정을 추가하여 문제를 해결할 수 있습니다. 해당 파일이 없으면 생성하고 다음의 설정을 추가합니다. 이 옵션을 추가하면 버켓을 호출할 때 사용하는 호스트명 지역을 고정하여 문제를 해결합니다.
[s3]
host=s3.us-east-2.amazonaws.com
이렇게 설정하면 S3에 접근되는 것을 확인할 수 있습니다.
반응형
'GCP' 카테고리의 다른 글
[GCP-Dataproc] Dataproc을 생성할 때 Insufficient 'CPUS' quota 오류 해결 방법 (0) | 2021.04.20 |
---|---|
[GCP] 빅쿼리 CLI 기본 명령어 이용방법 (0) | 2020.08.02 |
[GCP] gsutil cp 명령에서 병렬 옵션을 이용하여 빠르게 처리하기 (0) | 2020.07.24 |
[GCP] 구글 클라우드 스토리지 AccessDeniedException: 403 Insufficient Permission (1) | 2020.07.24 |