首页 文章

具有IAM角色的AWS EC2的静态内容

提问于
浏览
14

通过the / many / resources阅读如何在已启动的EC2实例中使用临时AWS凭证,我似乎无法运行极其简单的POC .

Desired:

  • 启动EC2实例

  • SSH in

  • 从私有S3存储桶中提取一段静态内容

Steps:

  • 创建 IAM 角色

  • 使用指定的上述 IAM 角色启动新的 EC2 实例; SSH in

  • 使用 aws configure 设置凭据,并在 http://169.254.169.254/latest/meta-data/iam/security-credentials/iam-role-name 中填充( successfully )的详细信息

  • 尝试直接使用 AWS CLI 来访问该文件

IAM 角色:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "s3:GetObject"
      ],
      "Resource": "arn:aws:s3:::bucket-name/file.png"
    }
  ]
}

当我使用 AWS CLI 访问该文件时,抛出此错误:

A client error (Forbidden) occurred when calling the HeadObject operation: Forbidden
Completed 1 part(s) with ... file(s) remaining

我错过了哪一步?

7 回答

  • 12

    为了将来参考,问题在于我如何调用 AWS CLI ;以前我跑步:

    aws configure
    

    ...并提供在自动生成的角色配置文件中找到的详细信息 .

    一旦我只是允许它找到自己的临时凭证,只需手动指定唯一的其他必需参数(区域):

    aws s3 cp s3://bucket-name/file.png file.png --region us-east-1
    

    ......文件拉得很好 . 希望这将有助于将来的某个人!

  • 1

    希望这可能有助于其他一些谷歌人来到这里 .

    A client error (403) occurred when calling the HeadObject operation: Forbidden
    

    如果您的系统时钟太远,也可能导致错误 . 我过去12个小时就遇到了这个错误 . 将时钟设置为真实时间的一分钟内,错误就消失了 .

  • 2

    根据Granting Access to a Single S3 Bucket Using Amazon IAM,IAM策略可能需要应用于两个资源:

    • 适当的水桶(例如"arn:aws:s3:::4ormat-knowledge-base")

    • 桶内的所有对象(例如"arn:aws:s3:::4ormat-knowledge-base/*")

    又一个绊网 . 该死的!

  • 3

    我刚收到此错误,因为我有一个旧版本的awscli:

    破碎:

    $ aws --version aws-cli/1.2.9 Python/3.4.0 Linux/3.13.0-36-generic

    作品:

    $ aws --version aws-cli/1.5.4 Python/3.4.0 Linux/3.13.0-36-generic

  • 14

    如果存储桶中不存在密钥,也会出现此错误 .

    仔细检查密钥 - 我有一个脚本,当它将项目发布到存储桶时,在密钥的开头添加了一个额外的斜杠 . 所以这:

    aws s3 cp --region us-east-1 s3://bucketname/path/to/file /tmp/filename
    

    失败,“调用HeadObject操作时发生客户端错误(禁止):禁止访问” .

    但是这个:

    aws s3 cp --region us-east-1 s3://bucketname//path/to/file /tmp/filename
    

    工作得很好 . 根本不是权限问题,只是骨干密钥创建 .

  • 0

    我有这个错误,因为我没有将策略附加到我的IAM用户 .

    How it should look

  • 8

    tl;博士:通配符文件globbing在s3cmd中为我工作得更好 .

    和aws-cli一样酷 - 因为我的一次性S3文件操作问题没有立即起作用,因为我希望并且认为可能 - 我最终安装并使用s3cmd .

    无论我在概念上想象的语法和幕后工作是什么,s3cmd都更直观,更适合我的偏见 .

    也许这不是你来这里的答案,但它对我有用 .

相关问题