適材適所でクラウドを使い分ける企業が増えている。ここで課題になるのがクラウドごとの違いだ。AWS(アマゾン・ウェブ・サービス)、Google Cloud Platform(GCP)、Microsoft Azureはサービスラインアップが似ているが、用語やサービスの構造、利用できる機能などに差異がある。本連載ではテーマ別に各クラウドの特徴を取り上げ、違いを浮き彫りにしていく。第1回から第3回は「始め方」をテーマに、アカウントのセキュリティを中心に解説する。第1回はAWSだ。
AWS(アマゾン・ウェブ・サービス/Amazon Web Services)は世界で最も選ばれている*1パブリッククラウドです。2006年のサービス開始以降、サービス拡大を続けて現在は200を超えるサービスを提供しています。
今回は企業でAWSを利用する際の「始め方」をテーマに解説します。最初に考えなくてはならないのは、クラウドのリソースを操作する「アカウント」のセキュリティです。個人利用だと自由に決められますが、企業ではそうはいきません。法令や業界のガイドライン、ユーザー企業固有の事情などに準じたセキュリティポリシーが策定されているはずです。
企業がAWSの利用を始めるには、ユーザー企業のセキュリティポリシーを順守したアカウントのセキュリティが欠かせません。
デフォルトのままだと企業のポリシーに準拠できない?
AWSを始める際には、まず「AWSアカウント」を作成する必要があります。AWSアカウントとは仮想サーバーやマネージドデータベース、ストレージなどのAWSのリソースを使用するために必要なテナントのようなものです。必要な情報の入力と本人確認ができれば、すぐにAWSアカウントが作成されます。
AWSアカウントを作成したら「早速使っていこう!」と思うかもしれません。しかし、デフォルトの設定値はあなたの企業のセキュリティポリシーを満たしていないかもしれません。AWSアカウントを作成したら、まずは次の4つを実施するようにしましょう。
(1)「ルートユーザー」を封印して「IAMユーザー」を使う
AWSアカウントを作成すると、自動的に「ルートユーザー」と呼ばれるユーザーアカウントが作成されます。ルートユーザーはAWSアカウント内の全リソースへのあらゆるアクセス権限を持ち、AWSアカウント自体を削除することもできます。いわゆる「特権ID」に当たります。
漏洩時の危険性が極めて高いうえ、日々の作業にあたるIT担当者が使うには権限が強すぎるため、ルートユーザーは常用するアカウントには向きません。普段使い用に「IAMユーザー」を作成して、それを使用すべきです。
IAMユーザーとは、明示的に付与した権限の範囲内でのみAWSリソースを操作できるユーザーアカウントです。ルートユーザーは1つのAWSアカウントに対して1つしか存在しませんが、IAMユーザーは1つのAWSアカウントに対して複数作成することができます。
操作ログを確認した際に誰の操作であるか特定できるよう、作業者1人に対してIAMユーザーを1つ作成しましょう。1つのIAMユーザーを複数人で共用するのは推奨できません。また、IAMユーザーへ付与する権限は、操作ミスを防ぐため最小限にすることをおすすめします。
封印前に「MFAの設定」と「既存アクセスキーの削除」を
一通りIAMユーザーを作成したら、ルートユーザーは普段使わないよう“封印”します。ルートユーザーを封印する前に、実施しておくべきことが2つあります。
1つ目は「MFA(多要素認証)の設定」です。ルートユーザーを不正利用されると、AWSリソースを悪用されたり、AWSカウントの削除でシステムを壊されたりする可能性があります。そこで、万が一ルートユーザーの認証情報が漏洩したとしても、第三者による不正利用のハードルを上げておく必要があります。MFAはその手段となります。
ただし、MFAを設定したデバイスを紛失すると、正規ユーザーまでルートユーザーを使えなくなってしまいます。絶対に紛失しないよう注意しましょう。
2つ目は「既存アクセスキーの削除」です。アクセスキーはコマンドラインインターフェース(CLI)や、プログラム上からAWSリソースを操作するための認証情報です。マネジメントコンソール(管理画面)からのAWSリソース操作と同様に、AWSリソースの作成や削除などをすることができます。
ルートユーザーのアクセスキーが漏洩してしまうと、プログラム上から第三者がコンソールを介することなく全AWSリソースの操作ができてしまいます。そのため、アクセスキーを削除して、そもそもそうした不正アクセスができないようにしておきましょう。