ApiAuth - AWS Serverless Application Model

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

ApiAuth

API Gateway에 대한 액세스를 제어하도록 권한을 구성합니다API.

를 사용하여 액세스를 구성하는 방법에 대한 자세한 내용과 예제는 섹션을 AWS SAM 참조하세요AWS SAM 템플릿으로 API 액세스 제어.

구문

AWS Serverless Application Model (AWS SAM) 템플릿에서 이 엔터티를 선언하려면 다음 구문을 사용합니다.

YAML

AddApiKeyRequiredToCorsPreflight: Boolean AddDefaultAuthorizerToCorsPreflight: Boolean ApiKeyRequired: Boolean Authorizers: CognitoAuthorizer | LambdaTokenAuthorizer | LambdaRequestAuthorizer | AWS_IAM DefaultAuthorizer: String InvokeRole: String ResourcePolicy: ResourcePolicyStatement UsagePlan: ApiUsagePlan
참고

Authorizers 속성에는 가 포함되지AWS_IAM만 에 대한 추가 구성은 필요하지 않습니다AWS_IAM. 예시는 AWS IAM에서 확인하십시오.

속성

AddApiKeyRequiredToCorsPreflight

ApiKeyRequiredCors 속성이 설정된 경우 설정을 AddApiKeyRequiredToCorsPreflight 통해 Options 속성에 API 키가 추가됩니다.

유형: 부울

필수 항목 여부: 아니요

기본값: True

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

AddDefaultAuthorizerToCorsPreflight

DefaultAuthorizerCors 속성이 설정된 경우 설정을 AddDefaultAuthorizerToCorsPreflight 사용하면 열기API 섹션의 Options 속성에 기본 권한 부여자가 추가됩니다.

유형: 부울

필수 항목 여부: 아니요

기본값: True

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

ApiKeyRequired

true로 설정하면 모든 API 이벤트에 API 키가 필요합니다. API 키에 대한 자세한 내용은 API Gateway 개발자 안내서 API 키를 사용한 사용 계획 생성 및 사용을 참조하세요.

유형: 부울

필수 항목 여부: 아니요

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

Authorizers

API Gateway 에 대한 액세스를 제어하는 데 사용되는 권한 부여자입니다API.

자세한 내용은 AWS SAM 템플릿으로 API 액세스 제어 단원을 참조하십시오.

유형: CognitoAuthorizer | LambdaTokenAuthorizer | LambdaRequestAuthorizer | AWS_IAM

필수 항목 여부: 아니요

기본값: 없음

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

추가 참고 사항: 는 Api의 OpenApi 정의에 권한 부여자를 SAM 추가합니다.

DefaultAuthorizer

기본적으로 API 호출을 승인API하는 데 사용되는 API 게이트웨이 에 대한 기본 권한 부여자를 지정합니다.

참고

이와 연결된 함수 EventSource 의 ApiAPI가 IAM 권한을 사용하도록 구성된 경우 이 속성을 로 설정해야 합니다. AWS_IAM그렇지 않으면 오류가 발생합니다.

유형: 문자열

필수 항목 여부: 아니요

기본값: 없음

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

InvokeRole

모든 리소스 및 메서드의 통합 보안 인증 정보를 이 값으로 설정합니다.

CALLER_CREDENTIALS이 호출자 보안 인증 정보를 사용하여 엔드포인트를 호출하는 arn:aws:iam::*:user/*에 매핑됩니다.

유효한 값: CALLER_CREDENTIALS, NONE, IAMRoleArn

유형: 문자열

필수 항목 여부: 아니요

기본값: CALLER_CREDENTIALS

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

ResourcePolicy

의 모든 메서드 및 경로에 대한 리소스 정책을 구성합니다API.

유형: ResourcePolicyStatement

필수 항목 여부: 아니요

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

추가 참고 사항: 이 설정은 ApiFunctionAuth를 사용하여 개별 AWS::Serverless::Function에서도 정의할 수도 있습니다. 이는 를 APIs 사용하는 에 필요합니다EndpointConfiguration: PRIVATE.

UsagePlan

이 와 연결된 사용 계획을 구성합니다API. 사용 계획에 대한 자세한 내용은 API Gateway 개발자 안내서 API 키를 사용하여 사용 계획 생성 및 사용을 참조하세요.

이 AWS SAM 속성은 이 속성이 설정될 때 세 가지 추가 AWS CloudFormation 리소스를 생성합니다. AWS::ApiGateway::UsagePlan, AWS::ApiGateway::UsagePlanKey, 및 AWS::ApiGateway::ApiKey. 이 시나리오에 대한 자세한 내용은 섹션을 참조하세요UsagePlan 속성 지정됨. 생성된 AWS CloudFormation 리소스에 대한 일반 정보는 섹션을 참조하세요AWS SAM용으로 생성된 AWS CloudFormation 리소스.

유형: ApiUsagePlan

필수 항목 여부: 아니요

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

예시

CognitoAuth

Cognito 인증 예제

YAML

Auth: Authorizers: MyCognitoAuth: UserPoolArn: Fn::GetAtt: - MyUserPool - Arn AuthType: "COGNITO_USER_POOLS" DefaultAuthorizer: MyCognitoAuth InvokeRole: CALLER_CREDENTIALS AddDefaultAuthorizerToCorsPreflight: false ApiKeyRequired: false ResourcePolicy: CustomStatements: [{ "Effect": "Allow", "Principal": "*", "Action": "execute-api:Invoke", "Resource": "execute-api:/Prod/GET/pets", "Condition": { "IpAddress": { "aws:SourceIp": "1.2.3.4" } } }] IpRangeDenylist: - "10.20.30.40"

AWS IAM

AWS IAM 예제

YAML

Auth: Authorizers: AWS_IAM