Container Registryで Authorization required
エラーが表示されるのはなぜですか?
IBM Cloud® Container Registry にアクセスしようとしていますが、 Authorization required
エラーが発生しています。
Container Registry にアクセスしようとすると、次のいずれかのメッセージが表示されます。
Authorization required. See https://cloud.ibm.com/docs/Registry?topic=Registry-troubleshoot-auth-req
You were not authorized to complete this operation.
CRG0014E An error occurred when authenticating your request with IBM Cloud. Clear your browser cookies, log in to IBM Cloud, and try your request again.
Status code 401 Unauthorized
。 IBM Cloud Code Engineを使用している場合、このメッセージが表示されることがあります。 Code Engineを使用しているときにUnauthorized
エラーが発生するのはなぜですか? を参照してください。UNAUTHORIZED: Authorization required
。 Podmanでcosign
を使用している場合にこのメッセージが表示されることがあります。 Podmanを使用しているときにcosign
でイメージをプルしようとすると問題が発生するのはなぜですか? を参照してください。
考えられる原因は次のとおりです。
シナリオ A. イメージをプッシュまたはプルしようとしていますが、有効な資格情報がありません。
- 無効な API キーを使用して Container Registry にログインしようとしました。
- ログインせずに Container Registry にアクセスしようとしました。
- クライアントがベアラー・トークンなしで Container Registry にアクセスしようとしました。
- クライアントが期限切れの OAuth トークンを使用して Container Registry にアクセスしようとしました。
この問題の修正方法について詳しくは、 シナリオ A: イメージをプッシュまたはプルしようとしている を参照してください。
シナリオ B Container Registryの誤ったリージョンにログインしている。 ログインしているリージョンを確認するには、 ibmcloud cr region
コマンドを実行します。
この問題の修正方法について詳しくは、 シナリオ B: 間違った地域にログインしている を参照してください。
シナリオ C. API を使用しようとしている。
- 無効な API キーを使用して Container Registry API に対する認証を試行しました。
- 無効なアカウント ID を使用して Container Registry API に対する認証を試行しました。
この問題の修正方法について詳しくは、「 シナリオ C: API を使用しようとしています」を参照してください。
この問題は、以下の方法で修正できます。
シナリオ A. イメージをプッシュまたはプルしようとしている
有効な資格情報がないため、 Container Registry にアクセスできません。
これらの問題は、以下の方法で解決できる:
- Container Registryへのクライアントのロギングに関する情報を確認します。 名前空間へのイメージのプッシュ を参照してください。
- Dockerなどのクライアントを、ユーザー名
iamapikey
と API キーをパスワードとして使用して Container Registry にログインするには、有効な IAM API キーを作成して使用します。 詳しくは、ユーザーの API キーの管理を参照してください。 - 自動化を使用して Container Registry にアクセスする場合は、サービス ID と API キーをセットアップします。 詳しくは、 Container Registryへのアクセス を参照してください。
シナリオ B. 正しくない地域にログインしている
間違った地域にログインしているため、 Container Registry にアクセスできません。
ログインしているリージョンを確認するには、 ibmcloud cr region
コマンドを実行します。
この問題は、以下の方法で解決できます。
画像がContainer Registryの異なるリージョンにある場合は、以下のコマンドを実行して、正しいリージョンのIBM Cloudにログインする必要があります。
ibmcloud cr region-set REGION
。ここで、REGION
はリージョンの名前です。 ローカル・リージョン を参照してください。ibmcloud cr login
詳しくは、 ローカル領域のターゲット設定 を参照してください。
シナリオ C. API を使用しようとしている
無効な API キーまたはアカウント ID を使用して Container Registry API に対する認証を試行したため、 Container Registry にアクセスできません。
この問題は、以下の方法で修正できます。
ibmcloud
CLI または IAM API を使用して、 Container Registry API に対して認証するための有効な OAuth トークンを取得します。 詳しくは、 IBM Cloud Container Registry API-認証 を参照してください。- Container Registry API に対して認証を行う場合は、有効なアカウント ID を使用するようにしてください。
ibmcloud account show
コマンドを実行して、アカウント ID を取得できます。