Lambda の関数 URL(Function URLs)で lambda:InvokeFunction 権限を付与する方法を教えてください

Lambda の関数 URL(Function URLs)で lambda:InvokeFunction 権限を付与する方法を教えてください

2025.10.31

困っていた内容

2025年10月以降、Lambda の関数 URL では、従来の lambda:InvokeFunctionUrl 権限に加えて、lambda:InvokeFunction 権限も必要になった認識です。
既存の Lambda 関数に権限を付与したいので、付与する方法を教えてください。

Control access to Lambda function URLs - AWS Lambda

Note
Starting in October 2025, new function URLs will require both lambda:InvokeFunctionUrl and lambda:InvokeFunction permissions.

どう対応すればいいの?

Lambda コンソールの場合は「設定」タブの「リソースベースのポリシーステートメント」から追加します。

AWS CLI の場合はadd-permissionコマンドで追加します。

Lambda コンソールから追加する場合

Lambda コンソールの「関数」から権限を付与する関数を選択します。

Lambda Function URLs InvokeFunction Permission 1

「設定」タブの「アクセス権限」を選択します。

Lambda Function URLs InvokeFunction Permission 2

「リソースベースのポリシーステートメント」セクションの「アクセス権限を追加」を選択します。

Lambda Function URLs InvokeFunction Permission 3

「関数 URL」を選択して、認証タイプとアクションに「lambda:InvokeFunction」を選択して保存します。
※「認証タイプ」は関数の設定に応じて選択してください。

Lambda Function URLs InvokeFunction Permission 4

正常に権限が追加されたことを確認します。

Lambda Function URLs InvokeFunction Permission 5

なお、設定されているポリシーは「ポリシーの表示」を選択するとまとめて表示できます。

Lambda Function URLs InvokeFunction Permission 7

表示例

Lambda Function URLs InvokeFunction Permission 6

AWS CLIから追加する場合

add-permissionコマンドを実行して、権限を付与できます。
get-policyコマンドを実行して、現在の設定値を確認できます。

add-permissionコマンド例
# コマンド例
$ aws lambda add-permission \
  --function-name 【Lambda 関数名】 \
  --statement-id UrlPolicyInvokeFunction \
  --action lambda:InvokeFunction \
  --principal "*" \
  --invoked-via-function-url

# 実行例
$ aws lambda add-permission \
  --function-name hato-my-url-function-console \
  --statement-id UrlPolicyInvokeFunction \
  --action lambda:InvokeFunction \
  --principal "*" \
  --invoked-via-function-url
{
    "Statement": "{\"Sid\":\"UrlPolicyInvokeFunction\",\"Effect\":\"Allow\",\"Principal\":\"*\",\"Action\":\"lambda:InvokeFunction\",\"Resource\":\"arn:aws:lambda:ap-northeast-1:123456789012:function:hato-my-url-function-console\",\"Condition\":{\"Bool\":{\"lambda:InvokedViaFunctionUrl\":\"true\"}}}"
}
get-policyコマンド例
# コマンド例
$ aws lambda get-policy \
  --function-name 【Lambda 関数名】 \
  --query 'Policy' \
  --output text | jq .

# 実行例
$ aws lambda get-policy \
  --function-name hato-my-url-function-console \
  --query 'Policy' \
  --output text | jq .

{
  "Version": "2012-10-17",
  "Id": "default",
  "Statement": [
    {
      "Sid": "hato-InvokeFunctionUrl",
      "Effect": "Allow",
      "Principal": "*",
      "Action": "lambda:InvokeFunctionUrl",
      "Resource": "arn:aws:lambda:ap-northeast-1:123456789012:function:hato-my-url-function-console",
      "Condition": {
        "StringEquals": {
          "lambda:FunctionUrlAuthType": "NONE"
        }
      }
    },
    {
      "Sid": "UrlPolicyInvokeFunction",
      "Effect": "Allow",
      "Principal": "*",
      "Action": "lambda:InvokeFunction",
      "Resource": "arn:aws:lambda:ap-northeast-1:123456789012:function:hato-my-url-function-console",
      "Condition": {
        "Bool": {
          "lambda:InvokedViaFunctionUrl": "true"
        }
      }
    }
  ]
}

参考資料

この記事をシェアする

FacebookHatena blogX

関連記事