AWS Systems Manager Parameter Store - AWS Systems Manager

AWS Systems Manager Parameter Store

AWS Systems Manager の一機能である Parameter Store は、設定データ管理と機密管理のための安全な階層型ストレージを提供します。パスワード、データベース文字列、Amazon Machine Image (AMI) ID、ライセンスコードなどのデータをパラメータ値として保存することができます。値はプレーンテキストまたは暗号化されたデータとして保存できます。パラメータの作成時に指定した一意の名前を使用して、スクリプト、コマンド、SSM ドキュメント、設定およびオートメーションワークフローの Systems Manager パラメータを参照できます。

Parameter Store も、Secrets Manager と統合されています。Parameter Store パラメータへの参照を既にサポートしている他の AWS のサービスを使用する際に、Secrets Manager のシークレットを取得できます。詳細については、「」を参照してくださいParameter Store パラメータから AWS Secrets Manager シークレットを参照する

注記

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

Parameter Store が組織にもたらす利点は何ですか?

Parameter Store には、次の利点があります。

  • セキュアでスケーラブルな、ホストされたシークレット管理サービスを使用します (管理が必要なサーバーはありません)。

  • コードからデータを分離してセキュリティ体制を改善します。

  • 設定データと暗号化された文字列を階層内に保存し、バージョンを追跡します。

  • きめ細かいレベルでアクセスの制御と監査を行います。

Parameter Store はどのようなユーザーに適していますか?

  • 設定データを一元的に管理したいすべての AWS のお客様。

  • さまざまなログインや参照ストリームを保存したいソフトウェアデベロッパー。

  • シークレットとパスワードが変更された場合、または変更されない場合に通知を受信する管理者。

Parameter Store の特徴は何ですか?

  • 変更通知

    パラメータとパラメータポリシーの両方について、変更通知を設定し、自動化されたアクションを呼び出すことができます。詳細については、「」を参照してくださいParameter Store イベントに基づき、通知の設定やアクションのトリガーを行う

  • アクセスの整理と制御

    パラメータに個別にタグを付けると、そのタグに基づいてパラメータを識別できます。たとえば、特定の環境、部門、ユーザー、グループ、または期間でパラメータをタグ付けできます。ユーザーやグループがアクセスできるタグを指定する AWS Identity and Access Management (IAM) ポリシーを作成することで、パラメータへのアクセスを制限することもできます。詳細については、「」を参照してくださいSystems Manager パラメータにタグをつける

  • ラベルのバージョン

    ラベルを作成することで、パラメータのバージョンにエイリアスを関連付けることができます。ラベルは、バージョンが複数ある場合にパラメータバージョンの用途を覚えておくのに役立ちます。

  • データ検証

    Amazon Elastic Compute Cloud (Amazon EC2) インスタンスを指すパラメータを作成すると、Parameter Store がこれらのパラメータを検証して、期待されるリソースタイプを参照していること、リソースが存在すること、および顧客にリソースを使用するアクセス許可があることを確認します。例えば、aws:ec2:image データ型の値として Amazon Machine Image (AMI) ID を持つパラメータを作成すると、Parameter Store で非同期検証オペレーションが実行され、パラメータ値が AMI ID の書式設定要件を満たし、指定された AMI が AWS アカウント で使用可能であることが確認されます。

  • シークレットの参照

    Parameter Store は AWS Secrets Manager と統合されているため、Parameter Store パラメータへの参照を既にサポートしている他の AWS のサービスを使用する際に、Secrets Manager のシークレットを取得できます。

  • 他の AWS サービスからアクセス可能

    Parameter Store パラメータを他の Systems Manager 機能および AWS のサービスと共に使用して、中央のストアからシークレットおよび設定データを取得できます。パラメータは、 の機能である Run Command、 Automation 、ステートマネージャーなどの Systems Manager 機能で動作しますAWS Systems Manager また、次のような他の多くの AWS サービスでパラメータを参照することもできます。

    • Amazon Elastic Compute Cloud (Amazon EC2)

    • Amazon Elastic Container Service (Amazon ECS)

    • AWS Secrets Manager

    • AWS Lambda

    • AWS CloudFormation

    • AWS CodeBuild

    • AWS CodePipeline

    • AWS CodeDeploy

  • 他の AWS サービスとの統合

    暗号化、通知、モニタリング、監査のために、以下の AWS のサービスとの統合を設定します。

パラメータとは何ですか?

Parameter Store パラメータとは、テキストのブロック、名前のリスト、パスワード、AMI ID、ライセンスキーなど、Parameter Store に保存されるデータのことです。スクリプト、コマンド、SSM ドキュメントで、このデータを一元的かつ安全に参照できます。

パラメータを参照するときは、以下の規則を使用してパラメータ名を指定します。

{{ssm:parameter-name}}

