メニュー
AWS Lambda
開発者ガイド

AWS Lambda に対する認証とアクセスコントロール

AWS Lambda へのアクセスには、AWS によってリクエストの認証に使用される認証情報が必要です。これらの認証情報には、AWS Lambda 関数または Amazon S3 バケットなどの AWS リソースへのアクセス権限が必要です。次のセクションでは、AWS Identity and Access Management (IAM) と Lambda を使用して、リソースにアクセスできるユーザーを制御することで、リソースをセキュリティで保護する方法について詳しく説明します。

認証

AWS には、次のタイプのアイデンティティでアクセスできます。

  • AWS アカウントのルートユーザー – AWS にサインアップするときは、AWS アカウントに関連付けられた E メールアドレスとパスワードを指定します。これは AWS アカウントのルートユーザーです。この認証情報はすべての AWS リソースに対する完全なアクセスを提供します。

    重要

    セキュリティ上の理由から、AWS アカウントへの完全なアクセス権限を持つ管理者 (IAM ユーザー) を作成するためにのみ、ルートユーザーを使用することをお勧めします。その後、この管理者ユーザーを使用して、制限されたアクセス権限を持つ他の IAM ユーザーとロールを作成できます。詳細については、『IAM ユーザーガイド』の「IAM のベストプラクティス」および「管理者のユーザーおよびグループの作成」を参照してください。

  • IAM ユーザーIAM ユーザーは、特定のカスタム権限 (たとえば、Lambda で a function を作成するアクセス権限) を持つ AWS アカウント内のアイデンティティです。IAM のユーザー名とパスワードを使用して、AWS マネジメントコンソールAWS ディスカッションフォーラムAWS Support Center などのセキュリティ保護された AWS ウェブページにサインインできます。

     

    ユーザー名とパスワードに加えて、各ユーザーのアクセスキーを生成することもできます。いくつかの SDK の 1 つまたは AWS Command Line Interface (CLI) を使ってプログラムで AWS サービスにアクセスするときに、これらのキーを使用します。SDK と CLI ツールでは、アクセスキーを使用してリクエストが暗号で署名されます。AWS ツールを使用しない場合は、リクエストに自分で署名する必要があります。Lambda supports では、署名バージョン 4 がサポートされています。これは、インバウンド API リクエストを認証するためのプロトコルです。リクエストの認証の詳細については、『AWS General Reference』の「署名バージョン 4 の署名プロセス」を参照してください。

     

  • IAM ロールIAM ロールは、特定のアクセス権限を持ち、アカウントで作成できるもう 1 つの IAM アイデンティティです。これは IAM ユーザーに似ていますが、特定のユーザーに関連付けられていません。IAM ロールでは、AWS サービスおよびリソースにアクセスするために使用できる一時的なアクセスキーを取得することができます。IAM ロールと一時的な認証情報は、次の状況で役立ちます。

     

    • フェデレーティッドユーザーアクセス – IAM ユーザーを作成するのではなく、AWS Directory Service、エンタープライズユーザーディレクトリ、またはウェブアイデンティティプロバイダーの既存のユーザーアイデンティティを使用することもできます。このようなユーザーはフェデレーティッドユーザーと呼ばれます。AWS では、ID プロバイダーを通じてアクセスがリクエストされたとき、フェデレーティッドユーザーにロールを割り当てます。フェデレーティッドユーザーの詳細については、『IAM ユーザーガイド』の「フェデレーティッドユーザーとロール」を参照してください。

       

    • クロスアカウントアクセス – アカウントの IAM ロールを使用して、アカウントのリソースにアクセスするための権限を別の AWS アカウントに付与することができます。この例については、『IAM ユーザーガイド』の「チュートリアル: AWS アカウント間の IAM ロールを使用したアクセスの委任」を参照してください。

       

    • AWS サービスのアクセス – アカウントで IAM ロールを使用して、アカウントのリソースにアクセスするための AWS サービスのアクセス権限を付与できます。たとえば、Amazon Redshift がお客様に代わって Amazon S3 バケットにアクセスし、バケットからデータを Amazon Redshift クラスターにロードすることを許可するロールを作成できます。 詳細については、『IAM ユーザーガイド』の「AWS ユーザーにアクセス権限を委任するロールの作成」を参照してください。

       

    • Amazon EC2 で実行されているアプリケーション – IAM ロールを使用して、EC2 インスタンスで実行され、AWS API リクエストを作成しているアプリケーションの一時的な認証情報を管理できます。これは、EC2 インスタンス内でのアクセスキーの保存に推奨されます。AWS ロールを EC2 インスタンスに割り当て、そのすべてのアプリケーションで使用できるようにするには、インスタンスにアタッチされたインスタンスプロファイルを作成します。インスタンスプロファイルにはロールが含まれ、EC2 インスタンスで実行されるプログラムは一時認証情報を取得することができます。詳細については、『IAM ユーザーガイド』の「Amazon EC2 上のアプリケーションに対するロールの使用」を参照してください。

アクセスコントロール

有効な認証情報があればリクエストを認証できますが、AWS Lambda リソースを作成したり、それらのリソースにアクセスしたりするには、そのためのアクセス権限が必要です。たとえば、Lambda 関数の作成、イベントソースの追加、Lambda 関数のバージョンの発行にアクセス権限が必要です。

以下のセクションでは、AWS Lambda のアクセス権限を管理する方法について説明します。最初に概要のセクションを読むことをお勧めします。

このページの内容: