すべてのプロダクト
Search
ドキュメントセンター

Container Registry:アクセス認証情報の設定

最終更新日:Aug 29, 2026

Docker、containerd、またはその他のクライアントを使用して Container Registry (ACR) イメージをプッシュまたはプルする前に、認証のためのアクセス認証情報を設定する必要があります。認証情報には、永続パスワードと一時パスワードがあります。認証に成功すると、コンテナイメージや Helm チャートをプッシュおよびプルできます。

認証情報の説明

認証後、システムは RAM アクセス制御ポリシーに基づいて操作を認可し、実行できる操作の範囲を制御します。

アクセス資格情報は、Alibaba Cloud アカウントとそのパスワードとは独立しています。 ACR の固定パスワードは、お使いのアカウント (Alibaba Cloud アカウントまたは Resource Access Management (RAM) ユーザー) のコンソールログオンパスワードではありません。 これは、ACR コンソールのアクセス資格情報 ページで設定する専用のレジストリパスワードです。 資格情報には 2 種類あります。

  • 永続パスワード:このパスワードは有効期限がありません。漏洩した場合、手動でリセットするまで有効なままです。セキュリティを高めるため、一時パスワードの使用を推奨します。パスワードを紛失した場合は、アクセス認証情報ページでリセットできます。

  • 一時パスワード:このパスワードは 1 時間有効です。Security Token Service (STS) を使用してパスワードをリクエストした場合、パスワードはリクエストの Security Token Service トークンと同じ期間有効です。

Alibaba Cloud アカウントのアクセス認証情報と RAM ユーザーのアクセス認証情報は、互いに独立しています。RAM ユーザーは、Alibaba Cloud アカウントによって設定された永続パスワードを使用できません。各 RAM ユーザーは、自身の Alibaba Cloud アカウントで ACR コンソールにログインし、専用の永続パスワードを設定する必要があります。

Docker またはその他のクライアントを使用して ACR にログインする場合、--username パラメーターの値は、アカウントタイプによって異なります。

  • Alibaba Cloud アカウント: ユーザー名は、Alibaba Cloud アカウントのログイン名です。ACR コンソールの アクセス資格情報 ページで、完全な docker login コマンドと対応するユーザー名を確認できます。このユーザー名は、数字の文字列である Alibaba Cloud アカウント ID とは異なります。アカウント ID をユーザー名として使用すると、認証に失敗します。

  • RAM ユーザー:ユーザー名は RAM ユーザーログイン名で、 <RAM-user-login-name>@<default-domain-of-alibaba-cloud-account> の形式です (例: username@China-1234567890.onaliyun.com)。

正しくないユーザー名による unauthorized: authentication required エラーを回避するため、docker login を実行する前に、ACR コンソールの アクセス資格情報 ページでユーザー名の正しい形式を確認してください。

永続パスワードの使用

説明

Container Registry (ACR) は、ロールベースのログインをサポートしていません。 一時パスワードの使用の手順でログインしてください。

RAM ユーザー:RAM ユーザーとして ACR コンソールで永続パスワードを設定するには、Alibaba Cloud アカウントが事前に RAM ユーザーに コンソールログイン 権限を有効にする必要があります。コンソールアクセスが有効になっていない RAM ユーザーは、ACR コンソールにログインしたり、アクセス認証情報を設定したりすることはできません。

Alibaba Cloud アカウントは、RAM ユーザーの代わりに永続パスワードを設定または管理することはできません。RAM ユーザーは、自身の Alibaba Cloud アカウントで ACR コンソールにログインし、自分でアクセス認証情報を設定する必要があります。
  1. Container Registryコンソールにログインします。

  2. 上部のナビゲーションバーで、リージョンを選択します。

  3. 左側のナビゲーションペインで、インスタンス をクリックします。

  4. [インスタンス] ページで、管理するEnterprise Editionインスタンスをクリックします。

  5. エンタープライズインスタンス管理ページの左側のナビゲーションペインで、インスタンス > アクセス資格情報 を選択します。

  6. アクセス資格情報 ページで、パスワードの設定 をクリックします。

  7. パスワードの設定 ダイアログボックスで、パスワード と パスワードの確認 を入力します。次に、OK をクリックします。

    パスワードは 8 ~ 32 文字で、文字、記号、数字のうち少なくとも 2 種類の文字種を含む必要があります。 P@ssw0rd のような公知の脆弱なパスワードは使用しないでください。 $ 記号はサポートされていません。

    • エラーメッセージが表示されずに確認ボタンがグレーアウトする: OK ボタンをクリックしてもグレーアウトしてエラーメッセージが表示されない場合、パスワードがセキュリティ要件を満たしていない可能性があります (例えば、パスワードに $ などの禁止文字が含まれている、または一般的な脆弱なパスワードが使用されているなど)。パスワードを確認して修正し、再度お試しください。

    • 特殊文字が原因で Docker ログインに失敗する: パスワードに @ などの特殊文字が含まれている場合、ターミナルで docker login を実行すると、シェルエスケープが原因で失敗し、unauthorized: authentication required エラーが発生することがあります。この場合、[アクセス資格情報] ページでパスワードをリセットし、特殊文字を含まないパスワードを使用してください。

    • 過去のパスワードは取得できません: 固定パスワードを設定すると、その履歴は表示できなくなります。パスワードを紛失した場合は、アクセス資格情報 ページでリセットしてください。

次のステップ

Enterprise インスタンスにログインします。

  1. VPC またはインターネットのアクセス制御を設定します。詳細については、「インターネットアクセス制御の設定」または「VPC アクセス制御の設定」をご参照ください。

  2. ターミナルで、アクセス認証情報を入力して Enterprise インスタンスにログインします。次のサンプルコマンドをご参照ください。

    docker login <Enterprise-Edition-instance-name>-registry.<region-of-the-Enterprise-Edition-instance>.cr.aliyuncs.com

一時パスワードの使用

OpenAPI Explorer で GetAuthorizationToken API を直接実行して、対象インスタンスの一時ログインユーザー名とパスワードを取得できます。
  1. 既存の AccessKey ペアを使用するか、AccessKey の作成を参照して新しいものを作成します。 AccessKey ID と AccessKey Secret を記録します。

  2. 次の内容を、スクリプトエディターの使用および RAM ユーザー権限の管理の手順で使用します。

    {
        "Version": "1",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                    "cr:GetAuthorizationToken",
                    "cr:PullRepository",
                    "cr:PushRepository"
                ],
                "Resource": "*"
            }
        ]
    }
  3. 次のコマンドを実行して、一時パスワードを取得します。

    ACR_ENDPOINT="<acr service endpoint>" <acr service endpoint> は、ACR インスタンスが存在するリージョンの エンドポイント です。
    export ALIYUN_AK="<aliyun access key>"               # ステップ 1 の AccessKey ID。
    export ALIYUN_SK="<aliyun access key secret>"       # ステップ 1 の AccessKey Secret。
    export ACR_INSTANCE_ID="<id of acr instance>"       # 対象の ACR インスタンス ID。
    export ACR_ENDPOINT="<acr service endpoint>"  
    aliyun cr GetAuthorizationToken --endpoint $ACR_ENDPOINT --InstanceId $ACR_INSTANCE_ID --access-key-id $ALIYUN_AK --access-key-secret $ALIYUN_SK | jq -r '.AuthorizationToken'

参考情報