Parameter Store でのパラメータポリシーの割り当て - AWS Systems Manager

Parameter Store でのパラメータポリシーの割り当て

パラメータポリシーを使用すると、有効期限終了日または有効期限などの特定の条件をパラメータに割り当てることができ、増え続けるパラメータのセットを管理できます。パラメータポリシーは、AWS Systems Manager の一機能である Parameter Store に保存されたパスワードと設定データを強制的に更新または削除するのに役立ちます。Parameter Store には、ExpirationExpirationNotificationNoChangeNotification というタイプのポリシーがあります。

注記

パスワードローテーションのライフサイクルを実装するには、 を使用しますAWS Secrets Manager Secrets Manager を使用すると、データベースの認証情報、API キー、その他のシークレットをそのライフサイクルを通してローテーション、管理、取得できます。詳細については、AWS Secrets Managerユーザーガイドの「AWS Secrets Manager とは」を参照してください。

Parameter Store は、非同期の定期的なスキャンを使用してパラメータポリシーを適用します。ポリシーを作成したら、追加のアクションを実行する必要はありません。Parameter Store は指定した条件に基づいて、ポリシーで定義されたアクションを個別に実行します。

注記

パラメータポリシーは、高度なパラメータ階層を使用するパラメータに利用できます。詳細については、「」を参照してくださいパラメータ層の管理

パラメータポリシーは、次の表に示すように、JSON 配列です。新しいアドバンストパラメータを作成するときにポリシーを割り当てることも、パラメータを更新することでポリシーを適用することもできます。以下のタイプのパラメータポリシーが Parameter Store でサポートされています。

ポリシー 詳細

有効期限

このポリシーは、パラメータを削除します。ISO_INSTANT または ISO_OFFSET_DATE_TIME のいずれかの形式を使用して、特定の日時を指定できます。パラメータを削除するタイミングを変更する場合は、ポリシーを更新します。パラメータを更新しても、アタッチされているポリシーの有効期限日または時刻には影響しません。有効期限日または時刻に達すると、Parameter Store はパラメータを削除します。

注記

この例では、ISO_INSTANT 形式を使用しています。ISO_OFFSET_DATE_TIME 形式を使用して、日時を指定することもできます。たとえば、2019-11-01T22:13:48.87+10:30:00 と指定します。

{ "Type": "Expiration", "Version": "1.0", "Attributes": { "Timestamp": "2018-12-02T21:34:33.000Z" } }

ExpirationNotification

このポリシーは、有効期限を通知するイベントを Amazon EventBridge (EventBridge) で開始します。このポリシーを使用することで、有効期限に達する前に日数または時間単位で通知を受け取ることができます。

{ "Type": "ExpirationNotification", "Version": "1.0", "Attributes": { "Before": "15", "Unit": "Days" } }

NoChangeNotification

このポリシーは、指定された期間内にパラメータが変更されていない場合、EventBridge でイベントを開始します。このポリシータイプが役立つのは、たとえば、ある期間内にパスワードを変更する必要がある場合です。

このポリシーでは、パラメータの LastModifiedTime 属性を読み取ることで、通知を送信するタイミングを決定します。パラメータを変更または編集した場合、システムは LastModifiedTime の新しい値に基づいて通知する期間をリセットします。

{ "Type": "NoChangeNotification", "Version": "1.0", "Attributes": { "After": "20", "Unit": "Days" } }

複数のポリシーをパラメータに割り当てることもできます。例えば、Expiration および ExpirationNotification のポリシーを割り当て、システムが EventBridge イベントを開始して、パラメータが間もなく削除される通知を受け取ることができます。最大 10 個のポリシーをパラメータに割り当てることができます。

以下の例では、SecureString という名前の新しい ProdDB3 パラメータに 4 つのポリシーを割り当てる PutParameter API リクエストのリクエスト構文を示しています。

{ "Name": "ProdDB3", "Description": "Parameter with policies", "Value": "P@ssW*rd21", "Type": "SecureString", "Overwrite": "True", "Policies": [ { "Type": "Expiration", "Version": "1.0", "Attributes": { "Timestamp": "2018-12-02T21:34:33.000Z" } }, { "Type": "ExpirationNotification", "Version": "1.0", "Attributes": { "Before": "30", "Unit": "Days" } }, { "Type": "ExpirationNotification", "Version": "1.0", "Attributes": { "Before": "15", "Unit": "Days" } }, { "Type": "NoChangeNotification", "Version": "1.0", "Attributes": { "After": "20", "Unit": "Days" } } ] }

既存のパラメータにポリシーを追加する

