HMAC 인증 정보 사용

HMAC 신임 정보는 인증이 필요한 S3-compatible 도구 및 라이브러리와 함께 사용하기 위해 쌍을 이루는 액세스 키 및 비밀 키로 구성됩니다.

HMAC 신임 정보가 정의됨

IBM Cloud® Object Storage API는 오브젝트를 읽고 쓰기 위한 REST 기반 API입니다. 또한 인증 및 권한 부여를 위해 IBM Cloud® Identity and Access Management를 사용하고 IBM Cloud로 애플리케이션을 쉽게 마이그레이션하기 위해 S3 API의 서브세트를 지원합니다.

콘솔에서 HMAC 신임 정보 작성

사용자는 콘솔에서 신임 정보 작성 중에 Include HMAC CredentialOn 로 전환하여 서비스 신임 정보 의 일부로 HMAC 신임 정보 세트를 작성할 수 있습니다. 그림 1은 "고급 옵션" 을 선택하여 HMAC 매개변수를 설정하는 옵션을 표시합니다.

고급 옵션의 HMAC 설정
HMAC 자격 증명 포함

서비스 인증 정보가 작성되고 나면 HMAC 키가 cos_hmac_keys 필드에 포함됩니다. 이후 이러한 HMAC 키는 서비스 ID와 연관되며, 서비스 ID의 역할에서 허용되는 리소스 또는 오퍼레이션에 액세스하는 데 사용될 수 있습니다.

서비스 신임 정보를 작성할 때 역할에 None 값을 제공할 수 있습니다. 이는 의도하지 않거나 불필요한 IAM 액세스 정책의 작성을 방지합니다. 연관된 서비스 ID에 대한 모든 액세스 정책은 IAM 콘솔 또는 API를 사용하여 관리해야 합니다.

CLI를 사용하여 HMAC 신임 정보 작성

IBM Cloud® Object Storage CLI를 사용하여 신임 정보를 작성할 수도 있습니다. 예제를 사용하려면 IBM Cloud 플랫폼 명령행 지시사항 이 이미 설치되어 있어야 합니다.

ibmcloud resource service-key-create <key-name-without-spaces> Writer --instance-name "<instance name--use quotes if your instance name has spaces>" --parameters '{"HMAC":true}'

HMAC 자격 증명의 예

생성된 키의 결과를 저장하려는 경우 예제의 끝에 > file.skey를 추가할 수 있습니다. 이 명령어 세트를 위해서는 하위 키 cos_hmac_keysaccess_key_id를 포함하는 secret_access_key 표제만 찾으면 됩니다.

    cos_hmac_keys:
        access_key_id:      7exampledonotusea6440da12685eee02
        secret_access_key:  8not8ed850cddbece407exampledonotuse43r2d2586

HMAC 신임 정보를 환경 변수로 설정

신임 정보를 작성한 후에는 이를 환경 변수로 설정할 수 있습니다 (관련된 운영 체제에 특정한 지시사항). 예를 들어, 예 3에서 .bash_profile 스크립트는 쉘 시작 시에 내보내고 개발에서 사용되는 COS_HMAC_ACCESS_KEY_IDCOS_HMAC_SECRET_ACCESS_KEY를 포함합니다.

export COS_HMAC_ACCESS_KEY_ID="7exampledonotusea6440da12685eee02"
export COS_HMAC_SECRET_ACCESS_KEY="8not8ed850cddbece407exampledonotuse43r2d2586"

다음 단계

추가 헤더가 필요한 직접 REST API 호출과 함께 사용할 서명을 작성하기 위해 HMAC 인증 정보를 사용할 때는 다음 항목을 참고하십시오.

  1. 모든 요청에는 날짜가 x-amz-date 형식인 %Y%m%dT%H%M%SZ 헤더가 있어야 합니다.
  2. 페이로드가 있는 모든 요청(오브젝트 업로드, 여러 오브젝트 삭제 등)은 페이로드 콘텐츠의 SHA256 해시가 포함된 ' x-amz-content-sha256 헤더를 제공해야 합니다.
  3. ACL(public-read 외)은 지원되지 않습니다.

S3 호환 도구 중 일부는 현재 지원되지 않습니다. 일부 도구는 버킷 작성 시에 public-read 외의 ACL을 설정하려 시도합니다. 이러한 도구를 통한 버킷 생성은 실패합니다. ' PUT bucket 요청이 지원되지 않는 ACL 오류로 실패하는 경우 먼저 IBM Cloud Object Storage 시작하기에 나와 있는 대로 콘솔을 사용하여 버킷을 만든 다음 해당 버킷에 개체를 읽고 쓰도록 도구를 구성하세요. 오브젝트 쓰기에 대해 ACL을 설정하는 도구는 현재 지원되지 않습니다.