概要
抑えておくべき用語
Lambda 関数 URL
API Gateway 無しに Lambda のメニューから機能を ON にするだけ HTTPS 公開ができる。
OAC
指定された CloudFront ディストリビューションからのアクセスのみにする。
やってみる
Lambda 1
Lambda 関数は単純に Hello World を返すもののため省略します。
CloudFront
Lambda 2
作成中に表示さされた CLI を実行して、リソースベースのポリシーステートメントを追加します。
aws lambda add-permission \
--statement-id "AllowCloudFrontServicePrincipal" \
--action "lambda:InvokeFunctionUrl" \
--principal "cloudfront.amazonaws.com" \
--source-arn "arn:aws:cloudfront::123456789012:distribution/XXXXXXXXXX" \
--region "ap-northeast-1" \
--function-name oac_lambda_function_url
動作確認
CloudFront ディストリビューションドメイン名でアクセスできることを確認
curl https://XXXXXXXXXXXX.cloudfront.net/
{
"version": "2.0",
"routeKey": "$default",
"rawPath": "/",
"rawQueryString": "",
"headers": {
"x-amz-content-sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"cloudfront-is-android-viewer": "false",
"x-amzn-tls-version": "TLSv1.2",
"cloudfront-viewer-country": "JP",
///以下省略
Lamda 関数 URL でアクセス拒否されることを確認
curl https://XXXXXXXXXXXX.lambda-url.ap-northeast-1.on.aws/
{"Message":"Forbidden"}%