社内のデータやプログラムへのアクセス管理を行うことは、セキュリティの基本です。クラウド環境が広がるとともに、クラウドで利用するサービスに対しても、同じように厳重な管理が求められるようになってきました。そして、できることならば、セキュリティの負担はなるべく少なくすませたいというのが実情です。そのようなクラウド時代のセキュリティニーズに応えるAWSのIAMについて解説します。
IAMとは
IAMは(Identity and Access Management)の略ですが、AWSに限ったわけではなく、IDの上にさらに利用権限などを付与するなどで、重要なシステム等へのアクセスを制御するものです。ではAWS上のIAMとは、どのようなものなのでしょう。
IAMの目的と背景
システムは企業の重要な情報を蓄積しています。また、これらを動かすプログラムは、誤動作等を起こしてしまうことで、企業に大きな損失をもたらす場合があります。プログラムの改ざんによるものはもちろんですが、操作や設定のミスでも、誤動作は起きます。そのため、システムの管理者と利用者を厳格に分けることで、これらの過ちや情報漏えいを防いできました。
クラウドサービスについても、この考え方はセキュリティ上の基本となります。それを具体化したものがIAMであり、「どのようなサービス(リソース)」に対して、「どのような操作」を「誰に」許可するか、あるいは許可しないかを定義することで、アクセス者を限定し、セキュリティを高めるためのものです。
便利でリーズナブルなサービスだからといって、どのようなクラウドサービスでも利用できるというものではありません。企業のクラウド利用にともない、オンプレミス、クラウドなどに関わりなくアクセス管理等をする必要性は変わらず、それどころか、クラウド利用の高まりとともに、いっそうサービス利用に関するアクセス管理の重要性が問われるようになってきています。
基本的な利用方法
AWSでは、AWSの利用アカウントでIAMユーザーを作成し、アクセス権限の付与等を行うことになります。
IAMのメリットと機能
それでは、IAMのメリットや、具体的な機能について見てみましょう。
IAMのメリット
IAMにより、既存認証基盤との連係機能で、認証に関するユーザーコストの最小化がまず実現できます。遍在するリソースへのアクセス管理を効率化する、可搬性・再利用性の高いポリシー記述を可能とします。一時認証では、モバイル機器の利用時等ではエンティティ認証による安全なサービス間での連携も実現しますので、現代的なIT活用環境にも適合しています。そして、AWSの場合、使用料は無料という設定のため、従来のサービスの利用料に料金が追加されるものではなく、IAMユーザー等が一時的なセキュリティ認証情報を使用して他のAWSサービスにアクセスしたときにのみ、利用料が発生する仕組みです。
IAMの具体的な機能
機能の例としては、「AWSリソースへのきめ細かなアクセス制御」や「権限の高いユーザー向けのAWS MFAの使用」、「ウェブIDプロバイダーを使ったアプリケーションへのアクセスコントロール管理」、そして「社内ディレクトリとの統合」などを挙げられます。
IAM利用上のポイント
続いて、IAMを利用する上でのポイントや注意点を見てみましょう。
ルートユーザーを普段は利用しない
ルートユーザーとは、AWSのアカウントの開設時に、最初に作成される管理者ユーザーのことです。メールアドレスとパスワードでアクセスできるため、現在利用中のすべてのAWSサービスとリソースに、シングルサインインアイデンティティでのアクセス権限を持ちます。そのため、万が一の漏えいがあった場合、大きな損失を被る危険性がありますので、責任者であってもルートユーザーは使わないようにします。ルートユーザーの認証情報は安全な場所に保管し、必要なアカウント関連やサービス管理のタスク実行にのみ使用することになります。
AWSを使うときには、最初にルートユーザーのアクセスキーの削除を行い、MFAの有効化から始めましょう。管理者用には必要に応じて、機密性の高いリソースやAPIにアクセスが許されたIAMユーザーを発行するという方法でアクセス権を管理しましょう。
MFAの有効化
多要素認証(MFA)は、登録ユーザーがAWSにログインする際、アカウントとパスワードに加え、ユーザーの所有するデバイス等と重要なサービスの間を、もうひとつ別のパスワードにより管理をするものです。IAMユーザーに対する多要素認証(MFA)を有効化することで、ワンタイムパスワードが発行され、そのパスワードをもって、AWSの重要なアクセスが許される仕組みです。アカウントやパスワードが流出しても、管理者が使用する特定のデバイスからしかアクセスできない仕組みになります。管理者からの情報漏えいのリスクを下げる仕組みということになります。
アクセスキーの発行最小限
サービスやリソースの重要な部分へのアクセス、プログラム等の改編などのリクエストをAWS APIに送信するには、アクセスキーというセキュリティ認証情報が必要です。アクセスキーは、アクセスキーIDとシークレットアクセスキーの2つで構成されており、AWS APIがリクエストの送信者を認識し、同時に実行しようとしている内容が、その権限に合っているかを確認します。この結果、権限を越えるようなリクエストは拒否され、システムは保護されることになります。不正利用の防止はもちろんですが、誤って権限を越えた操作をしそうになった管理者の動きも制御できることになります。
アクセスキーの作成とその権限の管理は、AWSのIAMコンソールの上で行われます。IAMコンソールのメインページにある「Create a New Group Users」をクリックし、グループ名を付けることから始めます。必要に応じて、このグループに新しいユーザー等を追加していきます。このアクセスキーは一覧化され、ダウンロードできますので、安全な場所に保管します。
AWSへのプログラムでのアクセスには、これらのアクセスキーを使用し、自身のIDとアプリケーションIDを検証するなどの工程を経て、アクセスが許されます。その結果、不正や誤ったアクセスやリクエストを防ぐことができるのです。
アクセスキーについては、一般的なID管理のルールと同様に、その発行を必要最小限にし、現在、権限を持って現存しているユーザーのものだけが存在するようにします。異動や退職等で使わなくなったアクセスキーは使いまわしなどをせず、削除と再発行をするようにします。通常のシステムでは、これらの管理はシステムの担当者には負担で、油断するとルールどおりに守られないことが起きないとも限りません。AWSでは、これらのアクセス権限の管理がおざなりになるようなことを防ぐ仕組みになっているとも言えるでしょう。
今後も増えるクラウド利用とセキュリティを同時に実現
クラウドの利用は今後もますます増加することが見込まれます。AWS以外でもさまざまなクラウドサービスが展開されていますが、比較すべきポイントは、クラウドという環境でのセキュリティ管理の確実さや、容易さです。IAM機能でクラウドにおけるアクセス管理の問題も解決できるAWSを中心に、これからのクラウド利用を進めてみてはいかがでしょうか。
※本記事の内容につきましては2019年4月時点での情報です。
AWSの運用を始める方にオススメ!
AWSを利用している方が意外と知らない割引サービスの「AWS請求代行サービス」。利用するとどのようなメリットがあるかをご紹介します。