限制 CodeStar 可以使用的子网或托管区域的策略

Policy to limit subnets or hosted zone CodeStar can use

是否有可以从 created/attached 到 CodeStarWorker-*-CloudFormation 的 IAM 策略来限制 CodeStar 工作人员可以使用的 SubnetHostedZoneId

这是一个例子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 访问权限的用户访问 import/use 任何允许 public 互联网访问的内容(无论如何,未经管理员批准)。我怎样才能阻止某人 setting/importing PublicSubnet1PublicSubnet2 作为 Subnet 中的一员?或者阻止他们 setting/import PublicDomainDotCom 作为 HostedZoneId?

我可以通过将以下政策附加到 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"
            ]
        }
    ]
}

这将只允许 CodeStar 的 CloudFormation 角色在管理员允许的托管区域 ID 中创建 Route 53 记录集。

我相信还有其他方法可以保护您的基础设施和数据免受具有 CodeStar 角色的不良行为者的侵害。如果您有任何想法(例如,限制 EC2 VPCs/Subnets),请随时分享。