

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

# ApiAuth
<a name="sam-property-api-apiauth"></a>

권한 부여를 구성하여 API Gateway API에 대한 액세스를 제어합니다.

를 사용하여 액세스를 구성하는 방법에 대한 자세한 내용과 예제는 단원을 AWS SAM 참조하십시오[AWS SAM 템플릿을 사용하여 API 액세스 제어](serverless-controlling-access-to-apis.md).

## 구문
<a name="sam-property-api-apiauth-syntax"></a>

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

### YAML
<a name="sam-property-api-apiauth-syntax.yaml"></a>

```
  AddApiKeyRequiredToCorsPreflight: Boolean
  [AddDefaultAuthorizerToCorsPreflight](#sam-api-apiauth-adddefaultauthorizertocorspreflight): Boolean
  [ApiKeyRequired](#sam-api-apiauth-apikeyrequired): Boolean
  [Authorizers](#sam-api-apiauth-authorizers): CognitoAuthorizer | LambdaTokenAuthorizer | LambdaRequestAuthorizer | AWS_IAM
  [DefaultAuthorizer](#sam-api-apiauth-defaultauthorizer): String
  [InvokeRole](#sam-api-apiauth-invokerole): String
  [ResourcePolicy](#sam-api-apiauth-resourcepolicy): ResourcePolicyStatement
  [UsagePlan](#sam-api-apiauth-usageplan): ApiUsagePlan
```

