Cookie の設定を選択する

当社は、当社のサイトおよびサービスを提供するために必要な必須 Cookie および類似のツールを使用しています。当社は、パフォーマンス Cookie を使用して匿名の統計情報を収集することで、お客様が当社のサイトをどのように利用しているかを把握し、改善に役立てています。必須 Cookie は無効化できませんが、[カスタマイズ] または [拒否] をクリックしてパフォーマンス Cookie を拒否することはできます。

お客様が同意した場合、AWS および承認された第三者は、Cookie を使用して便利なサイト機能を提供したり、お客様の選択を記憶したり、関連する広告を含む関連コンテンツを表示したりします。すべての必須ではない Cookie を受け入れるか拒否するには、[受け入れる] または [拒否] をクリックしてください。より詳細な選択を行うには、[カスタマイズ] をクリックしてください。

ソース関数 ARN を使用した関数のアクセス動作の制御

フォーカスモード
ソース関数 ARN を使用した関数のアクセス動作の制御 - AWS Lambda

一般的に、Lambda 関数のコードは、他の AWS のサービスに対し API リクエストを送信します。これらのリクエストを行うために、Lambda は関数の実行ロールを引き受けることによって、認証情報のセットを一時的に生成します。これらの認証情報は、関数の呼び出し中に環境変数として利用できます。AWS SDK を使用している場合に、コード内で SDK の認証情報を直接提供する必要はありません。デフォルトで、認証情報プロバイダーチェーンは認証情報を設定できる各場所を順番にチェックし、最初に利用できるものを選択します。これは通常、環境変数 (AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY、および AWS_SESSION_TOKEN) です。

Lambda は、リクエストが実行環境内から実行される AWS API リクエストである場合、ソース関数 ARN を認証情報コンテキストに挿入します。Lambda は、Lambda がユーザーに代わって実行環境外で実行する以下の AWS API リクエストにも、ソース関数 ARN を挿入します。

サービス アクション 理由
CloudWatch ログ CreateLogGroup, CreateLogStream, PutLogEvents

CloudWatch Logs ロググループにログを保存する

X-Ray PutTraceSegments

X-Ray にトレースデータを送信する

Amazon EFS ClientMount

関数を Amazon Elastic File System (Amazon EFS) ファイルシステムに接続する

ソース関数 ARN は、Lambda が同じ実行ロールを使用して、実行環境外でユーザーに代わって実行するその他の AWS API 呼び出しには含まれていません。このように、実行環境外で実行される API 呼び出しの例としては、以下が挙げられます。

  • 環境変数を自動的に暗号化および復号化するための AWS Key Management Service (AWS KMS) の呼び出し。

  • VPC 対応関数用の Elastic Network Interfaces (ENI) を作成するための Amazon Elastic Compute Cloud (Amazon EC2) の呼び出し。

  • イベントソースマッピングとしてセットアップされたイベントソースから読み込むための、Amazon Simple Queue Service (Amazon SQS) などの AWS のサービスの呼び出し。

認証情報コンテキストに挿入されたソース関数 ARN を使用すると、特定の Lambda 関数のコードからリソースへの呼び出しが行われたのかどうかを確認できます。これを確認するには、IAM ID ベースのポリシーまたはサービスコントロールポリシー (SCP)lambda:SourceFunctionArn 条件キーを使用します。

注記

リソースベースのポリシーにある lambda:SourceFunctionArn は使用できませんでした。

ID ベースのポリシーまたは SCP でこの条件キーを使用することで、関数コードが他の AWS のサービスに対し実行する、API アクションのためのセキュリティ制御を実装できます。こういったセキュリティアプリケーションには、認証情報の漏洩の原因を特定する場合など、重要なものがいくつか含まれています。

注記

