Как заставить gsutil использовать учетные данные gcloud в контейнере докера - PullRequest
0 голосов
/ 12 июня 2018

[Обновлено]

Почему gsutil не использует учетные данные Gcloud, как следует при работе в док-контейнере в Cloud Shell?

Согласно [1] gsutil должен использовать учетные данные gcloudкогда они доступны:

После настройки учетных данных с помощью gcloud auth эти учетные данные будут использоваться независимо от того, есть ли у пользователя какие-либо файлы конфигурации boto (которые расположены в ~ / .boto, если не указано иное).путь указывается в переменной окружения BOTO_CONFIG).Однако gsutil будет по-прежнему искать учетные данные в файле конфигурации boto, если требуется тип учетных данных, отличных от GCS, который не хранится в хранилище учетных данных gcloud (например, учетные данные HMAC для учетной записи S3).

Кажется, что это нормально работает в установках gcloud, но не в образах докеров.Процесс, который я использовал в Cloud Shell:

docker run -ti --name gcloud-config google/cloud-sdk gcloud auth login
docker run --rm -ti --volumes-from gcloud-config google/cloud-sdk gcloud compute instances list --project my_project
... (works ok)

docker run --rm -ti --volumes-from gcloud-config google/cloud-sdk gsutil ls gs://bucket/

ServiceException: 401 Anonymous caller does not have storage.objects.list access to bucket.

С уважением

Кевин

[1] https://cloud.google.com/storage/docs/gsutil/addlhelp/CredentialTypesSupportingVariousUseCases

1 Ответ

0 голосов
/ 12 июня 2018

Вам необходимо смонтировать том с вашими учетными данными:

docker run -v ~/.config/gcloud:/root/.config/gcloud your_docker_image
...