Systems Manager のセキュリティのベストプラクティス - AWS Systems Manager

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Systems Manager のセキュリティのベストプラクティス

AWS Systems Manager には、独自のセキュリティポリシーを開発および実装する際に考慮する必要のあるいくつかのセキュリティ機能が用意されています。以下のベストプラクティスは一般的なガイドラインであり、完全なセキュリティソリューションに相当するものではありません。これらのベストプラクティスは顧客の環境に必ずしも適切または十分でない可能性があるので、処方箋ではなく、あくまで有用な検討事項とお考えください。

Systems Manager の予防的セキュリティのベストプラクティス

Systems Manager の以下のベストプラクティスはセキュリティ問題を防ぐのに役立ちます。

最小特権アクセスの実装

アクセス許可を付与する場合、どのユーザーにどの Systems Manager リソースに対するアクセス許可を付与するかは、お客様が決定します。つまり、該当リソースに対して許可する特定のアクションを許可するということです。このため、タスクの実行に必要なアクセス許可のみを付与する必要があります。最小限の特権アクセスの実装は、セキュリティリスクはもちろん、エラーや悪意ある行動によってもたらされる可能性のある影響を減らす上での基本となります。

以下のツールは、最小限の特権アクセスを実装するために使用できます。

SecureString パラメータを使用して機密データを暗号化および保護する

AWS Systems Manager の一機能である Parameter Store にある SecureString パラメータは、セキュアな方法で保存および参照する必要のある機密データです。パスワードやライセンスキーなどプレーンテキストで、ユーザーに変更または参照させたくないデータがある場合は、SecureString データ型を使用してこれらのパラメータを作成します。Parameter Store は AWS Key Management Service (AWS KMS) で AWS KMS key を使用してパラメータ値を暗号化します。AWS KMS は、パラメータ値を暗号化する際、カスタマーマネージドキーまたは AWS マネージドキー のいずれかを使用します。セキュリティを最大限に高めるため、独自の KMS キーを使用することをお勧めします。AWS マネージドキー を使用する場合、アカウントで GetParameter アクションと GetParameters アクションを実行する権限のあるユーザーは、すべての SecureString パラメータのコンテンツを表示または取得できます。カスタマーマネージドキーを使用してセキュアな SecureString 値を暗号化する場合、IAM ポリシーとキーポリシーを使用して、パラメータの暗号化と復号化のアクセス許可を管理できます。カスタマーマネージドキーを使用する場合、これらのオペレーションに対してアクセスコントロールポリシーを確立することは困難です。例えば、AWS マネージドキー を使用して SecureString パラメータを暗号化し、ユーザーが SecureString パラメータを操作しないようにする場合は、IAM ポリシーでデフォルトキーへのアクセスを明示的に拒否する必要があります。

詳細については、AWS Key Management Service デベロッパーガイドの「IAM ポリシーを使用して Systems Manager パラメータへのアクセスを制限する」と「AWS Systems ManagerParameter Store が AWS KMS を使用する方法」を参照してください。

ドキュメントパラメータの allowedValues および allowedPattern を定義する

allowedValues および allowedPattern を定義することで、Systems Manager ドキュメント (SSM ドキュメント) のパラメータのユーザー入力を検証できます。allowedValues では、パラメータに使用できる値の配列を定義します。使用できない値をユーザーが入力すると、実行の開始に失敗します。allowedPattern では、ユーザー入力がパラメータに対して定義されたパターンと一致するかどうかを検証する正規表現を定義します。ユーザー入力が使用できるパターンと一致しない場合、実行は開始されません。

allowedValuesallowedPattern の詳細については、「データ要素とパラメータ」を参照してください。

ドキュメントのパブリック共有をブロックする

ユースケースでパブリック共有を有効にする必要がある場合を除き、Systems Manager ドキュメントコンソールの [Preferences] (詳細設定) セクションで、SSM ドキュメントのパブリック共有のブロックの設定をオンにすることをお勧めします。

Amazon Virtual Private Cloud (Amazon VPC) および VPC エンドポイントを使用する

Amazon VPC を使用して、定義した仮想ネットワーク内で AWS リソースを起動できます。仮想ネットワークは、お客様自身のデータセンターで運用されていた従来のネットワークによく似ていますが、 のスケーラブルなインフラストラクチャを使用できるというメリットがありますAWS

