首先,我的问题与此问题非常相似,但因为我找不到"我也是!" 链接,自1月1日以来一直未得到答复,我想我会问这里.如果这是错误的,请告诉我.
好的,所以这是我的问题.我有两个AWS账户,我们称之为Prod和Audit.在Prod中,我有许多EC2实例,都有自己定义的特定IAM角色.在Audit中,我有很多S3存储桶.
我需要做的是,仅使用IAM角色,使用Prod帐户中的特定IAM角色,从特定计算机访问审计帐户中的S3存储桶.
我已经看到许多答案谈论组策略,资源策略和让IAM用户担任角色等,但正如我所说,我在EC2实例上使用IAM角色,没有组,用户等.
我不想在任何实例的任何地方拥有凭证,无论是AWS Best Practices.
这可能吗?是否有其他安全的方法可以做到这一点,而不涉及用户或凭据?任何和所有的帮助非常感谢,谢谢!
注意:
我试图允许访问Audit S3存储桶的Prod EC2实例上运行的应用程序是Logstash.我已经确认在将日志推送到Prod S3存储桶时设置工作,而不是审计.我也试过使用S3 Bucket Policy也没有成功.
我添加的S3 Bucket Policy如下:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "CrossAccountPolicy",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::<Prod Account ID>:root"
},
"Action": "s3:*",
"Resource": [
"arn:aws:s3:::logstash.prod.logs",
"arn:aws:s3:::logstash.prod.logs/*"
]
}
]
}
Run Code Online (Sandbox Code Playgroud)
附加到Prod EC2实例的IAM角色的内联策略:
{
"Version": "2012-10-17",
"Statement": {
"Effect": "Allow",
"Action": "sts:AssumeRole",
"Resource": "arn:aws:iam::<Audit Account ID>:role/ProdLogstashPush"
}
}
Run Code Online (Sandbox Code Playgroud)
附加到审计帐户中的IAM角色的策略:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:*"
], …Run Code Online (Sandbox Code Playgroud)