CloudFormation, доступ к сегменту S3 для роли кросс-счета IAM - PullRequest
1 голос
/ 13 марта 2020

У меня 2 аккаунта, s3_buck_acct и iam_acct. Я хочу предоставить роль IAM от iam_acct для определенных действий в корзине S3 из s3_buck_acct.

Вот шаблон CloudFormation, который я придумал, который заканчивается ошибкой:

Resources:
  S3BucketTest:
    Type: AWS::S3::Bucket
    Properties:
      BucketName: "cross-acct-permission-demo"
      LifecycleConfiguration:
        Rules:
        - Id: LifecycleExpRule 
          ExpirationInDays: '3650'
          Status: Enabled
      BucketEncryption: 
        ServerSideEncryptionConfiguration:
          - ServerSideEncryptionByDefault:
              SSEAlgorithm: AES256

  S3CURBucketPolicy: 
    Type: AWS::S3::BucketPolicy
    Properties: 
      Bucket: 
        !Ref S3BucketTest
      PolicyDocument: 
        Statement: 
          - Action:
                - 's3:ListBucket'
                - 's3:ListBucketMultipartUploads'
                - 's3:PutObject'
                - 's3:GetObject'
            Effect: "Allow"
            Resource: 
              - "arn:aws:s3:::cross-acct-perm-demo"
              - "arn:aws:s3:::cross-acct-perm-demo/*"
            Principal: "arn:aws:iam::1234567890:role/service-role/test-role-20190828T130835"
          - Action: "*"
            Resource: !Join [ '', ["arn:aws:s3:::", !Ref S3BucketTest, '/*']]
            Principal: '*'
            Effect: Deny
            Condition:
              Bool:
                'aws:SecureTransport':
                  - 'false'

Сообщение об ошибке:

Неверный синтаксис политики. (Service: Amazon S3, код состояния: 400; Код ошибки: MalformedPolicy; Request ID: 91BF8921047D9D3B; S3 Расширенная Request ID: ZOVOzmFZYN6yB1btOqMqgJjOpzfiUpP86c2XiVylzYkg37fGga8 / eYDL7C4WzwhmcDGU7NJkL68 =)

Не уверен, где я получил это неправильно. Могу ли я предоставить S3 bucket доступ к IAM между учетными записями? Из раздела разрешений консоли я смог это сделать.

Ответы [ 2 ]

1 голос
/ 13 марта 2020

Ваша корзина называется cross-acct-permission-demo, но ваша политика указывает cross-acct-perm-demo. Также ваш отступ не верен для первого Action (хотя это не должно вызывать эту проблему). Также не уверен, что принцип service-role является правильным в этом контексте.

1 голос
/ 13 марта 2020

Если вы хотите, чтобы пользователи IAM в учетной записи A могли иметь доступ к ресурсам в учетной записи B, то вы создаете роль IAM в учетной записи B, которая предоставляет доступ к соответствующим ресурсам в учетной записи B, тогда вы определяете учетную запись A как доверенную сущность для роль IAM, то вы разрешаете доступ к этой роли соответствующим пользователям в учетной записи A. Теперь эти пользователи в учетной записи A могут взять на себя роль (кросс-учетной записи) в учетной записи B и получить доступ к ресурсам в учетной записи B.

См. Учебное пособие: делегирование доступа через AWS учетные записи с использованием ролей IAM

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...