VPC エンドポイントを実装することにより、インターネットゲートウェイ、NAT デバイス、VPN 接続、または AWS Direct Connect 接続の必要なく、AWS PrivateLink でサポートされる AWS のサービスおよび VPC エンドポイントサービスに VPC を非公開で接続できます。VPC のインスタンスでは、サービスのリソースと通信するためにパブリック IP アドレスを必要としません。VPC と他のサービス間のトラフィックは、Amazon ネットワークを離れることはありません。

Amazon VPC セキュリティの詳細については、「Amazon VPC ユーザーガイド」の「VPC エンドポイントの作成」および「Amazon VPC でのインターネットワークトラフィックのプライバシー」を参照してください。

Session Manager ユーザーを、対話型コマンドと特定の SSM セッションドキュメントを使用しているセッションに限定する

AWS Systems Manager の機能である Session Manager はマネージドノードにセッションを開始する複数の方法を提供します。最も安全な接続を実現するため、対話型コマンド方式を使用して接続するようにユーザーに要求し、ユーザーの操作を特定のコマンドまたはコマンドシーケンスに制限できます。これにより、ユーザーが実行できる対話型アクションを管理できます。詳細については、「セッションの開始 (対話形式と非対話形式のコマンド)」を参照してください。

セキュリティを強化するために、特定の Amazon EC2 Session Manager インスタンスと特定の Session Manager セッションドキュメントへのアクセスを制限できます。この方法で、AWS Identity and Access Management (IAM) Session Manager ポリシーを使用してアクセスを許可または取り消すことができます。詳細については、「ステップ 3: マネージドノードへのセッションアクセスを制御」を参照してください。

オートメーション ワークフローに対して一時的なノード許可を付与します

AWS Systems Manager の機能であるオートメーションのワークフロー中に、その実行のためにのみ、ノードが許可を必要とする場合がありますが、他の Systems Manager オペレーションには不要です。例えばオートメーション ワークフローでは、特定の API オペレーションを呼び出すためのノードに加え、特にワークフロー中では AWS リソースへのアクセスなどが必要となる場合があります。このような呼び出しまたはリソースへのアクセスを制限する場合、IAM インスタンスプロファイルにアクセス許可を追加する代わりに、オートメーション ランブック自体の中にあるノードに対して一時的かつ付随するアクセス許可を付与できます。Automation のワークフローが終了すると、一時的なアクセス許可は削除されます。詳細については、 AWS Management and Governance Blog の「Providing temporary instance permissions with AWS Systems Manager Automations」を参照してください。

AWS と Systems Manager ツールを最新の状態に維持する

AWS は、AWS および Systems Manager オペレーションで使用できるツールおよびプラグインの更新バージョンを定期的にリリースします。これらのリソースを最新の状態に維持することで、アカウント内のユーザーとノードがこれらツールの最新の機能性やセキュリティ機能にアクセスできるようにします。

  • SSM Agent – AWS Systems Manager エージェント (SSM Agent) は、Amazon Elastic Compute Cloud (Amazon EC2) インスタンス、オンプレミスサーバー、仮想マシン (VM) にインストールして設定することができる Amazon のソフトウェアです。SSM Agent により、Systems Manager がこれらのリソースを更新、管理、設定できるようなります。少なくとも 2 週間ごとに新しいバージョンをチェックするか、エージェントの更新を自動化することをお勧めします。詳細については、SSM Agent への更新の自動化を参照してください。また、更新プロセスの一環として SSM Agent の署名を確認することをお勧めします。詳細については、SSM Agent の署名の確認を参照してください。

  • AWS CLI – AWS Command Line Interface (AWS CLI) は、コマンドラインシェルでコマンドを使用して AWS のサービスとやり取りするためのオープンソースツールです。AWS CLI を更新するには、AWS CLI のインストールに使用したコマンドと同じコマンドを実行します。オペレーティングシステムに適したコマンドを実行するために、少なくとも 2 週間に 1 回ローカルマシンでスケジュールされたタスクを作成することをお勧めします。インストールコマンドの詳細については、AWS Command Line Interface ユーザーガイドの「AWS CLI バージョン 2 のインストール」を参照してください。

  • AWS Tools for Windows PowerShell – Tools for Windows PowerShell は、AWS SDK for .NET によって公開されている機能を基盤として構築された PowerShell モジュールです。AWS Tools for Windows PowerShell を使用することにより、PowerShell コマンドラインから AWS リソースに対する操作をスクリプト処理できます。または Tools for Windows PowerShell のアップデートバージョンが定期的にリリースされているため、ローカルで実行しているバージョンを更新する必要があります。詳細については、IAM ポリシーシミュレーターユーザーガイドの「Updating the AWS Tools for Windows PowerShell on Windows」または「Updating the AWS Tools for Windows PowerShell on Linux or macOS」 を参照してください。

  • Session Manager プラグイン – Session Manager を使用する許可を持つ組織内のユーザーが AWS CLI を使用してノードに接続を希望する場合、まずユーザーのローカルマシンに Session Manager のプラグインをインストールする必要があります。プラグインを更新するには、プラグインのインストールに使用したのと同じコマンドを実行します。オペレーティングシステムに適したコマンドを実行するために、少なくとも 2 週間に 1 回ローカルマシンでスケジュールされたタスクを作成することをお勧めします。詳細については、用の Session Manager プラグインをインストールする AWS CLI を参照してください。

  • CloudWatch エージェント – CloudWatch エージェントを設定および使用すると、EC2 インスタンス、オンプレミスインスタンス、仮想マシン (VM) からメトリクスとログを収集できます。これらのログは、モニタリングおよび分析のために Amazon CloudWatch Logs に送信できます。少なくとも 2 週間ごとに新しいバージョンをチェックするか、エージェントの更新を自動化することをお勧めします。最も簡単な更新を行うには、AWS Systems Manager Quick Setup を使用します。詳細については、「AWS Systems Manager Quick Setup」を参照してください。

