AWS Control TowerでData Residency(データ常駐)保護のガードレールが追加されたのでどう活用するか考えてみた #reinvent

Data Residency用のガードレールが追加されましたが、結構汎用できそうです。
2021.12.02

こんにちは、臼田です。

みなさん、re:Inventエキサイトしてますか!?(挨拶

re:Invent 2021でAWS Control TowerのData Residencyガードレールが追加されました。

17個も追加されたので、どんな風に利用するかを考えてみました。

ガードレールの分類

これらのガードレールは以下のような分類になっています。

  • 全てガイダンス: 選択的
  • 動作は4つ予防、残りは検出
  • カテゴリは新設のData Residency

ガイダンスは3種類あり、AWSとしての優先順序的に必須 / 強く推奨 / 選択的となっているため、今回追加された17種類は、AWS的には使わないのをベースに、必要なものを抽出していく形になります。

とはいえ、実際の要件によって考えが変わるので、それをここで考えていきます。

活用方法

今回は以下3つに分類しました。

  • 割と使ってもいい
  • 外部向けVPCを使わない場合
  • VPC間でデータ通信をさせない場合

解説していきます。

割と使ってもいい

  • Deny access to AWS based on the requested AWS Region
    • 指定されたリージョン外のグローバル及びリージョナルサービスでの指定していないサービスの利用拒否
    • Control Tower管理リージョン以外は絶対に使わせない、という場合は利用できます
    • 少し特殊なガードレールなので以下も参照してください

  • Detect whether public IP addresses for Amazon EC2 autoscaling are enabled through launch configurations
    • EC2 AutoScaling Groupの起動設定でパブリックIPアドレスが有効になっているかの検出
    • AutoScaling配下は基本パブリックに公開しないのでほとんどの環境で使えそうです
  • Detect whether replication instances for AWS Database Migration Service are public
    • AWS Database MigrationServiceのレプリケーションインスタンスがパブリックであるかどうかの検出
    • 基本パブリックに公開しないのでほとんどの環境で使えそうです
  • Detect whether Amazon EBS snapshots are restorable by all AWS accounts
    • すべてのAWSアカウントがAmazonEBSスナップショットを復元するためのアクセス権を持っているかどうかを検出
    • EBSスナップショットを公開することは無いのでほとんどの環境で使えそうです
  • Detect whether any Amazon EC2 instance has an associated public IPv4 address
    • EC2インスタンスにパブリックIPv4アドレスが関連付けられているかどうかを検出
    • 検証用などで野良にパブリックなEC2を立てるなど、よくありがちなので使ったほうがいいです
    • EC2にアクセスしたいならSSM Systems Managerを利用しましょう
  • Detect whether Amazon S3 settings to block public access are set as true for the account
    • S3のパブリックアクセスをブロックするために必要な設定がアカウントに対して(Not バケット/アクセスポイント)、trueどうかを定期的に検出
    • S3バケットを公開しないAWSアカウントであれば必須です
  • Detects whether an Amazon EKS endpoint is blocked from public access
    • EKSエンドポイントがパブリックアクセスからブロックされているかどうかを検出
    • 基本パブリックに公開しないのでほとんどの環境で使えそうです
  • Detect whether an Amazon OpenSearch Service domain is in Amazon VPC
    • Amazon OpenSearchServiceドメインがAmazonVPCにあるかどうかを検出
    • 基本パブリックに公開しないのでほとんどの環境で使えそうです
  • Detect whether any Amazon EMR cluster master nodes have public IP addresses
    • EMRクラスターマスターノードにパブリックIPアドレスがあるかどうかを検出
    • 基本パブリックに公開しないのでほとんどの環境で使えそうです
  • Detect whether the AWS Lambda function policy attached to the Lambda resource blocks public access
    • LambdaリソースにアタッチされたLambdaファンクションポリシーがパブリックアクセスをブロックしているかどうかを検出
    • 基本パブリックに公開しないのでほとんどの環境で使えそうです
  • Detect whether Amazon Redshift clusters are blocked from public access
    • Amazon Redshiftクラスターがパブリックアクセスをブロックしているかどうかを検出
    • 基本パブリックに公開しないのでほとんどの環境で使えそうです
  • Detect whether an Amazon SageMaker notebook instance allows direct internet access
    • Amazon SageMakerノートブックインスタンスが直接インターネットアクセスを許可しているかどうかを検出
    • 基本パブリックに公開しないのでほとんどの環境で使えそうです
  • Detect whether AWS Systems Manager documents owned by the account are public
    • アカウントが所有するAWS Systems Managerドキュメントが公開されているかどうかの検出
    • 基本パブリックに公開しないのでほとんどの環境で使えそうです

外部向けVPCを使わない場合

以下はVPCを閉じた使い方しかしない場合には利用できます。

  • Disallow internet access for an Amazon VPC instance managed by a customer
    • VPC配下のインスタンスのインターネットアクセスの禁止
  • Disallow Amazon Virtual Private Network (VPN) connections
    • VPCに対するSite to Site VPNの禁止
  • Detect whether public routes exist in the route table for an Internet Gateway (IGW)
    • インターネットゲートウェイ(IGW)のルートテーブルにパブリックルートが存在するかどうかを検出
  • Detect whether any Amazon VPC subnets are assigned a public IP address
    • すべてのAmazon VPCサブネットにパブリックIPアドレスが割り当てられているかどうかを検出

VPC間でデータ通信をさせない場合

Data Residencyの趣旨の1つであるリージョン間のデータ転送を禁止する場合に利用します。

  • Disallow cross-region networking for Amazon EC2, Amazon CloudFront, and AWS Global Accelerator
    • EC2/CloudFront/GlobalAcceleratorのクロスリージョン利用の禁止

まとめ

新しいData Residencyガードレール17個について考察してみました。

追加されたコンセプト的にはあまり使う環境は少ないかと思いましたが、汎用的なものも多い印象です。

是非活用していきましょう。