Parameter Store でのパラメータラベルの操作 - AWS Systems Manager

Parameter Store でのパラメータラベルの操作

パラメータラベルは、ユーザー定義のエイリアスであり、異なるバージョンのパラメータの管理に役立ちます。パラメータを変更すると、AWS Systems Manager は自動的に新しいバージョンを保存し、そのバージョン番号を 1 つ増やします。ラベルは、バージョンが複数ある場合にパラメータバージョンの用途を覚えておくのに役立ちます。

例えば、/MyApp/DB/ConnectionString というパラメータがあるとします。このパラメータの値は、テスト環境のローカルデータベースでの MySQL サーバーへの接続文字列です。アプリケーションの更新が完了したら、そのパラメータでプロダクションデータベースへの接続文字列を使用します。/MyApp/DB/ConnectionString の値を変更します。Systems Manager は、新しい接続文字列でバージョン 2 を自動的に作成します。各バージョンの用途がすぐ思い出せるように、各パラメータにラベルをアタッチします。バージョン 1 にラベル Test をアタッチし、バージョン 2 にラベル Production をアタッチします。

パラメータのラベルは同じパラメータの別のバージョンに移動できます。例えば、新しい本稼働データベース用の接続文字列を使用して /MyApp/DB/ConnectionString パラメータのバージョン 3 を作成した場合、Production ラベルをパラメータのバージョン 2 からバージョン 3 に移動できます。

パラメータラベルは、パラメータタグの軽量の代替です。組織によっては、さまざまな AWS リソースに適用される必要があるタグに対する厳格なガイドラインが存在することがあります。一方、ラベルはパラメータの特定のバージョンに対するテキストの関連付けにすぎません。

タグと同様に、ラベルを使用してパラメータをクエリできます。GetParametersByPath API オペレーションを使用してパラメータセットをクエリする場合に、同じラベルを使用している特定のパラメータバージョンのリストを表示できます (このセクションで後述しています)。

注記

存在しないパラメータのバージョンを指定するコマンドを実行すると、コマンドは失敗します。パラメータの最新値やデフォルト値にはフォールバックしません。

ラベルの要件と制約

パラメータラベルには以下の要件と制約があります。

  • 1 つのパラメータの 1 つのバージョンにアタッチできるラベルは最大 10 個です。

  • 同じパラメータの別のバージョンに同じラベルをアタッチすることはできません。例えば、パラメータのバージョン 1 にラベル Production がアタッチされている場合、バージョン 2 にラベル Production をアタッチすることはできません。

  • パラメータのラベルは同じパラメータの別のバージョンに移動できます。

  • パラメータの作成時にラベルを作成することはできません。ラベルはパラメータの特定のバージョンにアタッチする必要があります。

  • パラメータラベルが不要になった場合は、そのラベルをパラメータの別のバージョンに移動したり、削除したりできます。

  • ラベルに使用できるのは最大 100 文字です。

  • ラベルでは英字 (大文字と小文字が区別される)、数字、ピリオド (.)、ハイフン (-)、アンダースコア (_) を使用できます。

  • 数字、「aws」または「ssm」(大文字と小文字は区別されない) で始まるラベルは使用できません。ラベルが上記の要件を満たしていない場合、そのラベルはパラメータバージョンにアタッチされず、そのラベルはシステムによって InvalidLabels のリストに表示されます。

コンソールを使用したパラメータラベルの操作

このセクションでは、Systems Manager コンソールを使用して以下のタスクを実行する方法について説明します。

コンソールを使用してパラメータラベルを作成する

次の手順では、Systems Manager コンソールを使用して、既存のパラメータの特定のバージョンにラベルをアタッチする方法について説明します。新しいパラメータの作成時にラベルをアタッチすることはできません。

