画像をgcコンテナーレジストリにプッシュするためのbitbucketパイプラインに取り組んでいます。ストレージ管理者の役割を持つサービスアカウントを作成しました。 ([email protected])
gcloud auth activate-service-account --key-file key.json
gcloud config set project mgcp-xxxx
gcloud auth configure-docker --quiet
docker Push eu.gcr.io/mgcp-xxxx/image-name
ログインは成功しましたが、プロジェクト「mgcp-xxxx」のトークン交換に失敗しました。呼び出し元には 'storage.buckets.get'権限がありません。権限を構成するには、次の手順に従います https://cloud.google.com/container-registry/docs/access-control
誰か私が欠けているものについてアドバイスできますか?
ありがとう!
以前は、同じ名前と異なる権限を持つ別のサービスアカウントがありました。サービスアカウント名がキャッシュされていることを発見した後、別の名前で新しいサービスアカウントを作成し、適切にプッシュしています。
これに遭遇した他の人にとって、私の問題は、サービスアカウントを付与していなかったことでしたStorage legacy bucket reader
。私はそれを認めただけですObject viewer
。従来の権限を追加することで修正されました。
Dockerはまだレガシーな方法を使ってGCRにアクセスしているようです
ここで将来、レガシーオプションがなくなったことを発見しました。この場合、完全なStorage Adminを付与することを余儀なくされました。これについてGoogleでチケットを開きます。これは、画像をプッシュするのに少し極端です。これは将来の誰かを助けるかもしれません。
いくつかのことを試しましたが、実行する必要があるようですgcloud auth configure-docker
GCRはGCSを使用して画像を保存するだけで、アーティファクトの権限を確認します。同じプロジェクト内のGCSのフォルダ。