인스턴스를 중지하지 않고 GCP Compute Engine에서 Cloud API 액세스 범위를 변경하는 방법

인스턴스를 중지하지 않고 GCP Compute Engine에서 Cloud API 액세스 범위를 변경하는 방법

gcsfuseGoogle Compute Engine 내부를 사용하고 있습니다 . 클라우드 스토리지 버킷으로 폴더를 마운트했지만 그 안에 파일을 생성할 수 없습니다.

touch t1

오류가 있습니다:

touch: cannot touch 't1': Input/output error

문제에 대한 해결책은 다음과 같습니다.Cloud API 액세스 범위: 저장소: 읽기/쓰기

인스턴스를 중지하지 않고 GCP Compute Engine에서 Cloud API 액세스 범위를 변경하는 방법은 무엇입니까? 이 문제에 대한 해결책을 제공해 주세요.

미리 감사드립니다!

답변1

GCS 권한이 부족한 것 같습니다. 다음을 살펴보세요.선적 서류 비치을 위한 gcsfuse. GCE VM에서 서비스 계정을 사용하는 경우 액세스 범위로 VM을 설정해야 합니다 storage-full.

다음과 같은 방법으로 문제를 해결할 수 있습니다.

  1. 서비스 계정 만들기(자세한 내용은여기)
  2. 서비스 계정의 키를 만들고 .json 파일을 다운로드하세요.
  3. 서비스 계정에 적절한 역할 부여
  4. 버킷의 서비스 계정에 적절한 권한을 부여합니다.
  5. 서비스 계정의 .json 자격 증명을 VM에 업로드합니다.
  6. gcsfuse명령줄에서 호출할 때 서비스 계정 자격 증명의 경로가 포함된 환경 변수를 정의합니다 .

    GOOGLE_APPLICATION_CREDENTIALS = /root/credentials/service_credential_file.json gcsfuse bucket_name /my/mount/point
    

    문서화된 것과 key_file동일한 목표를 달성하기 위해 옵션을 사용하십시오.fstab여기.

key_file또한 다음을 사용하여 VM에서 서비스 계정을 구성한 경우에도 환경 변수 또는 옵션을 사용해야 합니다 .

gcloud auth activate-service-account --key-file /root/credentials/service_credential_file.json

여전히 문제가 있는 경우 단계, 명령 및 전체 출력으로 질문을 업데이트하세요.

관련 정보