AWS CFT шаблон IAM Политика - PullRequest
       8

AWS CFT шаблон IAM Политика

0 голосов
/ 20 сентября 2018

Я использую CFT для создания политики IAM, которая разрешает доступ только к одной корзине S3 (которая также создается в том же самом CFT).Вот часть CFT, где проблема заключается в

    {
    "AWSTemplateFormatVersion": "2010-09-09",
    "Resources": {
        "BucketCreation":{
            "Type": "AWS::S3::Bucket",
            "Properties": {
               "BucketName":"samplebucket",
              }
            },
        "IAMPolicy":{
          "Type": "AWS::IAM::Policy",
          "Properties": {
            "PolicyName": "ListS3BucketsPolicy",
            "PolicyDocument": {
                "Statement": [{
                    "Effect": "Allow",
                    "Action": [
                        "s3:*"
                    ],
                    "Resource": "Fn::GetAtt" : [ "BucketCreation" , "Arn" ]
                }]
             }
          }
       } 
    } 
  }

Теперь вышеприведенный cft создает политику IAM с оператором ресурса "Resource": "arn:aws:s3:::bucketname", что дает только доступ к сегменту, а не доступ на уровне объекта.Что мне нужно, так это раздел ресурсов, чтобы он выглядел следующим образом "Resource": "arn:aws:s3:::bucketname/*". Возможно ли это в CFT?

Ответы [ 2 ]

0 голосов
/ 20 сентября 2018

Благодаря @titogeo.Я нашел решение. Вот оно:

    {
     "AWSTemplateFormatVersion": "2010-09-09",
     "Resources": {
        "BucketCreation":{
           "Type": "AWS::S3::Bucket",
           "Properties": {
              "BucketName":"samplebucket"
             }
          },
        "IAMPolicy":{
          "Type": "AWS::IAM::Policy",
          "Properties": {
             "PolicyName": "ListS3BucketsPolicy",
             "PolicyDocument": {
                 "Statement": [{
                     "Effect": "Allow",
                     "Action": [
                         "s3:*"
                      ],
                  "Resource":{ 
                      "Fn::Join":["",[
                                       {
                                         "Fn::GetAtt" : [ "BucketCreation" , "Arn" ]
                                        },
                                       "/*"
                                      ]
                                  ]
                             }
                        }]
                     }
                 }
             } 
         }

     }

PS: Извините за плохую неопределенность.Я разочарован этим, если бы кто-то мог это исправить, это было бы полезно.

0 голосов
/ 20 сентября 2018

Да, вы можете увидеть здесь

Вы можете использовать подстановочные знаки как часть ресурса ARN.Вы можете использовать подстановочные знаки (* и?) В любом сегменте ARN (части, разделенные двоеточиями).Звездочка (*) обозначает любую комбинацию из нуля или более символов, а знак вопроса (?) Обозначает любой отдельный символ.Вы можете использовать несколько * или?символы в каждом сегменте, но подстановочный знак не может охватывать сегменты.

Этот ARN использует подстановочный знак * в части относительного идентификатора ARN для идентификации всех объектов в примере сегмента.

Обновление: Чтобы объединить /* посмотрите на встроенные функции как Присоединиться

...