Alibaba Cloud Container Registry (ACR) のコンテナイメージに安全にアクセスして管理するには、Docker や containerd などのクライアントの認証を設定する必要があります。認証と権限付与が成功すると、コンテナイメージや Helm チャートをプッシュおよびプルできます。
背景情報
アクセス認証情報は、Docker や containerd などのクライアントを認証するために使用されます。認証が成功すると、設定された RAM アクセス制御ポリシーによって権限付与が決定され、コンテナイメージや Helm チャートのプッシュとプルが可能になります。クライアントパスワードが漏洩した場合に他のサービスを保護するため、ACR にはコンソールログインパスワードとは異なる一意のパスワードを設定することを推奨します。
2種類の認証情報が利用可能です:
-
固定パスワード:このパスワードには有効期限がありません。安全に保管してください。パスワードを紛失した場合は、リセットできます。
-
一時パスワード:このパスワードは1時間有効です。Security Token Service (STS) を使用して一時パスワードをリクエストした場合、その有効期間は STS トークンの有効期間と同じです。
Alibaba Cloud アカウントと RAM ユーザーは独立しています。RAM ユーザーは Alibaba Cloud アカウントのアクセス認証情報を使用できず、自身で設定する必要があります。
固定パスワードの使用
Container Registry (ACR) はロールベースのログインをサポートしていません。ロールを使用してログインするには、一時パスワードを使用する必要があります。
操作手順
Container Registry コンソールにログインします。
上部のナビゲーションバーで、リージョンを選択します。
-
左側のナビゲーションウィンドウで、インスタンス をクリックします。
[インスタンス] ページで、管理したい Enterprise Edition インスタンスをクリックします。
-
左側のナビゲーションウィンドウで、 を選択します。
-
アクセス資格情報 ページで、パスワードの設定 をクリックします。
-
パスワードの設定 ダイアログボックスで、パスワード と パスワードの確認 フィールドにパスワードを入力します。その後、OK をクリックします。
次のステップ
Enterprise Edition インスタンスにログインします。
-
インターネットまたは VPC のアクセス制御を設定します。詳細については、「インターネット経由のアクセス制御の設定」または「VPC のアクセス制御の設定」をご参照ください。
-
ターミナルで、アクセス認証情報を使用して Enterprise Edition インスタンスにログインします。以下はコマンドの例です:
docker login <instance-name>-registry.<region-id>.cr.aliyuncs.com
一時パスワードの使用
前提条件
-
Alibaba Cloud CLI をインストールし、認証情報を設定済みであること。
-
jq コマンドラインツールがインストール済みであること。
-
RAM ユーザーが作成済みであること。
OpenAPI Explorer で GetAuthorizationToken 操作を実行して、ターゲットインスタンスの一時的なユーザー名とパスワードを取得することもできます。
操作手順
-
既存の 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>" # ターゲットの 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'
次のステップ
Enterprise Edition インスタンスにログインします。
-
インターネットまたは VPC のアクセス制御を設定します。詳細については、「インターネット経由のアクセス制御の設定」または「VPC のアクセス制御の設定」をご参照ください。
-
ターミナルで、アクセス認証情報を使用して Enterprise Edition インスタンスにログインします。以下はコマンドの例です:
docker login --username=cr_temp_user <instance-name>-registry.<region-id>.cr.aliyuncs.com