このセクションには、AWS Systems Manager コンソール、AWS Command Line Interface (AWS CLI)、AWS Tools for Windows PowerShell を使用して既存のパラメータにポリシーを追加する方法についての情報が含まれています。ポリシーが含まれている新しいパラメータの作成方法については、「Systems Manager での Parameter Store パラメータの作成」を参照してください。

コンソールを使用して既存のパラメータにポリシーを追加する

以下の手順に従って、Systems Manager コンソールを使用して既存のパラメータにポリシーを追加します。

既存のパラメータにポリシーを追加するには
  1. AWS Systems Manager コンソール (https://console.aws.amazon.com/systems-manager/) を開きます。

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

  3. ポリシーを含めるために更新するパラメータの横にあるオプションを選択し、[編集] を選択します。

  4. [Advanced] を選択します。

  5. (オプション) [Parameter policies (パラメータポリシー)] セクションで、[有効] を選択します。このパラメータには、有効期限と 1 つ以上の通知ポリシーを指定できます。

  6. [Save changes] を選択します。

重要
  • Parameter Store は、新しいポリシーでポリシーを上書きするか、ポリシーを削除するまでパラメータのポリシーを保持します。

  • 既存のパラメータからすべてのポリシーを削除するには、パラメータを編集し、次のように角括弧と中括弧 [{}] を使用して空のポリシーを適用します。

  • 既にポリシーが設定されているパラメータに新しいポリシーを追加すると、Systems Manager はそのパラメータにアタッチされているポリシーを上書きします。既存のポリシーが削除されます。すでに 1 つ以上のポリシーがあるパラメータに新しいポリシーを追加する場合は、元のポリシーをコピーして貼り付け、新しいポリシーを入力してから変更を保存します。

AWS CLI を使用して既存のパラメータにポリシーを追加する

以下の手順を使用して、既存のパラメータに AWS CLI を使用してポリシーを追加します。

既存のパラメータにポリシーを追加するには
  1. まだ AWS Command Line Interface (AWS CLI) をインストールして設定していない場合は、インストールして設定します。

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

  2. 次のコマンドを実行して、既存のパラメータにポリシーを追加します。各リソースプレースホルダーの例をユーザー自身の情報に置き換えます。

    Linux & macOS
    aws ssm put-parameter --name "parameter name" \ --value 'parameter value' \ --type parameter type \ --overwrite \ --policies "[{policies-enclosed-in-brackets-and-curly-braces}]"
    Windows
    aws ssm put-parameter --name "parameter name" ^ --value 'parameter value' ^ --type parameter type ^ --overwrite ^ --policies "[{policies-enclosed-in-brackets-and-curly-braces}]"

    以下に示しているのは、15 日後にパラメータを削除する有効期限ポリシーを含む例です。この例では、パラメータが削除される 5 日前に EventBridge イベントを生成する通知ポリシーも含まれます。最後に、60 日後にこのパラメータが変更されない場合のNoChangeNotification ポリシーが含まれます。この例では、パスワードに難読化された名前 (3l3vat3131)、および AWS Key Management Service AWS KMS key を使用しています。AWS KMS keys の詳細については、AWS Key Management Serviceデベロッパーガイドの「AWS Key Management Service の概念」を参照してください。

    Linux & macOS
    aws ssm put-parameter \ --name "/Finance/Payroll/3l3vat3131" \ --value "P@sSwW)rd" \ --type "SecureString" \ --overwrite \ --policies "[{\"Type\":\"Expiration\",\"Version\":\"1.0\",\"Attributes\":{\"Timestamp\":\"2020-05-13T00:00:00.000Z\"}},{\"Type\":\"ExpirationNotification\",\"Version\":\"1.0\",\"Attributes\":{\"Before\":\"5\",\"Unit\":\"Days\"}},{\"Type\":\"NoChangeNotification\",\"Version\":\"1.0\",\"Attributes\":{\"After\":\"60\",\"Unit\":\"Days\"}}]"
    Windows
    aws ssm put-parameter ^ --name "/Finance/Payroll/3l3vat3131" ^ --value "P@sSwW)rd" ^ --type "SecureString" ^ --overwrite ^ --policies "[{\"Type\":\"Expiration\",\"Version\":\"1.0\",\"Attributes\":{\"Timestamp\":\"2020-05-13T00:00:00.000Z\"}},{\"Type\":\"ExpirationNotification\",\"Version\":\"1.0\",\"Attributes\":{\"Before\":\"5\",\"Unit\":\"Days\"}},{\"Type\":\"NoChangeNotification\",\"Version\":\"1.0\",\"Attributes\":{\"After\":\"60\",\"Unit\":\"Days\"}}]"
  3. パラメータの詳細を確認するには、以下のコマンドを実行します。parameter name を自分の情報に置き換えます。

    Linux & macOS
    aws ssm describe-parameters \ --parameter-filters "Key=Name,Values=parameter name"
    Windows
    aws ssm describe-parameters ^ --parameter-filters "Key=Name,Values=parameter name"
重要
  • Parameter Store では、新しいポリシーでポリシーを上書きするまで、またはポリシーを削除するまでパラメータのポリシーが保持されます。

  • 既存のパラメータからすべてのポリシーを削除するには、パラメータを編集し、空の角括弧と中括弧のポリシーを適用します。各リソースプレースホルダーの例をユーザー自身の情報に置き換えます。例:

    Linux & macOS
    aws ssm put-parameter \ --name parameter name \ --type parameter type \ --value 'parameter value' \ --policies "[{}]"
    Windows
    aws ssm put-parameter ^ --name parameter name ^ --type parameter type ^ --value 'parameter value' ^ --policies "[{}]"
  • 既にポリシーが設定されているパラメータに新しいポリシーを追加すると、Systems Manager はそのパラメータにアタッチされているポリシーを上書きします。既存のポリシーが削除されます。すでに 1 つ以上のポリシーがあるパラメータに新しいポリシーを追加する場合は、元のポリシーをコピーして貼り付け、新しいポリシーを入力してから変更を保存します。

既存のパラメータにポリシーを追加する (Tools for Windows PowerShell)

Tools for Windows PowerShell を使用して既存のパラメータにポリシーを追加するには、次の手順に従います。各リソースプレースホルダーの例をユーザー自身の情報に置き換えます。

既存のパラメータにポリシーを追加するには
  1. Tools for Windows PowerShell を開き、次のコマンドを実行して認証情報を指定します。Amazon Elastic Compute Cloud (Amazon EC2) で管理者権限を持っているか、AWS Identity and Access Management (IAM) で適切なアクセス許可が付与されている必要があります。

    Set-AWSCredentials ` –AccessKey access-key-name ` –SecretKey secret-key-name
  2. 次のコマンドを実行して、PowerShell セッションのリージョンを設定します。この例では、米国東部 (オハイオ) リージョン (us-east-2) を使用しています。

    Set-DefaultAWSRegion ` -Region us-east-2
  3. 次のコマンドを実行して、既存のパラメータにポリシーを追加します。各リソースプレースホルダーの例をユーザー自身の情報に置き換えます。

    Write-SSMParameter ` -Name "parameter name" ` -Value "parameter value" ` -Type "parameter type" ` -Policies "[{policies-enclosed-in-brackets-and-curly-braces}]" ` -Overwrite

    以下に示しているのは、2020 年 5 月 13 日深夜 0 時 (GMT) にパラメータを削除する有効期限ポリシーを含む例です。この例では、パラメータが削除される 5 日前に EventBridge イベントを生成する通知ポリシーも含まれます。最後に、60 日後にこのパラメータが変更されない場合のNoChangeNotification ポリシーが含まれます。この例では、パスワードに難読化された名前 (3l3vat3131)、および AWS マネージドキー を使用しています。

    Write-SSMParameter ` -Name "/Finance/Payroll/3l3vat3131" ` -Value "P@sSwW)rd" ` -Type "SecureString" ` -Policies "[{\"Type\":\"Expiration\",\"Version\":\"1.0\",\"Attributes\":{\"Timestamp\":\"2018-05-13T00:00:00.000Z\"}},{\"Type\":\"ExpirationNotification\",\"Version\":\"1.0\",\"Attributes\":{\"Before\":\"5\",\"Unit\":\"Days\"}},{\"Type\":\"NoChangeNotification\",\"Version\":\"1.0\",\"Attributes\":{\"After\":\"60\",\"Unit\":\"Days\"}}]" ` -Overwrite
  4. パラメータの詳細を確認するには、以下のコマンドを実行します。parameter name を自分の情報に置き換えます。

    (Get-SSMParameterValue -Name "parameter name").Parameters
重要
  • Parameter Store は、新しいポリシーでポリシーを上書きするか、ポリシーを削除するまでパラメータのポリシーを保持します。

  • 既存のパラメータからすべてのポリシーを削除するには、パラメータを編集し、空の角括弧と中括弧のポリシーを適用します。以下に例を示します。

    Write-SSMParameter ` -Name "parameter name" ` -Value "parameter value" ` -Type "parameter type" ` -Policies "[{}]"
  • 既にポリシーが設定されているパラメータに新しいポリシーを追加すると、Systems Manager はそのパラメータにアタッチされているポリシーを上書きします。既存のポリシーが削除されます。すでに 1 つ以上のポリシーがあるパラメータに新しいポリシーを追加する場合は、元のポリシーをコピーして貼り付け、新しいポリシーを入力してから変更を保存します。