Systems Manager のモニタリングと監査のベストプラクティス

以下の Systems Manager のベストプラクティスは、潜在的なセキュリティ上の弱点とインシデントを検出するのに役立ちます。

Systems Manager のすべてのリソースの特定と監査

IT アセットの特定はガバナンスとセキュリティの重要な側面です。セキュリティの状態を評価し、潜在的な弱点に対処するには、すべての Systems Manager リソースを特定する必要があります。

タグエディターを使用してセキュリティまたは監査で注意を要するリソースを識別してから、それらのタグを、リソースを検索する必要があるときに使用します。詳細については、AWS Resource Groups ユーザーガイドの「タグ付けするリソースの検索」を参照してください。

Systems Manager リソースのリソースグループを作成します。詳細については、 リソースグループとはを参照してください。

Amazon CloudWatch モニタリングツールを使用したモニタリングの実装

モニタリングは、Systems Manager および AWS ソリューションの信頼性、セキュリティ、可用性、パフォーマンスを維持する上で重要です。Amazon CloudWatch には、Systems Manager と他の AWS のサービスのモニタリングに役立つツールとサービスが含まれています。詳細については、統合 CloudWatch ログへのノードログの送信 (CloudWatch エージェント) および Amazon EventBridge を使用して Systems Manager イベントをモニタリングする を参照してください。

CloudTrail の使用

AWS CloudTrail は、Systems Manager のユーザー、ロール、または AWS のサービスによって実行されたアクションのレコードを提供します。CloudTrail で収集した情報を使用して、Systems Manager に対して行ったリクエスト、リクエスト元の IP アドレス、リクエスト者、リクエスト日時などの詳細を確認できます。詳細については、「を使用した AWS Systems Manager API コールのログ記録 AWS CloudTrail」を参照してください。

AWS Config をオンにする

AWS Config を使用すると、AWS リソースの設定を評価して監査することができます。AWS Config はリソースの設定を監視し、必要となるセキュアな設定に照らし合わせて、記録された設定を評価できます。AWS Config を使用すると、AWS リソース間の設定や関連性の変更を確認し、詳細なリソース設定履歴を調べ、社内ガイドラインで指定された設定に対して、全体的なコンプライアンスを確認できます。これにより、コンプライアンス監査、セキュリティ分析、変更管理、運用上のトラブルシューティングを簡素化できます。詳細については、AWS Config デベロッパーガイドコンソールを使用した AWS Config の設定 を参照してください。記録するリソースタイプを指定するときは、必ず Systems Manager リソースを含めてください。

AWS セキュリティアドバイザリを監視する

AWS アカウント について Trusted Advisor に投稿されたセキュリティ勧告を定期的に確認してください。これは、describe-trusted-advisor-checks を使用してプログラムにより行うことができます。

さらに、各 AWS アカウント に登録されているメインの E メールアドレスを注意してモニタリングしてください。AWS は、この E メールアドレスを使用して、お客様に影響を与える可能性のあるセキュリティ問題が新たに発生した場合に連絡します。

広範な影響を与える AWS の運用上の問題は AWS Service Health Dashboard に投稿されます。運用上の問題は Personal Health ダッシュボードを介して個々のアカウントにも投稿されます。詳細については、AWS Health のドキュメントを参照してください。