AWS Systems Manager Session Manager が Amazon Simple Storage Service (Amazon S3) または Amazon CloudWatch にログを送信していないため、原因を把握したいです。
簡単な説明
次の要因で、Session Manager が Amazon S3 または CloudWatch にログを送信しない状況が発生します。
- Session Manager のログ記録に構成ミスがある
- Amazon S3 バケットのアクセス許可と AWS Identity and Access Management (IAM) ポリシーに誤りがある
- Amazon Virtual Private Cloud (Amazon VPC) エンドポイントの到達性に問題がある
- IAM ロールに CloudWatch のログ記録に必要なアクセス許可が欠けている
前提条件
解決策
注: AWS CLI のコマンドの実行時にエラーが発生する場合は、「AWS CLI でのエラーのトラブルシューティング」を参照してください。また、AWS CLI の最新バージョンを使用していることを確認してください。
Session Manager のログ記録設定を確認する
セッションデータのログ記録を有効にするには、Session Manager が Amazon S3 またはCloudWatch Logs で設定されているかどうかを確認します。
CloudWatch Logs の設定時は、次のベストプラクティスを実施します。
- Session Manager の設定をレビューし、CloudWatch Logs が有効になっていることを確認します。
- 有効なロググループ名を指定したことを確認します。
- 指定したロググループが CloudWatch に存在することを確認します。
Amazon S3 バケットのアクセス許可と IAM ポリシーを確認する
Session Manager が Amazon S3 にログをアップロードするには、インスタンスに関連付けられた IAM ロールには必要なアクセス許可が必要です。
Amazon S3 でログが見つからない場合のトラブルシューティングには、次の手順を実行します。
- Amazon Elastic Compute Cloud (Amazon EC2) インスタンスプロファイルのロールには、S3 バケットの ARN を持つ正しい S3 IAM アクセス許可があることを確認します。
- S3 バケットポリシーが、インスタンスプロファイルのロールを Principal として許可しており、S3 バケットに対する必要な S3 アクションが含まれていることを確認します。
Amazon VPC エンドポイントの到達性を確認する
Amazon EC2 インスタンスがインターネットにアクセスできない場合は、Session Manager が Amazon S3 または CloudWatch に記録するための Amazon VPC エンドポイントを作成する必要があります。
エンドツーエンドのネットワークを調べ、次のエンドポイントで HTTPS トラフィックが開いていることを確認します。
- HTTPS://ec2.region-code.amazonaws.com
- HTTPS: //ec2messages.region-code.amazonaws.com
- HTTPS: //ssm.region-code.amazonaws.com
- HTTPS: //ssmmessages.region-code.amazonaws.com
- HTTPS: //s3.region-code.amazonaws.com
- HTTPS://monitoring.region-code.amazonaws.com
エンドポイントを作成する方法については、「サービスコンシューマーとしてエンドポイントサービスに接続する」を参照してください。
CloudWatch での記録用の IAM ポリシーを設定する
セッションログまたはストリームログが CloudWatch ロググループに見つからない場合、インスタンスプロファイルロールには正しい IAM アクセス許可が欠けています。
ログストリームを作成してログイベントを CloudWatch に配置するには、Session Manager には、IAM ポリシーで次のアクセス許可を付与する必要があります。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": [
"logs:CreateLogStream",
"logs:DescribeLogStreams",
"logs:PutLogEvents"
],
"Resource": [
"arn:aws:logs:REGION:ACCOUNT-ID:log-group:LOG-GROUP-NAME:*"
]
},
{
"Sid": "VisualEditor1",
"Effect": "Allow",
"Action": "logs:DescribeLogGroups",
"Resource": "*"
}
]
}
注:
- 上記のポリシーでは、REGION、ACCOUNT-ID、LOG-GROUP-NAMEを実際の AWS リージョン、AWS アカウント、ロググループ名に置き換えます。
- CloudWatch ロググループを AWS Key Management Service (AWS KMS) のカスタマーマネージドキーで暗号化した場合は、インスタンスプロファイルのロールにそのキーを使用するためのアクセス許可を付与します。AWS KMS キーポリシーでは、ロールがキーにアクセスできるようにする必要があります。
"Resource": "arn:aws:logs:us-east-1:123456789012:log-group:/aws/ssm/my-log-group:*"
その他のトラブルシューティング
CloudWatch ログの問題をトラブルシューティングするには、アクションとタイムスタンプに基づいて AWS CloudTrail の [イベント履歴] を確認します。詳細については、「AWS CloudTrail で CloudWatch Logs API とコンソールの操作を記録する」を参照してください。
関連情報
AWS Systems Manager Session Manager の問題をトラブルシューティングする方法