ApiFunctionAuth - AWS Serverless Application Model

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

ApiFunctionAuth

특정 API, 경로 및 메서드에 대해 이벤트 수준에서 권한 부여를 구성합니다.

구문

귀하의 AWS Serverless Application Model(AWS SAM) 템플릿에서 이 객체를 선언하려면 다음 명령문을 사용합니다.

속성

ApiKeyRequired

이 API, 경로 및 메서드에 대한 API 키가 필요합니다.

유형: 부울

필수 항목 여부: 아니요

AWS CloudFormation호환성: 이 속성은 AWS SAM에 고유하며 AWS CloudFormation 동등한 속성이 없습니다.

AuthorizationScopes

이 API, 경로 및 메서드에 적용할 수 있는 권한 부여 범위.

지정한 범위는 해당 속성을 지정한 경우 DefaultAuthorizer 속성에서 적용한 모든 범위를 재정의합니다.

유형: 목록

필수 항목 여부: 아니요

AWS CloudFormation호환성: 이 속성은 AWS SAM에 고유하며 AWS CloudFormation 동등한 속성이 없습니다.

Authorizer

특정 함수를 위한 Authorizer

귀하의 AWS::Serverless::Api 리소스에 글로벌 권한 부여자가 지정된 경우, AuthorizerNONE으로 설정하여 권한 부여자를 재정의할 수 있습니다. 예시는 Amazon API Gateway REST API에 대한 글로벌 권한 부여자 재정의을 확인하세요.

참고

AWS::Serverless::Api 리소스의 DefinitionBody 속성을 사용하여 API를 설명하는 경우 Authorizer와 함께 OverrideApiAuth을 사용하여 귀하의 글로벌 권한 부여자를 재정의해야 합니다. 자세한 정보는 OverrideApiAuth을 참조하세요

유효한 값: AWS_IAM, NONE, 또는 AWS SAM 템플릿에 정의된 권한 부여자의 논리적 ID

유형: 문자열

필수 항목 여부: 아니요

AWS CloudFormation호환성: 이 속성은 AWS SAM에 고유하며 AWS CloudFormation 동등한 속성이 없습니다.

InvokeRole

AWS_IAM 권한 부여에 사용할 InvokeRole를 지정합니다.

유형: 문자열

필수 항목 여부: 아니요

기본값: CALLER_CREDENTIALS

AWS CloudFormation호환성: 이 속성은 AWS SAM에 고유하며 AWS CloudFormation 동등한 속성이 없습니다.

추가 참고 사항: CALLER_CREDENTIALSarn:aws:iam::*:user/*을 매핑하며, 이는 호출자 보안 인증을 사용하여 엔드포인트를 호출합니다.

OverrideApiAuth

귀하의 AWS::Serverless::Api리소스의 글로벌 권한 부여자 구성을 재정의하도록 true을 지정합니다. 이 속성은 글로벌 권한 부여자를 지정하고 AWS::Serverless::Api 리소스의 DefinitionBody 속성을 사용하여 API를 설명하는 경우에만 필요합니다.

참고

OverrideApiAuthtrue로 지정하면, AWS SAM은 귀하의 글로벌 권한 부여자를 ApiKeyRequired, Authorizer, 혹은 ResourcePolicy에 제공된 값으로 재정의합니다. 따라서 OverrideApiAuth를 사용할 때 이러한 속성들 중에서 적어도 하나가 지정되어야 합니다. 예시는 AWS::서버리스::Api용 DefinitionBody가 지정된 경우 글로벌 권한 부여자를 재정의합니다. 섹션을 참조하세요.

유형: 부울

필수 항목 여부: 아니요

AWS CloudFormation호환성: 이 속성은 AWS SAM에 고유하며 AWS CloudFormation 동등한 속성이 없습니다.

ResourcePolicy

API에서 이 경로에 대한 리소스 정책을 구성합니다.

유형: 리소스 정책 설명

필수 항목 여부: 아니요

AWS CloudFormation호환성: 이 속성은 AWS SAM에 고유하며 AWS CloudFormation 동등한 속성이 없습니다.

예시

함수-권한 부여

다음 예제에서는 함수 수준에서 권한 부여를 지정합니다.

YAML

Auth: ApiKeyRequired: true Authorizer: NONE

Amazon API Gateway REST API에 대한 글로벌 권한 부여자 재정의

AWS::Serverless::Api 리소스의 글로벌 권한 부여자를 지정할 수 있습니다. 다음은 글로벌 기본 권한 부여자를 구성하는 예입니다.

AWSTemplateFormatVersion: '2010-09-09' Transform: AWS::Serverless-2016-10-31 ... Resources: MyApiWithLambdaRequestAuth: Type: AWS::Serverless::Api Properties: ... Auth: Authorizers: MyLambdaRequestAuth: FunctionArn: !GetAtt MyAuthFn.Arn DefaultAuthorizer: MyLambdaRequestAuth

귀하의 AWS Lambda 함수의 기본 권한 부여자를 재정의하려면 귀하는 AuthorizerNONE으로 지정할 수 있습니다. 다음은 그 예제입니다.

AWSTemplateFormatVersion: '2010-09-09' Transform: AWS::Serverless-2016-10-31 ... Resources: ... MyFn: Type: AWS::Serverless::Function Properties: ... Events: LambdaRequest: Type: Api Properties: RestApiId: !Ref MyApiWithLambdaRequestAuth Method: GET Auth: Authorizer: NONE

AWS::서버리스::Api용 DefinitionBody가 지정된 경우 글로벌 권한 부여자를 재정의합니다.

DefinitionBody속성을 사용하여 AWS::Serverless::Api 리소스를 설명하는 경우 이전 재정의 방법이 작동하지 않습니다. 다음은 AWS::Serverless::Api 리소스에 DefinitionBody 속성을 사용하는 예제입니다.

AWSTemplateFormatVersion: '2010-09-09' Transform: AWS::Serverless-2016-10-31 ... Resources: MyApiWithLambdaRequestAuth: Type: AWS::Serverless::Api Properties: ... DefinitionBody: swagger: 2.0 ... paths: /lambda-request: ... Auth: Authorizers: MyLambdaRequestAuth: FunctionArn: !GetAtt MyAuthFn.Arn DefaultAuthorizer: MyLambdaRequestAuth

글로벌 권한 부여자를 재정의하려면 OverrideApiAuth 속성을 사용합니다. 다음은 Authorizer에 제공된 값으로 글로벌 권한 부여자를 재정의하는 데 OverrideApiAuth을 사용하는 예제입니다.

AWSTemplateFormatVersion: '2010-09-09' Transform: AWS::Serverless-2016-10-31 ... Resources: MyApiWithLambdaRequestAuth: Type: AWS::Serverless::Api Properties: ... DefinitionBody: swagger: 2-0 ... paths: /lambda-request: ... Auth: Authorizers: MyLambdaRequestAuth: FunctionArn: !GetAtt MyAuthFn.Arn DefaultAuthorizer: MyLambdaRequestAuth MyAuthFn: Type: AWS::Serverless::Function ... MyFn: Type: AWS::Serverless::Function Properties: ... Events: LambdaRequest: Type: Api Properties: RestApiId: !Ref MyApiWithLambdaRequestAuth Method: GET Auth: Authorizer: NONE OverrideApiAuth: true Path: /lambda-token