AWSで使わないリージョンへの対策まとめ
西澤です。AWSには、データセンターが集積されている世界中の物理的ロケーションとしての「リージョン」という概念があります。日本のお客さまの大多数は東京リージョンと大阪リージョンを中心にご利用されていると思いますが、今日は利用予定のないリージョンをどのように管理すべきかについて整理してみようと思いました。
AWSで利用できるリージョン
2021年7月現在、中国リージョンやGovCloudを含めるとなんと合計25ものリージョンが利用可能なのですが、このうち17のリージョンは初期状態として利用可能な状態となっています。もっとリージョンが少なかった時代ではそこまで気になりませんでしたが、現状ですと使わないリージョンが大多数であるにも関わらず、それが利用できる状態にあるということがAWS利用者から見るとリスクにもなっています。
AWSリージョンあるある
みなさんは意図しないリージョンでEC2インスタンスを起動してしまったことはないでしょうか?AWSマネージメントコンソールでリージョン選択を誤ったままリソースを作るというのは、AWS初心者あるあるなのではないかと思います。また、開発環境では誤ったリージョンに作ったリソースに気付かず、異なるリージョンで意図せず費用が発生してしまったなんてことも起こりがちです。
万一アクセスキーが流出すると、攻撃者は利用可能な全リージョンでハイスペックなインスタンスを起動して仮想通貨のマイニングを行うことが知られています。利用予定の無いリージョンでは、最低限監査ログを取得し、不正利用や誤操作を通知する、欲を言えば使えない状態にしておくのが望ましいと思います。
OptInできるリージョン
増えてきたリージョンに対する対策としてAWS側でも機能追加があり、香港リージョン以降の一部リージョンを利用する場合には明示的に有効化(OptIn)が必要となりました。これは素晴らしいアップデートだと思います。今後全リージョンに対して簡単にOptIn/Outができる機能がリリースされれば、このような記事がそもそも不要になるのですけれども。
- アフリカ (ケープタウン)=af-south-1
- アジアパシフィック (香港)=ap-east-1
- ヨーロッパ (ミラノ)=eu-south-1
- 中東 (バーレーン)=me-south-1
使わないリージョンは監査ログ、脅威通知設定を有効にしよう
AWS利用開始時のお作法として、最初に必ず全リージョンの監査ログ(CloudTrail)を有効しておきましょう。こちらはボタン1つで有効化ができるようになっていますので、誰でも簡単に設定することができます。クラスメソッドメンバーズ では、初期設定で有効となっています。
監査ログを取得して追跡可能とするだけでなく、不正利用に気付けるようにしておくことも重要です。そこで、マネージド型脅威検出サービスであるAmazon GuardDutyを利用しましょう。CloudFormationのStackSetsを利用する為の初期設定が必要だったり、各リージョンごとにSubscription Confirmが必要だったりして、少々手間もかかりますが、便利な一括設定用の手順が公開されています。利用していないリージョンであれば、ほぼ利用費はかかりませんので、ぜひ全リージョンでのGuardDuty有効化をご検討ください。
使わないリージョンを使えなくすることも検討しよう
AWSサービスへのアクセスはIAMにて制御します。そもそも使わないリージョンは、「使えない状態にすること」が望ましいと思います。ただし、メインで利用するリージョン以外にグローバルサービスと呼ばれるバージニアリージョン内のエンドポイントで管理されているサービスもある為、実際のポリシーは複雑なものになりますし、作成するIAMリソースに対してそれぞれリージョン制限設定を施していくのは管理上手間もかかりますし、設定漏れが発生する可能性もあります。
例えば、AWS OrganizationsのSCP(Service Control Policy)機能を利用することで、管理下のAWSアカウントに対してまとめて制限をかけるような設定も可能です。こちらの機能はそもそも複数AWSアカウントをご利用のお客さまを想定した機能で、あくまでガードレールとして最低限の禁止ルールのみを設定するようなものが適切かと思います。変更する場合の影響も大きいので、事前に適用範囲を絞って十分に検証した上での設定変更をお勧めします。
まとめ
歴史も古く、使えないサービスほぼ無し、利用費安め、日本からもそう遠くない、等の理由で、個人検証をするときはオレゴンリージョン(us-west-2)を愛用しています。本番環境と分離して管理する為に開発環境は別リージョンを使うというシステムもありますし、マルチリージョンを利用したグローバルなシステム、災害対策(DR)環境としての海外リージョン利用等、複数リージョン利用を検討されるお客さまも多数いらっしゃいますし、世界中のリージョンがいつでも利用可能な状態であることはAWSを利用する大きなメリットでもあります。個人的には訪れたことも無いような地にサーバを起動して操作できるというのも、クラウド利用の醍醐味ではあったりするのですが、一方でユーザー側の利便性向上、リスク低減につながるようなAWS機能追加にも期待したいと思います。