小编Dea*_*lls的帖子

使用角色从另一个帐户访问AWS S3存储桶

首先,我的问题与问题非常相似,但因为我找不到"我也是!" 链接,自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)

amazon-s3 amazon-ec2 amazon-web-services

10
推荐指数
1
解决办法
8191
查看次数