IAM とは - AWS Identity and Access Management

IAM とは

AWS Identity and Access Management (IAM) は、AWS リソースへのアクセスを安全に管理するためのウェブサービスです。IAM を使用すると、ユーザーがアクセスできる AWS のリソースを制御するアクセス許可を集中管理できます。IAM を使用して、誰を認証 (サインイン) し、誰にリソースの使用を認可する (アクセス許可を付与する) かを制御します。

AWS アカウント を作成する場合、このアカウントのすべての AWS のサービス とリソースに対して完全なアクセス権を持つ 1 つのサインインアイデンティティから始めます。このアイデンティティは AWS アカウント のルートユーザーと呼ばれ、アカウントの作成に使用した E メールアドレスとパスワードでサインインすることによってアクセスできます。日常的なタスクには、ルートユーザーを使用しないことを強くお勧めします。ルートユーザーの認証情報を保護し、それらを使用してルートユーザーのみが実行できるタスクを実行してください。ルートユーザーとしてサインインする必要があるタスクの完全なリストについては、「ルートユーザー認証情報が必要なタスク」を参照してください。

IAM の紹介ビデオ

AWS トレーニングと認定では、IAM の概要について説明する 10 分の動画を提供しています。

AWS Identity and Access Managementへの概論

IAM の機能

IAM には、以下の機能があります。

AWS アカウント への共有アクセス

パスワードやアクセスキーを共有しなくても、お客様の AWS アカウントのリソースを管理および使用するためのアクセス許可を他の人に付与できます。

詳細なアクセス権限

リソースごとに、ユーザーごとに、さまざまなアクセス権限を付与できます。例えば、一部のユーザーは、Amazon Elastic Compute Cloud (Amazon EC2)、Amazon Simple Storage Service (Amazon S3)、Amazon DynamoDB、Amazon Redshift、他の AWS のサービスへの完全なアクセスを許可する場合があります。他のユーザーには、一部の S3 バケットへの読み取り専用アクセス、一部の EC2 インスタンスのみへの管理アクセス、または請求情報のみへのアクセスを許可できます。

Amazon EC2 で動作するアプリケーションから AWS リソースへの安全なアクセス

IAM の機能を使用して、EC2 インスタンスで実行されているアプリケーションの認証情報を安全に提供できます。これらの認証情報は、他の AWS リソースにアクセスするためにアプリケーションのアクセス許可を提供します。例として、S3 バケットや DynamoDB テーブルなどがあります。

多要素認証 (MFA)

アカウントおよび個々のユーザーに 2 エレメント認証を追加することで、セキュリティを強化できます。MFA を使用すると、ユーザーはお客様のアカウントで使用しているパスワードまたはアクセスキーの入力だけでなく、特別に設定されたデバイスからのコードの入力も必要になります。既に他のサービスで FIDO セキュリティキーを使用していて、AWS がサポートする設定がある場合、MFA セキュリティに WebAuthn を使用できます。詳細については、「FIDO セキュリティキーを使用するためのサポートされる設定」を参照してください。

ID フェデレーション

他の場所 (社内ネットワーク、インターネット ID プロバイダーなど) でパスワードを既に持つユーザーに、お客様の AWS アカウント への一時的なアクセスを許可できます。

保証のための ID 情報

AWS CloudTrail を使用している場合は、お客様のアカウントのリソースをリクエストしたユーザーに関する情報がログレコードに保存されます。その情報は IAM ID に基づきます。

PCI DSS コンプライアンス

IAM は、マーチャントまたはサービスプロバイダーによるクレジットカードデータの処理、ストレージ、および伝送をサポートしており、Payment Card Industry (PCI) Data Security Standard (DSS) に準拠していることが確認されています。PCI DSS の詳細 (AWS PCI Compliance Package のコピーをリクエストする方法など) については、「PCI DSS レベル 1」を参照してください。

