Blog

AWS IAMの説明と必要ない理由

2024年2月3日

AWSは165以上のサービスから構成されています。そして、もしあなたがAWSを使うなら、それがウェブサイトのホスティングであれ、クラウドストレージのS3の利用であれ、仮想サーバーの管理であれ、ほとんどの場合、いくつかの許可やポリシーを通過する必要があります:IAM(アイデンティティ・アクセス管理)を扱うことになります。

そして、すぐに圧倒されてしまうのです。IAMを説明し、なぜそれが必要ないのかを説明します。

IAMコアコンポーネント

これは無料のAWS製品で、グループ内でアクセスできるユーザーだけでなく、そのユーザーが使用できるリソースも定義することができます。

AWSのサービス上でどのようなアクションを行おうとも、まずIAMを経由してあなたを特定し、あなたに与えられた権限に従ってアクションを許可または拒否する必要があります。

IAMインフラストラクチャには、以下のコンポーネントが含まれます。

  • Principal: AWSリソースに対してアクションのリクエストを行うことができる人またはアプリケーション。EC2インスタンスの新規作成や、AWSインスタンス上で動作するAPIがS3などの別サービスにアクセスしようとするアクションを起こすことができる。
  • リクエスト。リクエストとは、プリンシパルによってAWSリソースに対して開始されるあらゆるアクションのことである。AWSコンソール、AWS API、CLIのいずれを使用する場合でも、プリンシパルはAWSにリクエストを送信します。
  • 認証。AWSのサービスを利用する前に、クレデンシャルやアクセスキーを使ってプリンシパルを認証する必要があります。
  • 権限を付与します。すべてのAWSリソースは、デフォルトで拒否されます。IAMは、リクエストを行うプリンシパルが許可されている場合のみ、リクエストを承認する。
  • アクションです。アクションとは、リソースの閲覧、作成、編集、削除を行うことです。
  • リソース。リソースとは、あるサービスの中に存在するオブジェクトのことである。例えば、AWSのEC2サービスであれば、インスタンスとなる。また、IAMユーザーやS3バケットである場合もある。

IAMアイデンティティ

IAMのコアコンポーネントを理解したら、IAMアイデンティティについて学ぶことが必要です。簡単に言うと、IAMアイデンティティは、認証され、そしてAWSでアクションを実行することを許可されるユーザー、ユーザーグループ、またはロールを表します。

ユーザーグループロールポリシーで構成されています。

  • ユーザー

IAMユーザーは、関連するクレデンシャルとそれに付随する権限を持つエンティティです。アプリケーションであれユーザーであれ、そのエンティティがAWSで特定のタスクを実行することを可能にする。

各IAMユーザーは、1つのAWSアカウントにのみ関連付けられます。デフォルトでは、新しく作成されたユーザーは、AWSで何らかのアクションを実行する権限がありません。AWSアカウントのルートユーザーが、このアカウントに対するアクセスや権限を設定する必要があります。

  • グループ

IAMユーザーグループは、IAMユーザーの集まりに過ぎません。同じアクセス、同じ権限を持つ複数のユーザーに権限を割り当てるのに便利です。ユーザーは複数のユーザーグループに属することができることに注意してください。そして、あるグループに変更を加えると、そのグループ内のすべてのユーザーに反映されます。

  • ポリシー

IAMの権限は、ポリシーを使用して割り当てられます。ポリシーとは、種類にもよりますが、ほとんどの場合JSON形式で書かれたパーミッションのセットで、操作を実行するために使用されるメソッドに関係なく、アクションのパーミッションを記述しています。

実際には6種類のポリシーがありますが、簡単のために、最もよく使われる2つのポリシーについて説明します。

アイデンティティベースのポリシー アイデンティティベースのポリシーは、ユーザー、ロール、またはユーザーグループが特定のリソースに対して実行できるアクションを含むJSON許可ポリシー文書です。

リソースベースのポリシーリソースベースのポリシーは、例えばS3(Amazon S3バケットポリシーと呼ばれる)のようなAWSリソースに直接添付することができるものです。リソースベースのポリシーは、特定のサービスでのみ利用可能です。

  • 役割

IAMロールは、エンティティによって許可されるアクションと拒否されるアクションを定義する権限の集合体です。必ずしも一人の人間に関連付けられるわけではなく、必要な人であれば誰でも使用することができます。ロールにはクレデンシャル(パスワードやアクセスキー)は付属していません。特定のタスクのために、あるリソースにアクセスするために、ユーザが一時的に使用することができます。

例えば、コンサルタントや監査役などの第三者に、一時的にアカウントへのアクセスを許可することができます。彼らは永続的なユーザーではなく、あなたの環境に一時的にアクセスできるユーザーに過ぎません。

それは主にAWSのIAMに関することです。IAMはAWSの重要な部分であり、ユーザーとしては望むと望まざるとにかかわらず、IAMに直面することになる。

迅速な設定、迅速なアクセス、一時的なアクセスだけでなく、効率的なユーザー管理が必要な環境では、すぐに難しくなり、時間がかかることがありますが、その場合は、remote.itを使用できます。

さて、IAMが不要な理由 - remote.itの利用について

AWSを使ってリソースやサーバーへのアクセスを許可するためには、多くの設定、グループの作成、ポリシーの書き込みを行い、アクセスや権利をうまく分散させる必要があります。時には、誰かやリソースに対して一時的にアクセスを許可したい場合があります。

Remote.itは、これらの手順の多くを簡素化し、AWSコンソールに追加しようとしているユーザーの電子メールアドレスを使用するだけでアクセス権を与え、設定することが可能です。

AWSでremote.itを利用するメリットは以下の通りです。

  • サービスレベルでの利用アクセスの制御
  • IPアクセシビリティの排除
  • インターネットからの発見からネットワークを保護(ポート開放なし、スキャンなし)
  • メールアドレスを入力するだけで、数分以内にオンボードとオフボードが可能

また、特定のデバイスや、特定のサービスをユーザーと共有することも可能です。必要なのは、ユーザーのメールアドレスだけです。

組織機能を使用すると、自動的にデバイスにアクセスできるユーザーを追加することが可能です。AWS IAMと比較すると、ユーザーを素早くオンボードにしたい場合に有効ですが、AWS IAMで頭を悩ませる設定も軽減されます。

まとめ

AWSにおけるIAMは、ユーザーを管理し、アクセス、認証、認可をうまく設定するために理解すべき最も重要な概念の1つです。しかし、remote.itを使用してAWSリソースへのアクセスを管理することで、時間と労力を節約することができます。

関連ブログ