コンテナーイメージに安全にアクセスして管理できるように、container RegistryはDockerやcontainerdなどのクライアントからのインスタンスログイン用のID認証を提供しています。 認証が成功すると、クライアントでコンテナイメージまたはHelmチャートをプッシュおよびプルできます。
背景情報
アクセス資格情報は、DockerやContainerdなどのクライアントでのRAMポリシーベースの認証に使用されます。 詳細については、「RAM認証ルール」をご参照ください。 認証が成功すると、コンテナイメージとHelmチャートをプッシュおよびプルできます。 Container Registryコンソールへのログインに使用するパスワードとは異なるアクセスパスワードをインスタンスに設定することを推奨します。 これにより、クライアントでのパスワードの漏洩によるビジネスへの影響を防ぎます。
アクセス資格情報は、Alibaba Cloudアカウントとパスワードに依存しません。 アクセス資格情報には、次の2種類があります。
パスワード: パスワードは永久に有効です。 それを安全に保つ。 パスワードを忘れた場合は、リセットできます。
一時トークン: 一時トークンは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ログイン <Container Registry Enterprise Editionインスタンスの名前>-registry。<instance e>.cr.aliyuncs.comのリージョンID
一時トークンの使用
前提条件
CLIがインストールされています。 詳しくは、「Alibaba Cloud CLI」 をご参照ください。
jqがインストールされています。 詳細は、「jqコマンド」をご参照ください。
手順
RAM ユーザーを作成します。 詳細については、「RAM ユーザーの作成」をご参照ください。
RAMユーザーに次の権限を追加し、RAMユーザーのAccessKeyペアを取得します。 詳細については、「RAMユーザーのAccessKeyペアに関する情報の表示」をご参照ください。
{ "Action": [ "cr:GetAuthorizationToken", "cr:PullRepository", "cr:PushRepository" ], "Resource": "*", "Effect": "Allow" }
ACR ALIで次のコマンドを実行し、GetAuthorizationToken APIを呼び出して一時トークンを取得します。 詳細については、「GetAuthorizationToken」をご参照ください。
export ALIYUN_AK="<aliyun access key>" # The AccessKey ID that you obtained in Step 2. export ALIYUN_SK="<aliyun access key secret >" # The AccessKey secret that you obtained in step 2. export ACR_INSTANCE_ID="<id of acr instance >" export ACR_ENDPOINT="<acr service endpoint>" # You can obtain the endpoint from https://www.alibabacloud.com/help/en/acr/developer-reference/api-cr-2018-12-01-endpoint?spm=a2c63.p38356.0.0.61147050eqkpiJ. 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インスタンスにイメージをプッシュし、インスタンスからイメージをプルする」をご参照ください。