【问题标题】:Upload files from EC2 server to S3将文件从 EC2 服务器上传到 S3
【发布时间】:2016-09-13 22:39:34
【问题描述】:

我正在尝试将文件从 Amazon 服务器 (EC2) 上传到 S3。

首先,我创建了一个名为“backup”的新 IAM 用户。我向该用户附加了托管策略“AmazonS3FullAccess”,这就足够了。此外,我添加了以下政策:

{
  "Statement": [
    {
      "Action": [
        "s3:ListAllMyBuckets"
      ],
      "Effect": "Allow",
      "Resource": "arn:aws:s3:::*"
    },
    {
      "Action": "s3:*",
      "Effect": "Allow",
      "Resource": ["arn:aws:s3:::bucket", "arn:aws:s3:::bucket/*"]
    }
  ]
}

我向用户添加访问密钥。

我回到服务器并通过 aws configure 输入 ID 和访问密钥。

在 S3 存储桶配置中,用户“pinco.pallo”(“backup”是“pinco.pallo”的 IAM)默认拥有所有被授权者,这就足够了。此外,我尝试添加以下策略:

{
    "Version": "2008-10-17",
    "Id": "Policy1425416644138",
    "Statement": [
        {
            "Sid": "Stmt1425416630319",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::XXXXXXXX:user/backup"
            },
            "Action": "s3:*",
            "Resource": "arn:aws:s3:::bucket/*"
        },
        {
            "Sid": "Stmt1425416630319",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::XXXXXXXX:user/backup"
            },
            "Action": "s3:*",
            "Resource": "arn:aws:s3:::bucket"
        }
    ]
}

顺便说一句,当我尝试 aws s3 cp --sse --region eu-west-1 file s3://bucket/ 我收到以下错误: upload failed: ./file to s3://bucket/file A client error (AccessDenied) occurred when calling the PutObject operation: Access Denied

有人有一些想法吗?非常感谢。

【问题讨论】:

  • 当然,如果我将所有权限授予Everyone,我可以复制文件,但是这个设置对我来说是不可接受的,因为bucket应该是私有的。
  • 您列出的第一个保单没有“委托人”,即受让人。
  • 第二个只列出bucket作为资源,你应该添加bucket/*
  • 谢谢你mojo,但我不明白你的cmets:(1)我列出的第一个政策是指IAM,谁应该是“负责人”? (2) second one指bucket和bucket/*有什么想法?
  • Nicola,我采用了您的 IAM 策略,将存储桶名称更改为我自己的名称,并且能够成功 aws s3 lsaws s3 cp file s3://bucket。问题不在于您的 IAM 政策。您提到您为aws configure“键入 ID 和访问密钥”,但该命令需要访问密钥和秘密密钥——这就是您的意思吗?

标签: amazon-web-services amazon-ec2 amazon-s3 aws-cli


【解决方案1】:

是的 - 类似于@peycho-dimitrov 提到的,如果您希望 cp 和 sync 工作,您需要设置权限和资源,如下所示:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "Stmt20000",
            "Action": [
                "s3:PutObject",
                "s3:PutObjectAcl",
                "s3:GetObject",
                "s3:GetObjectAcl",
                "s3:ListBucket",
                "s3:ListObjects"
            ],
            "Resource": [
                "arn:aws:s3:::bucket-name/*",
                "arn:aws:s3:::bucket-name"
            ],
            "Effect": "Allow"
        }
    ]
}

【讨论】:

    【解决方案2】:

    试试这个方法:

    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                    "s3:PutObject"
                ],
                "Resource": [
                    "arn:aws:s3:::mybackup",
                    "arn:aws:s3:::mybackup/*"
                ]
            }
        ]
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-06-24
      • 1970-01-01
      • 2019-09-13
      • 2014-06-13
      • 2017-06-10
      • 2017-07-13
      • 2017-06-06
      • 1970-01-01
      相关资源
      最近更新 更多