すべてのプロダクト
Search
ドキュメントセンター

CloudOps Orchestration Service:Alibaba Cloud CLI で実行される Cloud Assistant スクリプトで暗号化パラメーターを使用してパスワードを管理する

最終更新日:Jan 17, 2025

背景情報

Cloud Assistant スクリプトを作成し、1 つ以上の Elastic Compute Service (ECS) インスタンスでスクリプトを実行する場合、パスワードが必要です。スクリプトをプレーンテキストで記述すると、パスワードが漏洩する可能性があります。Key Management Service (KMS) を使用してパスワードを暗号化する場合、スクリプトで暗号化された値を維持する必要があります。

この問題を解決するために、CloudOps Orchestration Service (OOS) はよりシンプルなソリューションを提供します。パラメーターストア で暗号化パラメーターを作成してパスワードを維持し、Cloud Assistant スクリプトで暗号化パラメーターを使用できます。このソリューションには、次の利点があります。

  1. 暗号化パラメーターでパスワードを維持することによって、パスワードの漏洩を防ぐことができます。

  2. スクリプトでプレーンテキストパスワードまたは暗号化されたパスワード値を維持する必要はありません。スクリプトで参照される暗号化パラメーターの名前を指定するだけで済みます。

  3. パスワードが変更された場合、Cloud Assistant スクリプトまたは OOS テンプレートを変更することなく、対応する暗号化パラメーターのみを更新できます。

重要

前提条件

  1. スクリプトを実行する ECS インスタンスに Alibaba Cloud CLI がインストールされていること。ECS インスタンスにインストールされている Alibaba Cloud CLI が OOS の GetSecretParameter 操作をサポートしていない場合は、Alibaba Cloud CLI を最新バージョンにアップグレードしてください。詳細については、「Linux」をご参照ください。

  2. ECS インスタンスに jq プロセッサがインストールされていること。こちらをクリックして jq をダウンロードします。

  3. 必要な Resource Access Management (RAM) ロールが ECS インスタンスにアタッチされていること。RAM ロールには、OOS の GetSecretParameter 操作と KMS の GetSecretValue 操作を呼び出す権限が付与されている必要があります。

手順

手順 1: 暗号化パラメーターを作成する

パラメータストア の OOS コンソールで、または Alibaba Cloud CLI を使用して、暗号化パラメータを作成できます。

  1. OOS コンソールのパラメーターストアで暗号化パラメーターを作成する

    暗号化パラメーターを作成するには、次の手順を実行します。

    OOS コンソールにログインします。左側のナビゲーションウィンドウで、[パラメーターストア] をクリックします。[パラメーターストア] ページで、[暗号化パラメーター] タブをクリックします。暗号化パラメーターを管理するKMSキー ID付録 1:KMS キーを作成するimage タブで、 をクリックします。詳細については、「暗号化パラメーターを管理する」をご参照ください。カスタムキーを使用する場合は、 ドロップダウンリストからカスタマーマスターキー (CMK) の ID を選択します。KMS キーの作成方法の詳細については、このトピックの「付録 1: KMS キーを作成する」セクションを参照してください。

  2. Alibaba Cloud CLI を使用して暗号化パラメーターを作成する

    次のサンプルスクリプトは例を示しています。

    aliyun oos CreateSecretParameter --Name mysql-password --Description "データベースパスワードの暗号化パラメーター" -- Value "SecretMySQLPassword" -- RegionId cn-hangzhou

手順 2: Cloud Assistant スクリプトで暗号化パラメーターを使用する

  1. RunCommand 操作で、Alibaba Cloud CLIjq を使用して、スクリプトから暗号化パラメーターの値を取得します。

    1. Linux に Alibaba Cloud CLI をインストールする。ECS インスタンスにインストールされている Alibaba Cloud CLI が OOS の GetSecretParameter 操作をサポートしていない場合は、Alibaba Cloud CLI を最新バージョンにアップグレードしてください。

    2. jq をインストールします。

    3. ECS インスタンスにインストールされた Alibaba Cloud CLI 上で RAM ロールとしてスクリプトを実行することをお勧めします。 ECS インスタンスの RAM ロールの構成方法の詳細については、このトピックの付録 2 をご参照ください。

    4. 暗号化パラメーターの値を使用して、スクリプトで他の操作を実行します。

    重要

    暗号化データの漏洩を防ぐために、スクリプトに暗号化パラメーターの値を表示するコードを記述しないでください。

  2. 次のサンプルスクリプトを使用します。

# パラメーターストアから暗号化パラメーターの mysql-password の値を取得し、db_password 変数に格納します。
db_password=`aliyun oos GetSecretParameter --Name mysql-password --WithDecryption true --mode EcsRamRole --ram-role-name secret-parameter-instance-role --region cn-hangzhou |jq .Parameter.Value -r`

# db_password 変数を使用して後続の操作を実行します。たとえば、本番データベースを作成できます。
mysql -u$db_user -p$db_password -e "create database database;"

OOS の[バッチインスタンス操作] 機能を使用して、上記のスクリプトを実行します。

image

付録 1: KMS キーを作成する

  1. KMS コンソール にログインします。

  2. ページの左上隅で、KMS キーを作成するリージョンを選択します。

  3. 左側のナビゲーションウィンドウで、[キー] をクリックします。表示されるページで、[キーの作成] をクリックします。

    image

  4. CMK を作成します。詳細については、「CMK を作成する」をご参照ください。

付録 2: RAM ロールを作成し、ECS インスタンスにアタッチする

  1. RAM コンソール にログインします。

  2. 左側のナビゲーションウィンドウで、[権限] > 権限ポリシーポリシーの作成 を選択します。 ページで、 をクリックします。

  3. [ポリシーの作成] ページで、[JSON] タブをクリックします。ポリシーエディターに次のサンプルコードを入力して、最小限の権限を付与するポリシーを作成し、[OK] をクリックします。

    {
        "Version": "1",
        "Statement": [
            {
                "Action": [
                    "kms:GetSecretValue"
                ],
                "Resource": "*",
                "Effect": "Allow"
            },
            {
                "Action": [
                    "oos:GetSecretParameter"
                ],
                "Effect": "Allow",
                "Resource": "*"
            }
        ]
    }
  4. ポリシーが作成された後、左側のナビゲーションウィンドウで [ID] > [ロール] を選択します。[ロール] ページで、[ロールの作成] をクリックします。[RAM ロールの作成] ページで、信頼できるエンティティとして Alibaba Cloud サービスを選択し、[次へ] をクリックします。

  5. ロール名を入力し、信頼できるサービスとして [Elastic Compute Service] を選択します。

  6. RAM ロールが作成されたら、RAM ロールに権限を追加する をクリックします。

  7. [ポリシーの選択] セクションで、[カスタムポリシー] をクリックします。手順 3 で作成したポリシーを選択し、カスタム ポリシー をクリックします。

  8. 1 つ以上の ECS インスタンスに RAM ロールをアタッチします。

    1. ECS インスタンスに RAM ロールを割り当てるには、ECS コンソールにログインし、ECS インスタンスを見つけ、[アクション] 列で [その他] > [インスタンス設定] > [RAM ロールの割り当て/割り当て解除] を選択します。[RAM ロールの割り当て/割り当て解除] ダイアログボックスで、[アクション] に [割り当て] を選択し、手順 6 で作成した RAM ロールを選択して、[OK] をクリックします。

    2. 複数の ECS インスタンスに RAM ロールをアタッチするには、ACS-ECS-BulkyAttachInstanceRamRole テンプレート で RAM ロールと ECS インスタンスを指定します。