3

GKE クラスタは、別のプロジェクトでホストされている Container Registry からコンテナ イメージをプルするにはどうすればよいですか?

<reader-project>projectの GCR イメージにアクセスしようとしている project に GKE クラスタがあります<registry-project>

<reader-project>のストレージ バケットに読み取りアクセス権を持つユーザーとしての GCE サービス アカウントのメールを追加しようとしました<registry-project>が、まだエラーが発生します。

<Error><Code>AccessDenied</Code>
<Message>Access denied.</Message>
<Details>Caller does not have storage.objects.get access to object us.artifacts.<registry-project>.appspot.com/containers/images/sha256:<tag>.
</Details></Error>
4

3 に答える 3

4

Storage Object Viewer ロールを持つユーザーとして GCE サービス アカウントのメールを追加してみてください。プロジェクト内の GCS オブジェクト (コンテナ イメージ) への読み取り専用アクセス権をサービス アカウントに付与します。

于 2016-07-27T19:26:06.083 に答える
1

GKE があるプロジェクトの IAM 権限を確認すると、次のようなユーザーが表示されます123456789-compute@developer.gserviceaccount.com

次に、コンテナー レジストリ プロジェクトで、そのユーザーにStorage Object Viewer permission. その後、GKE は th からイメージをプルできるようになります。

于 2017-08-07T17:48:41.467 に答える
0

次のコマンドを実行して、両方のバケットの権限を確認できますか:

gsutil acl get gs://us.artifacts..appspot.com

gsutil acl get gs://artifacts..appspot.com

artifacts..appspot.com がデフォルトのバケットです。サービス アカウントを Storage Object Viewer として追加すると、デフォルト バケットの読み取り専用権限が付与されます。

gsutil ツールに関するリンクは次のとおりです: https://cloud.google.com/storage/docs/gsutil/commands/acl

于 2016-07-27T20:42:42.473 に答える