AWS IAMによる権限設定のメリットと設定方法

AWSのさまざまなリソースやサービスについてのセキュリティを効率よく管理するために利用されているのがAWS IAM(AWS Identity and Access Management)です。AWS IAMを設定すれば、各ユーザーもしくはユーザーの所属するグループに対して、アクセス許可・拒否を設定して、社内のセキュリティ権限を適正に保つことができます。今回は、このAWS IAMについて解説します。

AWS IAMとは?

AWS IAMはAWSのアカウント管理や権限の設定に大きな役割を果たすものです。その概要について紹介します。

AWS IAMの概要

AWS IAMとは、AWSのサービスやリソースへのアクセスを安全に管理することができるサービスです。AWS IAMを利用すると、AWSのユーザーやグループを管理・作成し、ユーザー・グループごとにAWSのリソースへの許可や拒否を設定する設定ができます。

Amazon EC2、Amazon S3、Amazon RDSなど、ほとんどのAWSのサービスにおいてIAMを利用できます。IAMを利用する際にはAWSマネジメントコンソールからアクセスする方法が一般的です。また、過去90日間のIAMでの利用履歴はAWS CloudTrailにてログ情報として自動保存されます。

AWS IAMの機能

AWS IAMの機能を使用してできることにはどのようなものがあるでしょうか。

IAMユーザーのアクセス管理

利用者にIAMユーザー(IDとパスワード)を付与することにより、リソースの許可/拒否を設定・管理することができます。

フェデレーティッドユーザーのアクセス管理

フェデレーティッドユーザーは、事前にIAMロールのセキュリティ認証を使ってログインをすることができるユーザーです。個別にIAMユーザーを設定しなくてもアクセスキー(有効期限あり)でログインすることができます。

日常の運用管理業務でAWSのルートアカウントの代わりに使える

AWSを契約する際のルートアカウントは、リソースすべてにアクセスできるだけでなく、アカウントの停止のような重要操作を行うこともできるため、普段は使用すべきではありません。ルートアカウントを使用する代わりに、必要に応じてアクセス権限が設定されたAWS IAMユーザーを利用するという形をとります。

ルートアカウントとIAMユーザーとの関係は、インターネット関連のサービスを利用する際に設定者用・管理者用のIDとユーザー用のログインIDを使い分けするようなイメージです。

しかしながら、IAMのIDとパスワードの情報があれば、外部から第三者がAWSにログインすることが可能になってしまいます。不正ログインを防ぐために、強力なパスワード(複雑で第三者が推測しにくいもの)を追加設定し、定期的にパスワード変更をかけます。パスワードをセキュアに管理するためには、社内で同じパスワードを使いまわすのも避けた方がよいでしょう。また、特権ユーザーについてはMFA(多要素認証)機能の利用も検討しましょう。

AWS IAMの料金

AWS IAM自体には追加料金はかかりません。利用したS3やEC2などのAWSサービスにかかる料金のみで利用できます。

IAMユーザーとIAMロールの管理

次に、IAMユーザーとIAMロールの管理について解説します。

IAMユーザーとIAMグループ

IAMユーザーを登録するには、ユーザー名(任意の文字列もしくはメールアドレスなど)を設定し、ユーザーごとにパスワードを設定します。必要に応じて、アクセスキーやシークレットキーを生成して設定することもできます。ユーザー名を設定することで、IAMユーザー名を見ただけでどのユーザーのIDなのか、ほかのユーザーも特定しやすくなります。

IAMグループとは、IAMユーザーをまとめて管理するグループのことです。IAMユーザーは、複数のIAMグループに登録することができますが、グループ内に別のグループを設定することはできません。グループごとにアクセス権限などを付与することにより、ユーザーと権限ひもづけの管理が容易になり、権限の設定漏れなどを防ぐ効果も期待できます。

特権ユーザー

特権ユーザーは、MFA(パスコードのような多要素認証)を有効化してアクセス管理機能を付与することで、効率的かつ安全に特権ユーザーを利用することができます。また、例えば部門におけるアクセス権限の割り振りを変更できるアクセスキーについては、特定のIAMユーザーにのみ期限設定付きで付与することで管理を徹底することができます。

特権ユーザーの設定により、機密性の高いリソースなどの管理をAWSにて安全に行うことができます。

IAMロール

IAMロールをAmazon EC2のロールに割り当てることにより、アクセスキーやシークレットキーを使用しなくてもアクセス権限を管理することができます。IAMロールを設定するとキーの流出リスクがゼロになり、セキュリティ面の強化につながります。さらに、キーの定期的な変更や管理などの手間を軽減できる効果もあります。

IAMロールは、AssumeRoleにアクセスすることで設定できます。各ユーザーに対して個別に権限を設定しなくても、リソースに対してアクセスの許可/拒否を設定できるため、非常に効率的です。

IAMロールは、以下のようにアカウント間でアクセス権を委任する際にも使用します。

  • AWSサービスロール(AWSサービスにアクセス許可を委任するロールを作成できます)
  • クロスアカウントアクセスのロール(あるアカウントのアクセス権限を別のアカウントにクロスアカウントすることで、新たにIAMユーザーを作らなくても権限を管理できます)
  • IDプロバイダアクセス用のロール(AWS外部ユーザーIDを管理して、アクセス許可を与えることができます)

ポリシーとアクセス許可

最後に、AWSのポリシーとアクセス許可について解説します。

ポリシーとは

ポリシーとは、どのユーザー・グループ・ロールに対して何を許可(もしくは拒否)するかを定義するための定義フォーマットです。IAMユーザーやIAMロールに対してポリシーを設定することによって、初めてアクセス権限の効力が生まれるということです。

IAMポリシーを設定する際のポイントは、最小限のアクセス権を付与するか、業務の実行のために必要な機能にのみ絞ってアクセス権限を付与することです。

アクセス許可を行う方法

アクセス権限を付与するためには、権限を持ったユーザーがポリシーを使用して必要なアクセス権限を設定する必要があります。IAMユーザー、グループ、ロールはデフォルト状態ではアクセス権限を持っていないので、権限を持ったユーザーがポリシーを作成して付与します。逆にいえば、ポリシーを設定しなければIAMユーザーやロールのアクセス権限機能は働きません。

まとめ

AWS IAMを使って、ユーザーやグループを管理することで、自社のAWSユーザーが適切な範囲内でAWSのリソースにアクセスすることが可能になります。グループやIAMロールを利用すれば、効率よく、そして安全に権限を設定することもできます。追加料金なしで利用できるサービスですので、設定方法を把握して管理体制の向上に役立てましょう。

セキュリティに興味がある人に読んで欲しいコラム:

Amazon Web Services(AWS)、Microsoft Azureの
導入支援サービスのご相談、お問い合わせをお待ちしております。

ページ上部へ戻る