我有2个AWS账户。CloudWatch Logs代理无法承担将日志发送到不同帐户的角色
- 帐户:从亚马逊与awslogs客户 EC2实例
- 帐户B:集中的日志记录帐户
我想给从EC2实例日志与awslogs客户端(在帐户A)从一个帐户迁移到另一个帐户的CloudWatch日志(帐户B)。
它正常工作,通过创建帐户B的IAM用户和awscli.conf
建立AWS凭据项,但我不希望被硬编码的钥匙,所以我想承担的角色如下:
在账户B(该帐户的CloudWatch)IAM角色,我创建了一个角色名CloudWatchCrossRole
:
内嵌政策(允许这个角色写日志的CloudWatch日志):
{
"Version": "2012-10-17",
"Statement": [
{
"Action": [
"logs:*"
],
"Effect": "Allow",
"Resource": "*"
}
]
}
信任策略:
{
"Version": "2008-10-17",
"Statement": [
{
"Sid": "",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::ACCOUNT_A:role/CLoudWatchInstanceProfile"
},
"Action": "sts:AssumeRole"
}
]
}
帐号一个,我开始EC2实例与如下所示的曲线CLoudWatchInstanceProfile
:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"*"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": "sts:AssumeRole",
"Resource": "arn:aws:iam::ACCOUNT_B:role/CloudWatchCrossRole"
}
]
}
没有喜悦,日志都推到ACCOUNT_A而不是ACCOUNT_B。任何人都可以给我提示CloudWatch Logs上的AssumeRole是否可行,或者是否需要创建IAM用户并在awscli.conf
中硬编码凭证?
HI John,感谢您的回答,对于awscli.conf,这里是链接:http://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/QuickStartEC2Instance。html#running-ec2-step-2 关于cloudwatch,我只是不明白其他公司如何做,当他们有多个帐户,他们想要将所有日志聚合到一个安全的日志帐户,我认为这是一个最佳做法。为什么aws会让它变得如此复杂 – jthemovie
发现了这个,但我不确定它是你想要的:[Amazon CloudWatch Logs - 跨账户订阅](https://aws.amazon.com/about-aws/whats-new/ 2015/08/amazon-cloudwatch-logs-cross-account-subscriptions /) –
再次感谢约翰,我知道这一个,但添加kinesis之间看起来有点矫枉过正,我会尝试这个项目https://github.com/ryotarai/fluent-plugin-cloudwatch-logs并查看。 – jthemovie