Политика для ограничения подсетей или размещенной зоны CodeStar можно использовать - PullRequest
0 голосов
/ 08 февраля 2020

Существует ли политика IAM, которую можно создать / присоединить к CodeStarWorker-*-CloudFormation, которая ограничивает Subnet s или HostedZoneId s, которые может использовать работник CodeStar?

Вот пример template.yml:

Resources:
  # other resources
  DevAlb:
    Properties:
      LoadBalancerAttributes: []
      Name: !Sub '${ProjectId}-dev-alb'
      Scheme: internal
      SecurityGroups:
        - !Ref AlbSecurityGroup
      Subnets:
        - !ImportValue PrivateSubnet1
        - !ImportValue PrivateSubnet2
      Tags:
        - Key: Name
          Value: !Sub '${ProjectId}-dev'
    Type: 'AWS::ElasticLoadBalancingV2::LoadBalancer'
  DevAlbDns:
    Properties:
      AliasTarget:
        DNSName: !GetAtt 
          - AlbDev
          - DNSName
        HostedZoneId: !GetAtt 
          - AlbDev
          - CanonicalHostedZoneID
      HostedZoneId: !ImportValue InternalDomainDotCom
      Name: !Sub '${ProjectId}.internal-domain.com'
      Type: A
    Type: 'AWS::Route53::RecordSet'

Я не хочу, чтобы пользователи с доступом CodeStar могли импортировать / использовать что-либо, что позволило бы опубликовать c inte rnet доступ (в любом случае без одобрения администратора). Как я могу запретить кому-либо устанавливать / импортировать PublicSubnet1 и PublicSubnet2 как один из Subnet s? Или запретить им устанавливать / импортировать PublicDomainDotCom как HostedZoneId?

1 Ответ

0 голосов
/ 08 февраля 2020

Я смог сделать это, прикрепив следующую политику к CodeStarWorker-app-CloudFormation!

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "route53:GetChange",
                "route53:GetHostedZone",
                "route53:ListHostedZones",
                "route53:ListHostedZonesByName",
                "route53:ListResourceRecordSets",
                "route53:GetHostedZoneCount",
                "route53domains:*"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "route53:ChangeResourceRecordSets",
                "route53:ListResourceRecordSets",
                "apigateway:GET"
            ],
            "Resource": [
                "arn:aws:route53:::hostedzone/REPLACE_WITH_HOSTED_ZONE_ID",
                "arn:aws:apigateway:*::/domainnames"
            ]
        }
    ]
}

Это позволит только роли CloudFormation CodeStar создавать набор записей Route 53 в идентификаторе размещенной зоны, который есть у администратора. разрешено.

Я уверен, что есть другие способы защитить вашу инфраструктуру и данные от плохих игроков с ролями CodeStar. Не стесняйтесь делиться, если у вас есть какие-либо идеи (например, ограничение VPC / подсетей EC2).

...