パラメータバージョンにラベルをアタッチするには
  1. AWS Systems Manager コンソール (https://console.aws.amazon.com/systems-manager/) を開きます。

  2. ナビゲーションペインで、[Parameter Store] を選択します。

  3. パラメータの名前を選択して、そのパラメータ詳細ページを開きます。

  4. [History] タブを選択します。

  5. ラベルをアタッチするパラメータバージョンを選択します。

  6. [Manage labels] (ラベルを管理) を選択します。

  7. [Add new label] (新しいラベルを追加) を選択します。

  8. テキストボックスにラベル名を入力します。ラベルを追加するには、[Add new label] (新しいラベルを追加) を選択します。1 つのバージョンに最大 10 個のラベルをアタッチできます。

  9. 完了したら、[変更の保存] を選択します。

コンソールを使用してパラメータにアタッチされているラベルを表示する

1 つのパラメータバージョンにアタッチできるラベルは最大 10 個です。次の手順では、Systems Manager コンソールを使用して、1 つのパラメータバージョンにアタッチされているすべてのラベルを表示する方法について説明します。

パラメータバージョンにアタッチされているラベルを表示するには
  1. AWS Systems Manager コンソール (https://console.aws.amazon.com/systems-manager/) を開きます。

  2. ナビゲーションペインで、[Parameter Store] を選択します。

  3. パラメータの名前を選択して、そのパラメータ詳細ページを開きます。

  4. [History] タブを選択します。

  5. アタッチされているすべてのラベルを表示するパラメータバージョンを見つけます。そのパラメータバージョンにアタッチされているすべてのラベルが [Labels (ラベル)] 列に表示されます。

コンソールを使用してパラメータラベルを移動する

次の手順では、Systems Manager コンソールを使用して、パラメータラベルを同じパラメータの別のバージョンに移動する方法について説明します。

ラベルを別のパラメータバージョンに移動するには
  1. AWS Systems Manager コンソール (https://console.aws.amazon.com/systems-manager/) を開きます。

  2. ナビゲーションペインで、[Parameter Store] を選択します。

  3. パラメータの名前を選択して、そのパラメータ詳細ページを開きます。

  4. [History] タブを選択します。

  5. ラベルを移動するパラメータバージョンを選択します。

  6. [Manage labels] (ラベルを管理) を選択します。

  7. [Add new label] (新しいラベルを追加) を選択します。

  8. テキストボックスにラベル名を入力します。

  9. 完了したら、[変更の保存] を選択します。

コンソールを使用してパラメータラベルを削除する

次の手順では、Systems Manager コンソールを使用して 1 つまたは複数のパラメータラベルを削除する方法について説明します。

パラメータからラベルを削除するには
  1. AWS Systems Manager コンソール (https://console.aws.amazon.com/systems-manager/) を開きます。

  2. ナビゲーションペインで、[Parameter Store] を選択します。

  3. パラメータの名前を選択して、そのパラメータ詳細ページを開きます。

  4. [History] タブを選択します。

  5. ラベルを削除するパラメータバージョンを選択します。

  6. [Manage labels] (ラベルを管理) を選択します。

  7. 削除する各ラベルの横にある [Remove] (削除) を選択します。

  8. 完了したら、[変更の保存] を選択します。

  9. 変更が正しいことを確認し、テキストボックスに Confirm と入力し、[Confirm] (確認) を選択します。

AWS CLI を使用したパラメータラベルの操作

このセクションでは、AWS Command Line Interface (AWS CLI) を使用して以下のタスクを実行する方法について説明します。

AWS CLI を使用してパラメータラベルを作成する

次の手順では、AWS CLI を使用して、既存のパラメータの特定のバージョンにラベルをアタッチする方法について説明します。新しいパラメータの作成時にラベルをアタッチすることはできません。

パラメータラベルを作成するには
  1. まだ AWS Command Line Interface (AWS CLI) をインストールして設定していない場合は、インストールして設定します。

    詳細については、「AWS CLI の最新バージョンをインストールまたは更新します。」を参照してください。

  2. 次のコマンドを実行すると、ラベルをアタッチするためのアクセス許可があるパラメータのリストが表示されます。

    注記

    パラメータは、パラメータを作成した AWS リージョン でのみ使用できます。ラベルをアタッチするパラメータが表示されていない場合は、リージョンが正しいかどうかを確認します。

    aws ssm describe-parameters

    ラベルをアタッチするパラメータの名前をメモします。

  3. パラメータのすべてのバージョンを確認するには、次のコマンドを実行します。

    aws ssm get-parameter-history --name "parameter-name"

    ラベルをアタッチするパラメータバージョンをメモします。

  4. 次のコマンドを実行して、パラメータに関する情報をバージョン番号別に取得します。

    aws ssm get-parameters --names "parameter-name:version-number"

    以下はその例です。

    aws ssm get-parameters --names "/Production/SQLConnectionString:3"
  5. 以下のいずれかのコマンドを実行して、1 つのパラメータの 1 つのバージョンにラベルをアタッチします。複数のラベルをアタッチする場合は、ラベル名をスペースで区切ります。

    パラメータの最新バージョンにラベルをアタッチする

    aws ssm label-parameter-version --name parameter-name --labels label-name

    パラメータの特定のバージョンにラベルをアタッチする

    aws ssm label-parameter-version --name parameter-name --parameter-version version-number --labels label-name

    次に例を示します。

    aws ssm label-parameter-version --name /config/endpoint --labels production east-region finance
    aws ssm label-parameter-version --name /config/endpoint --parameter-version 3 --labels MySQL-test
    注記

    作成したラベルが InvalidLabels リストに表示されている場合、そのラベルはこのトピックで前述した要件を満たしていません。要件を確認してからもう一度試してください。InvalidLabels リストが空であれば、パラメータのバージョンにラベルが正常に適用されています。

  6. バージョン番号またはラベル名を使用することによって、パラメータの詳細を表示できます。前の手順で作成したラベルを指定して、次のコマンドを実行します。

    aws ssm get-parameter --name parameter-name:label-name --with-decryption

    このコマンドによって以下のような情報が返されます。

    {
        "Parameter": {
            "Version": version-number, 
            "Type": "parameter-type", 
            "Name": "parameter-name", 
            "Value": "parameter-value", 
            "Selector": ":label-name"
        }
    }
    注記

    出力にある Selector は、Name 入力フィールドで指定したバージョン番号またはラベル名です。

AWS CLI を使用してパラメータのラベルを表示する

GetParameterHistory API オペレーションを使用して、指定したパラメータの完全な履歴とアタッチされているすべてのラベルを表示できます。または、GetParametersByPath API オペレーションを使用して、特定のラベルが割り当てられているすべてのパラメータのリストを表示できます。

GetParameterHistory API オペレーションを使用してパラメータのラベルを表示するには
  1. 次のコマンドを実行すると、ラベルを表示できるパラメータのリストが表示されます。

    注記

    パラメータは、パラメータを作成したリージョンでのみ使用できます。ラベルを表示するパラメータが表示されていない場合は、リージョンが正しいかどうかを確認します。

    aws ssm describe-parameters

    ラベルを表示するパラメータの名前を書き留めます。

  2. パラメータのすべてのバージョンを確認するには、次のコマンドを実行します。

    aws ssm get-parameter-history --name parameter-name --with-decryption

    システムが以下のような情報をレスポンスします。

    {
        "Parameters": [
            {
                "Name": "/Config/endpoint", 
                "LastModifiedDate": 1528932105.382, 
                "Labels": [
                    "Deprecated"
                ], 
                "Value": "MyTestService-June-Release.example.com", 
                "Version": 1, 
                "LastModifiedUser": "arn:aws:iam::123456789012:user/test", 
                "Type": "String"
            }, 
            {
                "Name": "/Config/endpoint", 
                "LastModifiedDate": 1528932111.222, 
                "Labels": [
                    "Current"
                ], 
                "Value": "MyTestService-July-Release.example.com", 
                "Version": 2, 
                "LastModifiedUser": "arn:aws:iam::123456789012:user/test", 
                "Type": "String"
            }
        ]
    }

AWS CLI を使用してラベルが割り当てられているパラメータのリストを表示する

GetParametersByPath API オペレーションを使用して、特定のラベルが割り当てられている、パス内のすべてのパラメータのリストを表示できます。

次のコマンドを実行すると、特定のラベルが割り当てられている、パス内のパラメータのリストが表示されます。各リソースプレースホルダーの例をユーザー自身の情報に置き換えます。

aws ssm get-parameters-by-path \ --path parameter-path \ --parameter-filters Key=Label,Values=label-name,Option=Equals \ --max-results a-number \ --with-decryption --recursive

システムが以下のような情報をレスポンスします。次の例では、ユーザーが/Config パス内を検索していました。

{
    "Parameters": [
        {
            "Version": 3, 
            "Type": "SecureString", 
            "Name": "/Config/DBpwd", 
            "Value": "MyS@perGr&pass33"
        }, 
        {
            "Version": 2, 
            "Type": "String", 
            "Name": "/Config/DBusername", 
            "Value": "TestUserDB"
        }, 
        {
            "Version": 2, 
            "Type": "String", 
            "Name": "/Config/endpoint", 
            "Value": "MyTestService-July-Release.example.com"
        }
    ]
}

AWS CLI を使用してパラメータラベルを移動する

次の手順では、パラメータラベルを同じパラメータの別のバージョンに移動する方法について説明します。

パラメータラベルを移動するには
  1. パラメータのすべてのバージョンを確認するには、次のコマンドを実行します。parameter name を自分の情報に置き換えます。

    aws ssm get-parameter-history \ --name "parameter name"

    ラベルの移動先と移動元となるパラメータのバージョンを書き留めます。

  2. 既存のラベルを別のバージョンのパラメータに割り当てるには、次のコマンドを実行します。各リソースプレースホルダーの例をユーザー自身の情報に置き換えます。

    aws ssm label-parameter-version \ --name parameter name \ --parameter-version version number \ --labels name-of-existing-label
    注記

    既存のラベルをパラメータの最新バージョンに移動する場合は、上記のコマンドで --parameter-version を削除します。

AWS CLI を使用してパラメータラベルを削除する

次の手順では、AWS CLI を使用してパラメータラベルを削除する方法について説明します。

パラメータラベルを削除するには
  1. パラメータのすべてのバージョンを確認するには、次のコマンドを実行します。parameter name を自分の情報に置き換えます。

    aws ssm get-parameter-history \ --name "parameter name"

    システムが以下のような情報をレスポンスします。

    {
        "Parameters": [
            {
                "Name": "foo",
                "DataType": "text",
                "LastModifiedDate": 1607380761.11,
                "Labels": [
                    "l3",
                    "l2"
                ],
                "Value": "test",
                "Version": 1,
                "LastModifiedUser": "arn:aws:iam::123456789012:user/test",
                "Policies": [],
                "Tier": "Standard",
                "Type": "String"
            },
            {
                "Name": "foo",
                "DataType": "text",
                "LastModifiedDate": 1607380763.11,
                "Labels": [
                    "l1"
                ],
                "Value": "test",
                "Version": 2,
                "LastModifiedUser": "arn:aws:iam::123456789012:user/test",
                "Policies": [],
                "Tier": "Standard",
                "Type": "String"
            }
        ]
    }

    1 つまたは複数のラベルを削除するパラメータのバージョンを書き留めます。

  2. 次のコマンドを実行して、そのパラメータから選択したラベルを削除します。各リソースプレースホルダーの例をユーザー自身の情報に置き換えます。

    aws ssm unlabel-parameter-version \ --name parameter name \ --parameter-version version \ --labels label 1,label 2,label 3

    システムが以下のような情報をレスポンスします。

    {
        "InvalidLabels": ["invalid"], 
        "DeletedLabels" : ["Prod"]
     }