Terraform 0.11

aws_api_gateway_authorizer




terraform

aws_api_gateway_authorizer

एक एपीआई गेटवे ऑथराइज़र प्रदान करता है।

उदाहरण उपयोग

resource "aws_api_gateway_authorizer" "demo" {
  name                   = "demo"
  rest_api_id            = "${aws_api_gateway_rest_api.demo.id}"
  authorizer_uri         = "${aws_lambda_function.authorizer.invoke_arn}"
  authorizer_credentials = "${aws_iam_role.invocation_role.arn}"
}

resource "aws_api_gateway_rest_api" "demo" {
  name = "auth-demo"
}

resource "aws_iam_role" "invocation_role" {
  name = "api_gateway_auth_invocation"
  path = "/"

  assume_role_policy = <<EOF
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Action": "sts:AssumeRole",
      "Principal": {
        "Service": "apigateway.amazonaws.com"
      },
      "Effect": "Allow",
      "Sid": ""
    }
  ]
}
EOF
}

resource "aws_iam_role_policy" "invocation_policy" {
  name = "default"
  role = "${aws_iam_role.invocation_role.id}"

  policy = <<EOF
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Action": "lambda:InvokeFunction",
      "Effect": "Allow",
      "Resource": "${aws_lambda_function.authorizer.arn}"
    }
  ]
}
EOF
}

resource "aws_iam_role" "lambda" {
  name = "demo-lambda"

  assume_role_policy = <<EOF
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Action": "sts:AssumeRole",
      "Principal": {
        "Service": "lambda.amazonaws.com"
      },
      "Effect": "Allow",
      "Sid": ""
    }
  ]
}
EOF
}

resource "aws_lambda_function" "authorizer" {
  filename         = "lambda-function.zip"
  source_code_hash = "${base64sha256(file("lambda-function.zip"))}"
  function_name    = "api_gateway_authorizer"
  role             = "${aws_iam_role.lambda.arn}"
  handler          = "exports.example"
}

तर्क संदर्भ

निम्नलिखित तर्क समर्थित हैं:

  • authorizer_uri - (वैकल्पिक, टाइप के लिए आवश्यक / REQUEST ) TOKEN की यूनिफ़ॉर्म रिसोर्स आइडेंटिफ़ायर (URI)। यह arn:aws:apigateway:{region}:lambda:path/{service_api} के रूप में एक अच्छी तरह से गठित लैम्ब्डा फ़ंक्शन URI होना चाहिए arn:aws:apigateway:{region}:lambda:path/{service_api} , जैसे arn:aws:apigateway:us-west-2:lambda:path/2015-03-31/functions/arn:aws:lambda:us-west-2:012345678912:function:my-function/invocations
  • name - (आवश्यक) लेखक का नाम
  • rest_api_id - (आवश्यक) संबंधित REST API की आईडी
  • identity_source - (वैकल्पिक) आने वाले अनुरोध में पहचान का स्रोत। Defaults to method.request.header.AuthorizationREQUEST प्रकार के लिए, यह मानों की अल्पविराम-अलग-अलग सूची हो सकती है, जिसमें हेडर, क्वेरी स्ट्रिंग पैरामीटर और स्टेज वैरिएबल शामिल हैं - जैसे "method.request.header.SomeHeaderName,method.request.querystring.SomeQueryStringName,stageVariables.SomeStageVariableName"
  • type - (वैकल्पिक) लेखक का प्रकार। संभावित मान एक कस्टम हेडर में सबमिट किए गए एकल प्राधिकरण टोकन का उपयोग करके एक COGNITO_USER_POOLS लिए COGNITO_USER_POOLS , आने वाले अनुरोध पैरामीटर, या COGNITO_USER_POOLS का उपयोग करने के लिए COGNITO_USER_POOLS एक अमेज़ॅन डॉगिटो उपयोगकर्ता पूल का उपयोग करने के लिए। TOKEN लिए चूक।
  • authorizer_credentials - (वैकल्पिक) लेखक के लिए आवश्यक क्रेडेंशियल्स। मानने के लिए API गेटवे के लिए IAM रोल निर्दिष्ट करने के लिए, IAM रोल ARN का उपयोग करें।
  • authorizer_result_ttl_in_seconds - (वैकल्पिक) कैशेड ऑथराइज़र का TTL सेकंड में परिणाम देता है। 300 लिए चूक।
  • identity_validation_expression - (वैकल्पिक) आने वाली पहचान के लिए एक सत्यापन अभिव्यक्ति। TOKEN प्रकार के लिए, यह मान एक नियमित अभिव्यक्ति होना चाहिए। क्लाइंट से आने वाले टोकन को इस अभिव्यक्ति के विरुद्ध मिलान किया जाता है, और यदि टोकन मेल खाता है तो आगे बढ़ेगा। यदि टोकन मेल नहीं खाता है, तो क्लाइंट को 401 अनधिकृत प्रतिक्रिया मिलती है।
  • provider_arns - (वैकल्पिक, COGNITO_USER_POOLS प्रकार के लिए आवश्यक) Amazon Cognito user pool ARNs की एक सूची। प्रत्येक तत्व इस प्रारूप का है: arn:aws:cognito-idp:{region}:{account_id}:userpool/{user_pool_id}