注記

パラメータは、他のパラメータの値で参照またはネストすることはできません。パラメータ値に {{}} または {{ssm:parameter-name}} を含めることはできません。

Parameter Store では、StringStringListSecureString という 3 タイプのパラメータがサポートされています。

1 つの例外を除いて、パラメータを作成または更新するときは、パラメータ値をプレーンテキストとして入力します。入力したテキストは Parameter Store によって検証されません。ただし、String パラメータの場合、データ型を aws:ec2:image として指定できます。Parameter Store によって、入力した値が Amazon EC2 AMI の適切な形式 (ami-12345abcdeEXAMPLE など) であることが検証されます。

文字列

デフォルトでは、String パラメータは、入力したテキストのブロックで構成されます。以下に例を示します。

  • abc123

  • Example Corp

  • <img src="images/bannerImage1.png"/>

StringList

StringList パラメータには、以下の例に示すように、値のカンマ区切りリストを含めます。

Monday,Wednesday,Friday

CSV,TSV,CLF,ELF,JSON

SecureString

SecureString パラメータは、セキュアな方法で保存および参照する必要がある機密データです。パスワードやライセンスキーなど、ユーザーがプレーンテキストで変更または参照しないデータがある場合は、SecureString データ型を使用してこれらのパラメータを作成します。

重要

String パラメータまたは StringList パラメータに機密データを保存しないでください。機密データを暗号化したままにする場合は、SecureString パラメータタイプのみを使用します。

詳細については、「」を参照してくださいSecureString パラメータを作成する (AWS CLI)

次のシナリオでは SecureString パラメータを使用することをお勧めします。

  • コマンド、関数、エージェントログ、または CloudTrail ログに値をプレーンテキストとして公開せずに、すべての AWS のサービスでデータ/パラメータを使用する。

  • 機密データへのユーザーのアクセスを制御する。

  • 機密データへのアクセスを監査する (CloudTrail)。

  • 機密データの暗号化と独自の暗号化キーがアクセスの管理に必要である。

重要

SecureString パラメータののみが暗号化されます。パラメータ名、説明などのプロパティは暗号化されません。

SecureString パラメータタイプは、パスワード、アプリケーションシークレット、機密設定データ、保護するその他のタイプのデータなど、暗号化するテキストデータに使用できます。SecureString データは、AWS KMS キーを使用して暗号化および復号されます。AWS が提供するデフォルトの KMS キーを使用するか、独自の AWS KMS key を作成して使用することができます。(SecureString パラメータへのユーザーアクセスを制限する場合は自分の AWS KMS key を使用してください。 詳細については、「AWS のデフォルトキーとカスタマーマネージドキーを使用するための IAM アクセス権限」を参照してください。)

他の SecureString サービスと AWS パラメータを使用することもできます。次の例では、GetParameters API を使用して Lambda 関数で SecureString パラメータを取得します。

from __future__ import print_function import json import boto3 ssm = boto3.client('ssm', 'us-east-2') def get_parameters(): response = ssm.get_parameters( Names=['LambdaSecureString'],WithDecryption=True ) for parameter in response['Parameters']: return parameter['Value'] def lambda_handler(event, context): value = get_parameters() print("value1 = " + value) return value # Echo back the first key value

AWS KMS の暗号化と料金

パラメータを作成するときに SecureString パラメータ型を選択すると、Systems Manager は AWS KMS を使用してパラメータ値を暗号化します。

重要

Parameter Store は、対称 KMS キーのみをサポートします。非対称 KMS キーを使用してパラメータを暗号化することはできません。KMS キーが対称か非対称かを判断する方法については、AWS Key Management Service デベロッパーガイドの「対称キーと非対称 KMS キーの識別」を参照してください。

Parameter Store では、SecureString パラメータの作成には料金はかかりませんが、AWS KMS 暗号化の使用には料金がかかります。詳細については、「AWS Key Management Service の料金表」を参照してください。

AWS 管理のキーとカスタマー管理のキーの詳細については、AWS Key Management Service デベロッパーガイドの「AWS Key Management Service の概念」を参照してください。Parameter Store と AWS KMS 暗号化の詳細については、「AWS Systems Manager Parameter Store の AWS KMS 使用方法」を参照してください。

注記

AWS マネージドキーを表示するには、AWS KMS DescribeKey オペレーションを使用します。この AWS Command Line Interface (AWS CLI) の例では、DescribeKey を使用して AWS マネージドキーを表示します。

aws kms describe-key --key-id alias/aws/ssm

関連トピック

SecureString パラメータの作成方法と使用方法の例については、「SecureString パラメータを作成し、インスタンスをドメイン (PowerShell) に結合する」を参照してください。他の AWS のサービスで Systems Manager パラメータを使用する方法の詳細については、次のブログ記事を参照してください。