Alibaba Cloud Container Registry (ACR) のコンテナイメージを安全にアクセス・管理するには、Docker や containerd などのクライアントに対する身分認証機能が提供されます。認証および権限付与が正常に完了すると、コンテナイメージおよび Helm チャートを安全にプッシュおよびプルできます。
背景情報
アクセス認証情報は、Docker や containerd などのクライアントを認証します。認証成功後の権限付与は、設定済みの Resource Access Management (RAM) アクセス制御ポリシーに基づいて実行されます。詳細については、「RAM アクセス制御ポリシー」をご参照ください。認証および権限付与が正常に完了すると、コンテナイメージおよび Helm チャートのプッシュおよびプルが可能になります。クライアント側の認証情報が公開された場合のリスクを低減するため、コンソールログインパスワードとは異なるパスワードを使用してください。
アクセス認証情報は、Alibaba Cloud アカウントおよびそのパスワードとは独立しています。以下の 2 種類があります:
永続パスワード:有効期限はありません。安全に保管してください。紛失した場合は、新しいパスワードを設定して再設定してください。
一時パスワード:有効期間は 1 時間です。Security Token Service (STS) 経由でリクエストした場合、その有効期間は STS トークンと一致します。
Alibaba Cloud アカウントおよび RAM ユーザーは、それぞれ独立したアクセス認証情報を使用します。RAM ユーザーは、Alibaba Cloud アカウントのアクセス認証情報を使用できません。各 RAM ユーザーは、自身専用のアクセス認証情報を設定する必要があります。
永続パスワードの使用
Container Registry ではロールベースのログインはサポートされていません。代わりに一時パスワードをご利用ください。
操作手順
「Container Registry コンソール」にログインします。
上部のナビゲーションバーからリージョンを選択します。
左側のナビゲーションウィンドウで、[インスタンス] をクリックします。
「インスタンス」ページで、管理対象の Enterprise Edition インスタンスをクリックします。
Enterprise Edition インスタンス管理ページの左側ナビゲーションウィンドウで、 を選択します。
「アクセス認証情報」ページで、[パスワードの設定] をクリックします。
「パスワードの設定」ダイアログボックスで、[パスワード] フィールドにパスワードを入力し、[パスワードの確認] フィールドで再度入力して確認します。その後、[確認] をクリックします。
次のステップ
Enterprise Edition インスタンスにログインします。
インターネットまたは仮想プライベートクラウド (VPC) に対するアクセス制御を設定します。詳細については、「インターネット経由でのアクセス設定」または「VPC ACL の設定」をご参照ください。
アクセス認証情報を使用して Enterprise Edition インスタンスにログインします。例:
docker login <Container Registry Enterprise Edition インスタンス名>-registry.<インスタンスのリージョン ID>.cr.aliyuncs.com
一時パスワードの使用
前提条件
「」および「Alibaba Cloud CLI」をインストールし、認証情報を設定します。詳細については、「認証情報の設定」をご参照ください。
「jq コマンド」をインストール済みである必要があります。
RAM ユーザーを作成済みです。
OpenAPI Explorer を使用して、GetAuthorizationToken API を直接実行し、対象インスタンスの一時認証情報を取得することもできます。
操作手順
AccessKey ペアを作成するか、既存のものを使用します。その際、AccessKey ID および AccessKey Secret を記録してください。詳細については、「AccessKey の作成」をご参照ください。
以下の内容を用いて、スクリプト編集モードでカスタムポリシーを作成し、RAM ユーザーの権限を管理できます。
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": [ "cr:GetAuthorizationToken", "cr:PullRepository", "cr:PushRepository" ], "Resource": "*" } ] }以下のコマンドを実行して、一時トークンを取得します。
説明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 >" # Container Registry Enterprise Edition インスタンスの 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'
次のステップ
Enterprise Edition インスタンスにログインします。
インターネットまたは VPC に対するアクセス制御を設定します。詳細については、「インターネット経由でのアクセス設定」または「VPC ACL の設定」をご参照ください。
アクセス認証情報を使用して Enterprise Edition インスタンスにログインします。例:
docker login --username=cr_temp_user <Container Registry Enterprise Edition インスタンス名>-registry.<インスタンスのリージョン ID>.cr.aliyuncs.com