본문 바로가기
GCP

[gcp] gsutil에서 AuthorizationHeaderMalformed 오류 해결 방법

by hs_seo 2020. 7. 15.

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에 접근되는 것을 확인할 수 있습니다.

반응형