多くの AWS サービスとの統合

IAM と連携する AWS サービスのリストについては、「IAM と連携する AWS のサービス」を参照してください。

結果整合性

IAM は、他の多くの AWS サービスと同様に、最終的に一貫性があります。IAM は、世界中の Amazon のデータセンター内の複数のサーバーにデータを複製することにより、高可用性を実現します。何らかのデータの変更リクエストが正常に受け付けられると、当該変更はコミットされ、安全に保管されます。ただし、変更は IAM 全体で複製される必要があり、これには多少時間がかかることがあります。このような変更には、ユーザー、グループ、ロール、またはポリシーの作成や更新が含まれます。アプリケーションの重要で高可用性のコードパスには、このような IAM の変更を含めないことをお勧めします。代わりに、実行頻度が低い別の初期化またはセットアップルーチンに IAM の変更を加えます。また、本番稼働ワークフローが依存する前に、変更が伝達済みであることを確認します。詳細については、「行った変更がすぐに表示されないことがある」を参照してください。

使用料無料

AWS Identity and Access Management (IAM) および AWS Security Token Service (AWS STS) は追加料金なしで提供される AWS アカウントの機能です。IAM ユーザーまたは AWS STS の一時的なセキュリティクレデンシャルを使用して他の AWS のサービスにアクセスした場合にのみ課金されます。他の AWS 製品の料金設定については、Amazon Web Services 料金設定ページを参照してください。

IAM へのアクセス

次のいずれかの方法で AWS Identity and Access Management を使用できます。

AWS Management Console

コンソールは IAM および AWS リソースを管理するためのブラウザーベースのインターフェイスです。コンソールから IAM にアクセスする方法の詳細については、AWS サインイン ユーザーガイドの「AWS へサインイン方法」を参照してください。

AWS コマンドラインツール

AWS コマンドラインツールを使用して、システムのコマンドラインでコマンドを発行することで、 IAM および AWS タスクを実行できます。コマンドラインを使用すると、コンソールよりも高速で便利になります。コマンドラインツールは、AWS のタスクを実行するスクリプトを作成する場合にも便利です。

AWS には、AWS Command Line InterfaceAWS CLIと AWS Tools for Windows PowerShell という 2 セットのコマンドラインツールが用意されています。AWS CLI のインストールおよび使用の方法については、AWS Command Line Interface ユーザーガイドを参照してください。Tools for Windows PowerShell のインストールおよび使用の方法については、AWS Tools for Windows PowerShellユーザーガイドを参照してください。

コンソールにサインインすると、ブラウザから AWS CloudShell を使用して CLI または SDK コマンドを実行できます。AWS リソースにアクセスするためのアクセス許可は、コンソールへのサインインに使用した認証情報に基づいています。経験によっては、CLI の方がより効率的な AWS アカウント の管理方法である場合があります。詳細については、「AWS CloudShell を使用して AWS Identity and Access Management と連携する」を参照してください。

AWS SDK

AWS には、さまざまなプログラミング言語およびプラットフォーム (Java、Python、Ruby、.NET、iOS、Android など) のライブラリとサンプルコードで構成された SDK (ソフトウェア開発キット) が用意されています。SDK は、IAM や AWS へのプログラムによるアクセス権限を作成する際に役立ちます。例えば、SDK は要求への暗号を使用した署名、エラーの管理、要求の自動的な再試行などのタスクを処理します。AWS SDK のダウンロードやインストールなどの詳細については、「アマゾン ウェブ サービスのツール」ページを参照してください。

IAM Query API

サービスに HTTPS リクエストを直接発行できる IAM Query API を使用して、プログラムにより IAM と AWS にアクセスできます。Query API を使用する場合は、認証情報を使用してリクエストにデジタル署名するコードを含める必要があります。詳細については、「HTTP クエリリクエストを使用した IAM API の呼び出し および IAM API リファレンス」を参照してください。