PHP 편집자 Zimo는 gcloud를 사용할 때 문제가 발생할 수 있습니다. 즉, 기본 로그인 이름을 사용하여 GCS URL에 서명할 수 없습니다. 이 문제는 약간의 혼란을 야기할 수 있지만 해결책을 찾을 수 있습니다. 이 글에서는 gcloud를 사용하여 GCS URL에 성공적으로 서명할 수 있도록 이 문제를 해결하는 방법을 소개합니다. 당신이 초보자이든 숙련된 개발자이든 이 글은 명확하고 간결한 솔루션을 제공할 것입니다. 한 번 보자!
저는 golang 백엔드를 개발하고 있으며 cloud.google.com/go/storage
库与我们的 gcs 实例进行通信。目前,我正在使用这个库来签署 url 并将媒体上传到我们的实例。但是,我想避免下载服务帐户密钥文件并出于本地开发目的显式设置 google_application_credentials
환경변수를 사용하고 있습니다. 이를 달성하기 위해 참조 문서에 따라 adc에 대한 사용자 자격 증명을 제공했습니다.
새로운 ADC 구성에서는 미디어 업로드가 제대로 작동합니다. 그러나 다음 코드 조각을 사용하여 URL에 서명하려고 하면:
으아악오류 메시지를 받았습니다:
으아악코드를 실행하기 전에 gcloud auth application-default login
를 사용하여 인증했기 때문에 이 오류 메시지는 혼란스럽습니다. 여기에 어떤 문제가 있을 수 있으며 어떻게 해결할 수 있나요?
편집:
토큰 생성 권한이 있는 서비스 계정을 가리키도록 --impersonate-service-account
플래그를 추가하려고 시도했지만 이 역시 작동하지 않는 것 같습니다. --impersonate-service-account
标志,指向具有令牌创建权限的服务帐户,但这似乎也不起作用。
显然,这个问题在最新版本的 cloud.google.com/go/storage
中得到了解决(我在 GitHub 讨论中读到了相关内容,但由于某种原因无法再找到链接)。您必须将服务帐户附加到签名 URL,并且该库现在能够获取与模拟关联的 GoogleAccessID
。升级到 v1.29.0
并使用 gcloud auth application-default login --impersonate-service-account=<SERVICE_ACCOUNT>
cloud.google.com/go/storage
에서 해결되었습니다(GitHub 토론에서 이에 대해 읽었지만 어떤 이유로든 더 이상 링크를 사용할 수 없습니다). 발견될 수 있습니다). 서명된 URL에 서비스 계정을 추가해야 하며, 이제 라이브러리는 가장과 연결된 GoogleAccessID
를 얻을 수 있습니다. v1.29.0
으로 업그레이드하고 gcloud auth application-default login --impersonate-service-account=<SERVICE_ACCOUNT>
를 사용하여 인증한 후 모든 것이 제대로 작동하는 것 같습니다. 사용자 계정에 서비스 계정 아래에 할당된 "서비스 계정 토큰 생성자" 역할이 있는지 확인하세요. 🎜위 내용은 gcloud 기본 로그인을 사용하여 GCS URL에 서명할 수 없습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!