SSM Agent と統合 CloudWatch エージェントを使用するオンプレミスサーバーで、一時的な認証情報のみを使用するように設定する方法を教えてください。

最終更新日: 2020 年 10 月 8 日

AWS Systems Manager Agent (SSM Agent) と統合 Amazon CloudWatch エージェントを使用するオンプレミスサーバーを持つハイブリッド環境があります。一時的な認証情報のみを使用するようにオンプレミスサーバーを設定するにはどうすればよいですか?

解決方法

統合 CloudWatch エージェントをオンプレミスにインストールする場合は、設定ファイルにアクセスキーとシークレットキーを持つ AWS Identity and Access Management (IAM) ユーザーを指定する必要があります。これらは長期的な認証情報であり、セキュリティ上の理由から、一部のポリシーでは定期的にローテーションする必要があります。SSM Agent がオンプレミスにインストールされている場合、一時的な認証情報プロセスを使用して IAM ロールを引き受けることができます。

以下の手順に従って、SSM Agent によって提供される一時的な認証情報を使用してオンプレミスサーバーからメトリクスとログをプッシュするように統合 CloudWatch エージェントを設定します。

1.    SSM Agent によって生成された認証情報ファイルを指すように common-config.toml CloudWatch エージェント設定ファイルを設定します。

注意: 設定ファイルは次のディレクトリにあります。

  • Linux 向け: /opt/aws/amazon-cloudwatch-agent/etc
  • Windows 向け: C:\ProgramData\Amazon\AmazonCloudWatchAgent

認証情報ファイルは、SSM Agent によって新しい一時的な認証情報で 30 分ごとに更新されます。統合 CloudWatch エージェントを認証情報ファイルにリンクすると、CloudWatch エージェントは SSM エージェントによって生成された一時的な認証情報を使用できます。

Windows:

[credentials]
shared_credential_profile = "default"
shared_credential_file = "C:\\Windows\\System32\\config\\systemprofile\\.aws\\credentials"

Linux:

[credentials]
shared_credential_profile = "default"
shared_credential_file = "/root/.aws/credentials"

2.    統合された CloudWatch エージェントが SSM エージェント認証情報ファイルを読み取ることができるようにアクセス許可を変更します。
Windows の場合: 両方のエージェントが SYSTEM ユーザーで実行されるため、アクセス許可の変更は必要ありません。
Linux の場合は、統合 CloudWatch エージェントは root ユーザーとして実行されます。エージェントは、run_as_user オプションを使用して、エージェントの設定ファイルで指定できるユーザーとして実行することもできます。エージェントが root 以外のユーザーとして実行されている場合は、ファイルの読み取りをユーザーに許可するアクセス許可を付与する必要があります。

3.    SSM Agent の認証情報ファイルの最後に新しい行を追加して、region パラメータを追加します。これは、ステップ 1 で shared_credential_file を指すように設定したファイルです。

region = eu-west-1

注意: eu-west-1 はご利用のリージョンに必ず置き換えてください。

4.    (Windows のみ) 統合 CloudWatch エージェントサービスのスタートアップタイプを [Automatic (Delayed)] に変更します。この変更を行うと、起動中、CloudWatch エージェントサービスが SSM Agent サービスの後に開始されます。

5.    CloudWatchAgentServerPolicy IAM ポリシーを、必要な AmazonSSMManagedInstanceCore IAM ポリシーの横にあるハイブリッド環境の IAM サービスロールにアタッチします。