기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
ApiFunctionAuth
특정 API, 경로 및 메서드에 대해 이벤트 수준에서 권한 부여를 구성합니다.
구문
귀하의 AWS Serverless Application Model(AWS SAM) 템플릿에서 이 객체를 선언하려면 다음 명령문을 사용합니다.
YAML
ApiKeyRequired:
Boolean
AuthorizationScopes:List
Authorizer:String
InvokeRole:String
OverrideApiAuth:Boolean
ResourcePolicy:ResourcePolicyStatement
속성
-
ApiKeyRequired
-
이 API, 경로 및 메서드에 대한 API 키가 필요합니다.
유형: 부울
필수 항목 여부: 아니요
AWS CloudFormation호환성: 이 속성은 AWS SAM에 고유하며 AWS CloudFormation 동등한 속성이 없습니다.
-
이 API, 경로 및 메서드에 적용할 수 있는 권한 부여 범위.
지정한 범위는 해당 속성을 지정한 경우
DefaultAuthorizer
속성에서 적용한 모든 범위를 재정의합니다.유형: 목록
필수 항목 여부: 아니요
AWS CloudFormation호환성: 이 속성은 AWS SAM에 고유하며 AWS CloudFormation 동등한 속성이 없습니다.
-
특정 함수를 위한
Authorizer
귀하의
AWS::Serverless::Api
리소스에 글로벌 권한 부여자가 지정된 경우,Authorizer
를NONE
으로 설정하여 권한 부여자를 재정의할 수 있습니다. 예시는 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_CREDENTIALS
는arn:aws:iam::*:user/*
을 매핑하며, 이는 호출자 보안 인증을 사용하여 엔드포인트를 호출합니다. OverrideApiAuth
-
귀하의
AWS::Serverless::Api
리소스의 글로벌 권한 부여자 구성을 재정의하도록true
을 지정합니다. 이 속성은 글로벌 권한 부여자를 지정하고AWS::Serverless::Api
리소스의DefinitionBody
속성을 사용하여 API를 설명하는 경우에만 필요합니다.참고
OverrideApiAuth
을true
로 지정하면, 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 함수의 기본 권한 부여자를 재정의하려면 귀하는 Authorizer
를 NONE
으로 지정할 수 있습니다. 다음은 그 예제입니다.
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