- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 terraform 配置 AWS CloudTrail,但在 CloudWatch 集成方面仍然失败。有人在某处看到错误吗?
Terraform CLI 和 Terraform AWS 提供商版本
Terraform v0.13.5
# Mendatory VARs
env
aws_region
access_key
secret_key
# Configure the AWS Provider
provider "aws" {
version = ">= 3.7.0"
region = var.aws_region
access_key = var.access_key
secret_key = var.secret_key
}
# Terraform backend to store current running configuration
terraform {
backend "remote" {
hostname = "app.terraform.io"
organization = "some_org"
workspaces {
name = "some_workspace"
}
}
}
resource "aws_cloudwatch_log_group" "backuping_cloudwatch_log_group" {
name = "backuping-${var.env}-cloudwatch-log_group"
tags = {
Name = "Cloudwatch for backuping CloudTrail"
Environment = var.env
}
depends_on = [aws_s3_bucket.bucket]
}
resource "aws_cloudwatch_log_stream" "backuping_cloudwatch_log_stream" {
log_group_name = aws_cloudwatch_log_group.backuping_cloudwatch_log_group.id
name = "backuping-${var.env}-cloudwatch-log_stream"
depends_on = [aws_cloudwatch_log_group.backuping_cloudwatch_log_group]
}
resource "aws_iam_policy" "backuping_cloudtrail_cloudwatch_policy" {
name = "backuping-${var.env}-cloudtrail_cloudwatch_policy"
description = "Policy to enable ClodTrail logging into CloudWatch on ${var.env}"
policy = <<POLICY
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AWSCloudTrailCreateLogStream2014110${var.env}",
"Effect": "Allow",
"Action": [
"logs:CreateLogStream"
],
"Resource": [
"${aws_cloudwatch_log_stream.backuping_cloudwatch_log_stream.arn}*"
]
},
{
"Sid": "AWSCloudTrailPutLogEvents20141101${var.env}",
"Effect": "Allow",
"Action": [
"logs:PutLogEvents"
],
"Resource": [
"${aws_cloudwatch_log_stream.backuping_cloudwatch_log_stream.arn}*"
]
}
]
}
POLICY
depends_on = [aws_cloudwatch_log_stream.backuping_cloudwatch_log_stream]
}
resource "aws_iam_role" "backuping_cloudtrail_cloudwatch_role" {
name = "backuping-${var.env}-cloudtrail_cloudwatch_role"
path = "/service-role/"
assume_role_policy = <<EOF
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "cloudtrail.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}
EOF
tags = {
Name = "IAM Role for CloudTrail logging into CloudWatch"
Environment = var.env
}
depends_on = [aws_iam_policy.backuping_cloudtrail_cloudwatch_policy]
}
resource "aws_iam_role_policy_attachment" "backuping_cloudtrail_cloudwatch_role_policy_attachement" {
role = aws_iam_role.backuping_cloudtrail_cloudwatch_role.name
policy_arn = aws_iam_policy.backuping_cloudtrail_cloudwatch_policy.arn
depends_on = [aws_iam_role.backuping_cloudtrail_cloudwatch_role]
}
data "aws_caller_identity" "current" {}
locals {
backuping_logs_bucket_name = "backuping-${var.env}-logs"
}
resource "aws_s3_bucket" "backuping_logs_bucket" {
bucket = local.backuping_logs_bucket_name
acl = "private"
force_destroy = true
server_side_encryption_configuration {
rule {
apply_server_side_encryption_by_default {
sse_algorithm = "AES256"
}
}
}
policy = <<POLICY
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AWSCloudTrailAclCheck",
"Effect": "Allow",
"Principal": {
"Service": "cloudtrail.amazonaws.com"
},
"Action": "s3:GetBucketAcl",
"Resource": "arn:aws:s3:::${local.backuping_logs_bucket_name}"
},
{
"Sid": "AWSCloudTrailWrite",
"Effect": "Allow",
"Principal": {
"Service": "cloudtrail.amazonaws.com"
},
"Action": "s3:PutObject",
"Resource": "arn:aws:s3:::${local.backuping_logs_bucket_name}/AWSLogs/${data.aws_caller_identity.current.account_id}/*",
"Condition": {
"StringEquals": {
"s3:x-amz-acl": "bucket-owner-full-control"
}
}
}
]
}
POLICY
tags = {
Name = "Bucket for backuping logs"
Environment = var.env
}
}
resource "aws_s3_bucket_public_access_block" "s3_logs_bucket_public_access" {
bucket = aws_s3_bucket.backuping_logs_bucket.id
block_public_acls = true
block_public_policy = true
ignore_public_acls = true
restrict_public_buckets = true
}
resource "aws_cloudtrail" "backuping_cloudtrail" {
name = "backuping-${var.env}-cloudtrail"
s3_bucket_name = aws_s3_bucket.backuping_logs_bucket.id
is_multi_region_trail = true
enable_log_file_validation = true
event_selector {
read_write_type = "All"
include_management_events = false
data_resource {
type = "AWS::S3::Object"
# Make sure to append a trailing '/' to your ARN if you want
# to monitor all objects in a bucket.
values = ["arn:aws:s3"]
}
}
tags = {
Name = "CloudTrail for backuping events"
Environment = var.env
}
cloud_watch_logs_role_arn = aws_iam_role.backuping_cloudtrail_cloudwatch_role.arn
cloud_watch_logs_group_arn = "${aws_cloudwatch_log_group.backuping_cloudwatch_log_group.arn}:*"
depends_on = [
aws_iam_role_policy_attachment.backuping_cloudtrail_cloudwatch_role_policy_attachement,
aws_s3_bucket.backuping_logs_bucket
]
}
调试输出
[DEBUG] plugin.terraform-provider-aws_v3.15.0_x5: 2020/11/17 17:02:38
[DEBUG] [aws-sdk-go] DEBUG: Validate Response cloudtrail/CreateTrail failed, attempt 0/25, error InvalidCloudWatchLogsLogGroupArnException: Access denied. Check the permissions for your role.
预期行为
InvalidCloudWatchLogsLogGroupArnException: Access denied. Check the permissions for your role
.
backuping_cloudtrail_cloudwatch_role
和现有
backuping_cloudwatch_log_group
效果很好。相应的策略会自动创建并且日志记录工作正常。
terraform apply
最佳答案
如果您仍然需要解决这个问题,我有一个类似的配置,并且遇到了同样的问题。
问题是CloudTrail's naming convention . 的名称日志流 格式必须是 account_ID_CloudTrail_source_region
.我所做的是将日志流的名称更改为
resource "aws_cloudwatch_log_stream" "test" {
name = "${data.aws_caller_identity.current.account_id}_CloudTrail_${data.aws_region.current.name}"
log_group_name = aws_cloudwatch_log_group.test.name
}
使用 caller_identity 和 aws_region 数据源:
data "aws_region" "current" {}
data "aws_caller_identity" "current" {}
问题是 CloudTrail 在策略中(尽管我们的配置)或在尝试查找日志流时强制使用传统名称,并且由于名称不相等,您会得到
InvalidCloudWatchLogsLogGroupArnException
错误。
关于amazon-web-services - Terraform AWS CloudTrail 配置失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64879420/
当我尝试验证我的 cloudformation 模板时,收到“模板包含错误。:[/Resources/CloudTrail/Type/EventSelectors] 模板中不允许使用“null”值”错
我正在尝试下载存储在 S3 存储桶中的 CloudTrail 日志文件,但是当我收到该文件时,它是不可读的,直到我意识到它可以按照说 here 进行加密。而且我不知道如何解密该文件。 这是我的代码:
正如标题所示,我今天早上登录了我的 AWS 控制台,但在 Cloudtrail 中看不到相同的日志。 我的问题是 a) 这是将 AWS 控制台登录记录到 Cloudtrail 的默认行为吗?b) 我可
我已使用 AWS 管理控制台启用 CloudTrail,Amazon S3 存储桶策略是启用 CloudTrail 时自动创建的默认策略。 我可以找到有关我登录的日志以及所有其他偶数日志 但是没有关于
我一定错过了一些明显的东西。但我无法获取错误的详细信息。 无法知道 lambda 返回的确切错误。 最佳答案 根据此 AWS blog post您应该能够使用“CloudWatch 控制台,利用 Lo
使用“基于 CloudTrail 事件生成策略”功能在 IAM 中为特定角色生成策略时,我收到错误消息“策略生成失败。超出每个策略生成限制处理的 CloudTrail 日志文件。请修复后再试。” 如果
是否可以使用多个查找属性查询 cloudtrail 当我执行以下 aws cloudtrail lookup-events --lookup-attributes AttributeKey=Event
我正在尝试让 Cloudtrail 上路,并希望设置 Cloudtrail s3bucket。但政策尚未完成。这是我的代码: CloudtrailBucket: Type: AWS::S3::Bu
我正在对当前的 AWS 环境进行一些探索,并试图了解现有的 CloudTrail 是如何创建的以及所有者是谁? 我所说的“如何”是指 - 它是使用某些 CloudFormation 模板还是通过控制台
我想监控是否有人试图从我的 CloudTrail 的 S3 存储桶中删除日志。 我曾尝试用我自己的 IAM 用户删除自己在这个存储桶上的日志之一,但 CloudTrail 本身似乎没有注意到我已经从它
我想监控是否有人试图从我的 CloudTrail 的 S3 存储桶中删除日志。 我曾尝试用我自己的 IAM 用户删除自己在这个存储桶上的日志之一,但 CloudTrail 本身似乎没有注意到我已经从它
我正在开发一个 lambda 函数,该函数从 CloudTrail 获取事件并分析它们。 我有这个脚本: s3.download_file(bucket, key, download_path)
我在 s3 存储桶中启用了 cloudtrail 日志记录。我正在尝试使用 python sdk 来解析 s3 存储桶中的所有日志,以便隔离 RunInstance 事件。我从这样的事情开始: def
假设两种服务都已启用(启用了服务器访问日志记录的单个 S3 存储桶和为该存储桶启用了对象级日志记录的 CloudTrail): 1. 哪些事件会启动两种服务的日志记录? 2. 在这种情况下,一项服务将
我正在尝试使用 terraform 配置 AWS CloudTrail,但在 CloudWatch 集成方面仍然失败。有人在某处看到错误吗? Terraform CLI 和 Terraform AWS
在 cloud-trail 中,我可以在 CloudWatch Logs 部分下选择现有日志组 CloudTrail/DefaultLogGroup。是否可以使用cloudformation模板完成此
我正在尝试创建一些指标图表来跟踪我们的 API 调用,并且我想开始按事件名称进行分割。通过 web 界面和 cli 查看,我必须滚动浏览大量数据才能看到不同类型的事件。 我只想要所有事件名称的列表。
在 cloud-trail 中,我可以在 CloudWatch Logs 部分下选择现有日志组 CloudTrail/DefaultLogGroup。是否可以使用cloudformation模板完成此
我正在尝试将日志从 ClouldTrail 获取到 ElasticSearch 中,以便我们可以更好地了解我们的 AWS 账户中正在发生的事情。 我已经在我的机器(Ubuntu 14.04)上设置了
显然 AWS/Cloudtrail 在 AWS NameSpace 中可用,如下面的屏幕截图所示: 网址:https://docs.aws.amazon.com/sdkfornet1/latest/a
我是一名优秀的程序员,十分优秀!