我有 2 个 AWS 账户。
- 账户 A:带有来自亚马逊的 awslogs 客户端的 EC2 实例
- 账户 B:集中登录账户
我想将带有 awslogs 客户端(在账户 A 中)的 EC2 实例的日志从一个账户发送到另一个账户(账户 B)中的 CloudWatch Logs。
通过在账户 B 中创建一个 IAM 用户并在 中设置 AWS 凭证密钥,它可以正常工作awscli.conf
,但我不希望密钥被硬编码,所以我试图承担如下角色:
账户 B(CloudWatch 账户)中的 IAM 角色,我创建了一个角色名称CloudWatchCrossRole
:
内联策略(允许此角色将日志写入 CloudWatch Logs):
{
"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"
}
]
}
在账户 A 中,我启动了一个 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
?