У меня 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 между учетными записями? Из раздела разрешений консоли я смог это сделать.