lambda:SourceFunctionArn 条件キーは、lambda:FunctionArn および aws:SourceArn 条件キーとは異なります。lambda:FunctionArn 条件キーは、イベントソースマッピングにのみ適用され、イベントソースから呼び出しが可能な関数を定義するのに使用されます。aws:SourceArn 条件キーは、Lambda 関数がターゲットリソースであるポリシーにのみ適用され、その機能を呼び出すことができる他の AWS のサービスとリソースを定義するのに役立ちます。lambda:SourceFunctionArn 条件キーは任意の ID ベースのポリシーまたは SCP に適用して、他のリソースに対して特定の AWS API 呼び出しを行う許可を持つ特定の Lambda 関数を定義します。

ポリシーで lambda:SourceFunctionArn を使用するには、それを、任意の ARN 条件演算子に条件として含めます。キーの値は有効な ARN にする必要があります。

例えば、Lambda 関数のコードが特定の Amazon S3 バケットをターゲットとして、s3:PutObject 呼び出しを実行したとします。これには、Lambda 関数の 1 つだけに、対象のバケットに対する s3:PutObject アクセスを許可する必要があります。この場合、関数の実行ロールには、次のようなポリシーがアタッチされている必要があります。

例 特定の Lambda 関数に Amazon S3 リソースへのアクセスを許可するポリシー
{ "Version": "2012-10-17", "Statement": [ { "Sid": "ExampleSourceFunctionArn", "Effect": "Allow", "Action": "s3:PutObject", "Resource": "arn:aws:s3:::lambda_bucket/*", "Condition": { "ArnEquals": { "lambda:SourceFunctionArn": "arn:aws:lambda:us-east-1:123456789012:function:source_lambda" } } } ] }

このポリシーでは、ARN が arn:aws:lambda:us-east-1:123456789012:function:source_lambda である Lambda 関数がソースの場合にのみ、s3:PutObject アクセスを許可します。このポリシーは、他の呼び出し ID に対して s3:PutObject アクセスを許可することはありません。別の関数またはエンティティが、同じ実行ロールを使用し s3:PutObject 呼び出しを行った場合も同様です。

注記

lambda:SourceFunctionARN 条件キーは、Lambda 関数のバージョンや関数エイリアスをサポートしていません。特定の関数バージョンまたはエイリアスの ARN を使用しても、関数には指定したアクションを実行するアクセス許可は付与されません。関数には、必ずバージョンやエイリアスのサフィックスが付いていない、修飾されていない ARN を使用してください。

SCP で lambda:SourceFunctionArn を使用することもできます。例えば、バケットへのアクセスを、単一の Lambda 関数のコードまたは特定の Amazon Virtual Private Cloud (VPC) からの呼び出しに制限したいとします。以下の SCP は、これを示したものです。

例 特定の条件下で Amazon S3 へのアクセスを拒否するポリシー
{ "Version": "2012-10-17", "Statement": [ { "Action": [ "s3:*" ], "Resource": "arn:aws:s3:::lambda_bucket/*", "Effect": "Deny", "Condition": { "StringNotEqualsIfExists": { "aws:SourceVpc": [ "vpc-12345678" ] } } }, { "Action": [ "s3:*" ], "Resource": "arn:aws:s3:::lambda_bucket/*", "Effect": "Deny", "Condition": { "ArnNotEqualsIfExists": { "lambda:SourceFunctionArn": "arn:aws:lambda:us-east-1:123456789012:function:source_lambda" } } } ] }

このポリシーは、ARN arn:aws:lambda:*:123456789012:function:source_lambda を持つ特定の Lambda 関数からのものでない限り、または指定された VPC からのものでない限り、すべての S3 アクションを拒否します。StringNotEqualsIfExists 演算子は、aws:SourceVpc キー がリクエストに含まれている場合にのみ、IAM に対し、この条件を処理することを指示します。これと同様に、IAM は lambda:SourceFunctionArn が存在する場合にのみ ArnNotEqualsIfExists を認識します。

プライバシーサイト規約Cookie の設定
© 2025, Amazon Web Services, Inc. or its affiliates.All rights reserved.