コンテナーイメージに安全にアクセスして管理できるように、container RegistryはDockerやcontainerdなどのクライアントからのインスタンスログイン用のID認証を提供しています。 認証が成功すると、クライアントでコンテナイメージまたはHelmチャートをプッシュおよびプルできます。
背景情報
アクセス資格情報は、DockerやContainerdなどのクライアントでのRAMポリシーベースの認証に使用されます。 詳細については、「RAM認証ルール」をご参照ください。 認証が成功すると、コンテナイメージとHelmチャートをプッシュおよびプルできます。 Container Registryコンソールへのログインに使用するパスワードとは異なるアクセスパスワードをインスタンスに設定することを推奨します。 これにより、クライアントのパスワードが漏洩した場合のビジネスへの影響を防ぎます。
アクセス資格情報は、Alibaba Cloudアカウントとパスワードに依存しません。 アクセス資格情報には、次の2種類があります。
パスワード: パスワードは永久に有効です。 それを安全に保つ。 パスワードを忘れた場合は、リセットできます。
Temporary token: 一時的なトークンは1時間有効です。 セキュリティトークンサービス (STS) を使用して一時トークンを取得した場合、STSトークンが有効である限り、一時トークンは有効です。
Alibaba CloudアカウントとRAMユーザーには、独立したアクセス資格情報があります。 RAMユーザーは、Alibaba Cloudアカウントのアクセス資格情報を使用してContainer Registry Enterprise Editionインスタンスにアクセスすることはできません。 RAMユーザーは、独自のアクセス資格情報を設定する必要があります。
パスワードを使用する
RAMロールとしてContainer Registry Enterprise Editionインスタンスにログインする場合は、パスワードを使用できず、一時的なトークンを使用する必要があります。
手順
Container Registryコンソールにログインします。
上部のナビゲーションバーで、リージョンを選択します。
左側のナビゲーションウィンドウで、[インスタンス] をクリックします。
[インスタンス] ページで、管理するEnterprise Editionインスタンスをクリックします。
Container Registry Enterprise Editionインスタンスの管理ページの左側のナビゲーションウィンドウで、 .
On theアクセス資格ページをクリックします。パスワードの設定.
[パスワードの設定] ダイアログボックスで、[パスワード] パラメーターのパスワードを入力し、[パスワードの確認] パラメーターのパスワードを再度入力します。 次に、[確認] をクリックします。
次に何をすべきか
Container Registry Enterprise Editionインスタンスにログインします。
インターネットまたは仮想プライベートクラウド (VPC) に対するアクセス制御を設定します。 詳細については、「インターネット経由のアクセスの設定」または「VPC ACLの設定」をご参照ください。
アクセス資格情報を使用して、Container Registry Enterprise Editionインスタンスにログインします。 例:
docker login <Name of the Container Registry Enterprise Edition instance>-registry.<Region ID of the instance>.cr.aliyuncs.com
一時トークンの使用
前提条件
Alibaba Cloud CLIがインストールされ、Container Registry Enterprise Editionインスタンスへのアクセスに使用するRAMユーザーのプロファイルが設定されます。 詳細については、「 インストールガイド」と「プロファイルの設定」をご参照ください。。
jqがインストールされています。 詳細は、「jq」をご参照ください。
RAM ユーザーを作成します。 詳細については、「RAM ユーザーの作成」をご参照ください。
OpenAPI ExplorerでGetAuthorizationToken APIを呼び出して、Container Registry Enterprise Editionインスタンスへのログインに使用できる一時的なアカウントとトークンを取得することもできます。
手順
RAMユーザーのAccessKeyペアに関する情報を取得します。 詳細については、「RAMユーザーのAccessKeyペアに関する情報の表示」をご参照ください。
JSONモードでカスタムポリシーを作成し、そのポリシーをRAMユーザーにアタッチします。 詳細については、「JSONタブでカスタムポリシーを作成する」および「RAMユーザーに権限を付与する」をご参照ください。
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": [ "cr:GetAuthorizationToken", "cr:PullRepository", "cr:PushRepository" ], "Resource": "*" } ] }
次のコマンドを実行して、一時トークンを取得します。
説明ACR_ENDPOINT="<acr service endpoint>"
の<acr service endpoint>
は、Enterprise Editionインスタンスが存在するリージョンのエンドポイントです。 詳細については、「エンドポイント」をご参照ください。export ALIYUN_AK="<aliyun access key>" # The AccessKey ID that you obtained in step 1. export ALIYUN_SK="<aliyun access key secret >" # The AccessKey secret that you obtained in step 1. export ACR_INSTANCE_ID="<id of acr instance >" # The ID of the Container Registry Enterprise Edition instance. 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'
次に何をすべきか
Container Registry Enterprise Editionインスタンスにログインします。
インターネットまたはVPCに対するアクセス制御を設定します。 詳細については、「インターネット経由のアクセスの設定」または「VPC ACLの設定」をご参照ください。
アクセス資格情報を使用して、Container Registry Enterprise Editionインスタンスにログインします。 例:
docker login --username=cr_temp_user <Name of the Container Registry Enterprise Edition instance>-registry.<Region ID of the instance>.cr.aliyuncs.com
関連ドキュメント
Container Registry Enterprise Editionインスタンスのアクセス資格情報を設定した後、インスタンス内のコンテナイメージを管理および保存できます。 詳細については、「Container Registry Enterprise Editionインスタンスを使用したイメージのプッシュとプル」をご参照ください。