Как я могу получить доступ к защищенным файлам S3 в сценарии CFN?

Я пытаюсь получить файл в моем скрипте cloudformation. Если я делаю файл общедоступным, то он работает нормально. Если файл приватный, то скрипт cfn не работает, но с ошибкой 404 в /var/log/. Попытка получить файл через wget приводит к соответствующей ошибке 403.

Как я могу получить личные файлы из S3?

Мое предложение файла выглядит так:

    "files" : {
      "/etc/httpd/conf/httpd.conf" : { 
        "source" : "https://s3.amazonaws.com/myConfigBucket/httpd.conf"
      }
    },

Я добавил пункт аутентификации и соответствующий параметр:

"Parameters" : {
  "BucketRole" : {
    "Description" : "S3 role for access to bucket",
    "Type" : "String",
    "Default" : "S3Access",
    "ConstraintDescription" : "Must be a valid IAM Role"
  }
}

    "AWS::CloudFormation::Authentication": {
      "default" : {
        "type": "s3",
        "buckets": [ "myConfigBucket" ],
        "roleName": { "Ref" : "BucketRole" }
      }
    },

Моя роль IAM выглядит так:

{
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "s3:Get*",
        "s3:List*"
      ],
      "Resource": "*"
    }
  ]
}

person chris    schedule 28.05.2013    source источник


Ответы (1)


Решение состоит в том, чтобы добавить свойство IamInstanceProfile к созданию экземпляра:

   "Parameters" : {
     ...
     "RoleName" : {
       "Description" : "IAM Role for access to S3",
       "Type" : "String",
       "Default" : "DefaultRoleName",
       "ConstraintDescription" : "Must be a valid IAM Role"
     }
   },

   "Resources" : {
     "InstanceName" : {
       "Type" : "AWS::EC2::Instance",
       "Properties" : {
         "ImageId"             : { "Fn::FindInMap" : [ "RegionMap", { "Ref" : "AWS::Region" }, "64"] },
         "InstanceType"        : { "Ref" : "InstanceType" },
         "SecurityGroups"      : [ {"Ref" : "SecurityGroup"} ],
         "IamInstanceProfile"  : { "Ref" : "RoleName" },
         "KeyName"             : { "Ref" : "KeyName" }
       }
     },
     ...
person chris    schedule 28.05.2013