我想知道为什么 AWS Systems Manager 会话管理器不向 Amazon Simple Storage Service (Amazon S3) 或 Amazon CloudWatch 发送日志。
简短描述
以下是会话管理器不向 Amazon S3 或 CloudWatch 发送日志的原因:
- 会话管理器日志记录配置不正确
- S3 存储桶权限和 AWS Identity and Access Management (IAM) 策略不正确
- Amazon Virtual Private Cloud (Amazon VPC) 端点可访问性问题
- IAM 角色缺少 CloudWatch 日志记录所需的权限
先决条件:
解决方法
**注意:**如果您在运行 AWS CLI 命令时收到错误,请参阅 AWS CLI 错误故障排除。此外,请确保您使用的是最新版本的 AWS CLI。
验证会话管理器日志记录配置
要激活日志记录会话数据,请确认您已为 Amazon S3 或 CloudWatch 日志配置了会话管理器。
配置 CloudWatch Logs 时,请遵循以下最佳实践:
- 查看会话管理器首选项,以验证您是否已启用 CloudWatch Logs。
- 确认您已指定有效的日志组名称。
- 确保 CloudWatch 中存在指定的日志组。
检查 Amazon S3 存储桶权限和 IAM 策略
要使会话管理器将日志上传到 Amazon S3,您与该实例关联的 IAM 角色必须具有所需的权限。
要解决 Amazon S3 中丢失的日志问题,请完成以下步骤:
- 检查您的 Amazon Elastic Compute Cloud (Amazon EC2) 实例配置文件角色是否具有 S3 存储桶 ARN 的正确的 S3 IAM 权限。
- 检查 S3 存储桶策略是否允许实例配置文件角色作为主体在 S3 存储桶上执行所需的 S3 操作。
验证 Amazon VPC 端点可访问性问题
如果您的 Amazon EC2 实例无法访问互联网,则必须为登录到 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,会话管理器必须在 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 账户 ID 和日志组名称。
- 如果您使用 AWS Key Management Service (AWS KMS) 客户自主管理型密钥对 CloudWatch 日志组进行加密,请向实例配置文件角色授予使用该日志组的权限。AWS KMS 密钥策略必须允许角色访问密钥。
"Resource": "arn:aws:logs:us-east-1:123456789012:log-group:/aws/ssm/my-log-group:*"
其他故障排除
要对 CloudWatch Logs 问题进行故障排除,请根据操作和时间戳查看 AWS CloudTrail 事件历史记录。有关详细信息,请参阅在 AWS CloudTrail 中记录 CloudWatch Logs API 和控制台操作。
相关信息
如何解决 AWS Systems Manager 会话管理器的问题?