**참고**  
`Authorizers` 속성은 `AWS_IAM`을(를) 포함하지만, `AWS_IAM`에 필요한 추가 구성은 없습니다. 예제는 [AWS IAM](#sam-property-api-apiauth--examples--aws_iam) 섹션을 참조하세요.

## 속성
<a name="sam-property-api-apiauth-properties"></a>

 `AddApiKeyRequiredToCorsPreflight`   <a name="sam-api-apiauth-addapikeyrequiredtocorspreflight"></a>
`ApiKeyRequired` 및 `Cors` 속성이 설정된 경우 `AddApiKeyRequiredToCorsPreflight`를 설정하면 API 키가 `Options` 속성에 추가됩니다.  
*유형*: 부울  
*필수 항목 여부*: 아니요  
*기본값*: `True`  
*CloudFormation 호환성*:이 속성은에 고유 AWS SAM 하며 CloudFormation 동등한 속성이 없습니다.

 `AddDefaultAuthorizerToCorsPreflight`   <a name="sam-api-apiauth-adddefaultauthorizertocorspreflight"></a>
`DefaultAuthorizer` 및 `Cors` 속성이 설정된 경우 `AddDefaultAuthorizerToCorsPreflight`를 설정하면 기본 권한 부여자가 OpenAPI 섹션의 `Options` 속성에 추가됩니다.  
*유형*: 부울  
*필수 항목 여부*: 아니요  
*기본값*: True  
*CloudFormation 호환성*:이 속성은에 고유 AWS SAM 하며 CloudFormation 동등한 속성이 없습니다.

 `ApiKeyRequired`   <a name="sam-api-apiauth-apikeyrequired"></a>
true로 설정하면 모든 API 이벤트에 API 키가 필요합니다. 자세한 내용을 알아보려면 *API Gateway 개발자 안내서*의 [Amazon API Gateway에서 API 사용량 계획 생성 및 사용](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-api-usage-plans.html)을 참조하세요.  
*유형*: 부울  
*필수 항목 여부*: 아니요  
*CloudFormation 호환성*:이 속성은에 고유 AWS SAM 하며 CloudFormation 동등한 속성이 없습니다.

 `Authorizers`   <a name="sam-api-apiauth-authorizers"></a>
API Gateway API에 대한 액세스를 제어하는 데 사용되는 권한 부여자.  
자세한 내용은 [AWS SAM 템플릿을 사용하여 API 액세스 제어](serverless-controlling-access-to-apis.md) 단원을 참조하십시오.  
*유형*: [CognitoAuthorizer](sam-property-api-cognitoauthorizer.md) \$1 [LambdaTokenAuthorizer](sam-property-api-lambdatokenauthorizer.md) \$1 [LambdaRequestAuthorizer](sam-property-api-lambdarequestauthorizer.md) \$1 AWS\$1IAM  
*필수 항목 여부*: 아니요  
*기본값*: 없음  
*CloudFormation 호환성*:이 속성은에 고유 AWS SAM 하며 CloudFormation 동등한 속성이 없습니다.  
*추가 참고 사항*: SAM은 Api의 OpenApi 정의에 권한 부여자를 추가합니다.

 `DefaultAuthorizer`   <a name="sam-api-apiauth-defaultauthorizer"></a>
기본적으로 API 호출을 승인하는 데 사용되는 API Gateway API의 기본 권한 부여자를 지정합니다.  
이 API와 연결된 함수의 Api EventSource가 IAM 권한을 사용하도록 구성된 경우, 이 속성을 `AWS_IAM`로 설정해야 합니다. 그렇지 않으면 오류가 발생합니다.
*유형*: 문자열  
*필수 항목 여부*: 아니요  
*기본값*: 없음  
*CloudFormation 호환성*:이 속성은에 고유 AWS SAM 하며 CloudFormation 동등한 속성이 없습니다.

 `InvokeRole`   <a name="sam-api-apiauth-invokerole"></a>
모든 리소스 및 메서드의 통합 보안 인증 정보를 이 값으로 설정합니다.  
`CALLER_CREDENTIALS`이 호출자 보안 인증 정보를 사용하여 엔드포인트를 간접 호출하는 `arn:aws:iam:::<user>/`에 매핑됩니다.  
*유효한 값*: `CALLER_CREDENTIALS`, `NONE`, `IAMRoleArn`   
*유형*: 문자열  
*필수 항목 여부*: 아니요  
*기본값*: `CALLER_CREDENTIALS`  
*CloudFormation 호환성*:이 속성은에 고유 AWS SAM 하며 CloudFormation 동등한 속성이 없습니다.

 `ResourcePolicy`   <a name="sam-api-apiauth-resourcepolicy"></a>
API의 모든 메서드와 경로에 대한 리소스 정책을 구성합니다.  
*유형*: [리소스 정책 설명](sam-property-api-resourcepolicystatement.md)  
*필수 항목 여부*: 아니요  
*CloudFormation 호환성*:이 속성은에 고유 AWS SAM 하며 CloudFormation 동등한 속성이 없습니다.  
*추가 참고 사항*: 이 설정은 [ApiFunctionAuth](sam-property-function-apifunctionauth.md)를 사용하여 개별 `AWS::Serverless::Function`에서도 정의할 수도 있습니다. 이는 `EndpointConfiguration: PRIVATE`를 포함하는 API에 필요합니다.

 `UsagePlan`   <a name="sam-api-apiauth-usageplan"></a>
이 API와 연결된 사용량 계획을 구성합니다. 사용량 계획에 대한 자세한 내용은 *API Gateway 개발자 안내서*의 [API 키를 이용한 사용량 계획의 생성 및 사용](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-api-usage-plans.html) 섹션을 참조하세요.  
이 AWS SAM 속성은이 속성이 설정될 때 [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html), [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplankey.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplankey.html)및의 세 가지 추가 CloudFormation 리소스를 생성합니다[https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-apikey.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-apikey.html). 이 시나리오에 대한 자세한 내용은 [UsagePlan 속성 지정됨](sam-specification-generated-resources-api.md#sam-specification-generated-resources-api-usage-plan) 섹션을 참조하세요. 생성된 CloudFormation 리소스에 대한 일반적인 내용은 섹션을 참조하세요[에 대해 생성된 CloudFormation 리소스 AWS SAM](sam-specification-generated-resources.md).  
*유형*: [ApiUsagePlan](sam-property-api-apiusageplan.md)  
*필수 항목 여부*: 아니요  
*CloudFormation 호환성*:이 속성은에 고유 AWS SAM 하며 CloudFormation 동등한 속성이 없습니다.

## 예제
<a name="sam-property-api-apiauth--examples"></a>

### CognitoAuth
<a name="sam-property-api-apiauth--examples--cognitoauth"></a>

Cognito 인증 예제

#### YAML
<a name="sam-property-api-apiauth--examples--cognitoauth--yaml"></a>

```
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
<a name="sam-property-api-apiauth--examples--aws_iam"></a>

AWS IAM 예제

#### YAML
<a name="sam-property-api-apiauth--examples--cognitoauth--yaml"></a>

```
Auth:
  Authorizers: AWS_IAM
```