☁️

Alibaba Cloud ACS 入門:プライベートイメージをシークレットレスで管理する方法

に公開

1. 概要

aliyun-acr-credential-helperを使って、パスワードなしでACRからイメージをプルする方法

Kubernetes環境でプライベートなコンテナイメージを安全かつ効率的にデプロイするには、認証情報の管理が重要です。
Alibaba Cloudでは、aliyun-acr-credential-helperコンポーネントを利用することで、シークレットを明示的に設定せずに、ACRからイメージをプルすることが可能です。

2. aliyun-acr-credential-helperとは?

aliyun-acr-credential-helperは、Alibaba Cloud Container Registry(ACR)と k8sマネージドサービスのACKもしくはACS間の認証を簡素化するコンポーネントです。(このブログはACS前提です。)
このコンポーネントを使用することで、従来必要だったシークレットの設定を省略し、より安全かつシームレスにイメージのプルが可能になります。

3. 設定手順

ステップ1:ACSコンソールで「aliyun-acr-credential-helper」をインストール

1.ACSコンソールにログイン
2.クラスター一覧からクラスター名をクリックして、詳細画面に遷移
3.左側のナビゲーションメニューから「Add-ons」を選択
4.検索欄に「acr」を入力
5.「セキュリティ」タブで「aliyun-acr-credential-helper(マネージド)」を見つけ、「インストール」をクリック

6.表示される設定画面で、「add」をクリック

7.以下のパラメータを入力

  • AcrInstanceInfo:
    • instanceID: ACRのインスタンスID(例: cri-xxxxx)
    • regionID: インスタンスのリージョンID(例: ap-northeast-1)
    • domains: 接続用のドメイン名(例: <インスタンス名>-registry-vpc.ap-northeast-1.cr.aliyuncs.com)
  • watchNamespace: シークレットレスでイメージをプルする対象のネームスペース(例: default、all)
  • serviceAccount: 使用するサービスアカウント名(例: default、*)

※クロスアカウントで利用する場合にはassumeRoleARNを入力する必要があります。今回は同じアカウントですので省略します。

8.設定が完了したら、「OK」をクリックしてインストールを開始

ステップ2:ACRコンソールでVPCアクセスを設定

1.Container Registryコンソールにログイン
2.対象のインスタンスを選択し、「リポジトリ」>「アクセス制御」を開く
3.「VPCアクセスを追加」をクリックし、以下の情報を入力:

  • VPC ID: ACSクラスターが属するVPCのID
  • VSwitch: 対応するVSwitchを選択

4.設定を保存し、VPCアクセスの追加を完了

ステップ3:確認とテスト

  • Podのデプロイ: 対象のネームスペースとサービスアカウントでPodをデプロイし、ACRからプライベートイメージをプルできることを確認
  • ログの確認: 必要に応じて、関連するPodやコンポーネントのログを確認し、エラーがないことを確認

4.まとめ

aliyun-acr-credential-helperを利用することで、Kubernetes環境でのイメージプル時の認証管理が簡素化され、セキュリティと運用効率が向上します。特に、シークレットレスを使用することで、運用負荷をさらに軽減できます。

Discussion