

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

# ApiFunctionAuth
<a name="sam-property-function-apifunctionauth"></a>

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

## 구문
<a name="sam-property-function-apifunctionauth-syntax"></a>

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

### YAML
<a name="sam-property-function-apifunctionauth-syntax.yaml"></a>

```
  [ApiKeyRequired](#sam-function-apifunctionauth-apikeyrequired): Boolean
  [AuthorizationScopes](#sam-function-apifunctionauth-authorizationscopes): List
  [Authorizer](#sam-function-apifunctionauth-authorizer): String
  [InvokeRole](#sam-function-apifunctionauth-invokerole): String
  OverrideApiAuth: Boolean
  [ResourcePolicy](#sam-function-apifunctionauth-resourcepolicy): ResourcePolicyStatement
```

## 속성
<a name="sam-property-function-apifunctionauth-properties"></a>

 `ApiKeyRequired`   <a name="sam-function-apifunctionauth-apikeyrequired"></a>
이 API, 경로 및 메서드에 대한 API 키가 필요합니다.  
*유형*: 부울  
*필수 항목 여부*: 아니요  
*CloudFormation 호환성*:이 속성은에 AWS SAM 고유하며 CloudFormation 동등한 속성이 없습니다.

 `AuthorizationScopes`   <a name="sam-function-apifunctionauth-authorizationscopes"></a>
이 API, 경로 및 메서드에 적용할 수 있는 권한 부여 범위.  
지정한 범위는 해당 속성을 지정한 경우 `DefaultAuthorizer` 속성에서 적용한 모든 범위를 재정의합니다.  
*유형*: 목록  
*필수 항목 여부*: 아니요  
*CloudFormation 호환성*:이 속성은에 AWS SAM 고유하며 CloudFormation 동등한 속성이 없습니다.

 `Authorizer`   <a name="sam-function-apifunctionauth-authorizer"></a>
특정 함수를 위한 `Authorizer`  
귀하의 `AWS::Serverless::Api` 리소스에 글로벌 권한 부여자가 지정된 경우, `Authorizer`를 `NONE`으로 설정하여 권한 부여자를 재정의할 수 있습니다. 예제는 [Amazon API Gateway REST API에 대한 글로벌 권한 부여자 재정의](#sam-property-function-apifunctionauth--examples--override) 섹션을 참조하세요.  
`AWS::Serverless::Api` 리소스의 `DefinitionBody` 속성을 사용하여 API를 설명하는 경우 `Authorizer`와 함께 `OverrideApiAuth`을 사용하여 귀하의 글로벌 권한 부여자를 재정의해야 합니다. 자세한 정보는 `OverrideApiAuth`을 참조하세요
*유효한 값*: 템플릿에 정의된 권한 부여자의 `AWS_IAM``NONE`, 또는 논리적 ID입니다 AWS SAM .  
*유형*: 문자열  
*필수 항목 여부*: 아니요  
*CloudFormation 호환성*:이 속성은에 AWS SAM 고유하며 CloudFormation 동등한 속성이 없습니다.

 `InvokeRole`   <a name="sam-function-apifunctionauth-invokerole"></a>
`AWS_IAM` 권한 부여에 사용할 `InvokeRole`를 지정합니다.  
*유형*: 문자열  
*필수 항목 여부*: 아니요  
*기본값*: `CALLER_CREDENTIALS`  
*CloudFormation 호환성*:이 속성은에 AWS SAM 고유하며 CloudFormation 동등한 속성이 없습니다.  
*추가 참고 사항*: `CALLER_CREDENTIALS`는 `arn:aws:iam:::<user>/`을 매핑하며, 이는 호출자 보안 인증을 사용하여 엔드포인트를 호출합니다.

`OverrideApiAuth`  <a name="sam-function-apifunctionauth-overrideapiauth"></a>
귀하의 `AWS::Serverless::Api`리소스의 글로벌 권한 부여자 구성을 재정의하도록 `true`을 지정합니다. 이 속성은 글로벌 권한 부여자를 지정하고 `AWS::Serverless::Api` 리소스의 `DefinitionBody` 속성을 사용하여 API를 설명하는 경우에만 필요합니다.  
를 `OverrideApiAuth`로 지정하면 AWS SAM `true`는 글로벌 권한 부여자를 `ApiKeyRequired`, `Authorizer`또는에 제공된 값으로 재정의합니다`ResourcePolicy`. 따라서 `OverrideApiAuth`를 사용할 때 이러한 속성들 중에서 적어도 하나가 지정되어야 합니다. 예시는 [AWS::서버리스::Api용 DefinitionBody가 지정된 경우 글로벌 권한 부여자를 재정의합니다.](#sam-property-function-apifunctionauth--examples--override2) 섹션을 참조하세요.
*유형*: 부울  
*필수 항목 여부*: 아니요  
*CloudFormation 호환성*:이 속성은에 고유 AWS SAM 하며 CloudFormation 동등한 속성이 없습니다.

 `ResourcePolicy`   <a name="sam-function-apifunctionauth-resourcepolicy"></a>
API에서 이 경로에 대한 리소스 정책을 구성합니다.  
*유형*: [리소스 정책 설명](sam-property-function-resourcepolicystatement.md)  
*필수 항목 여부*: 아니요  
*CloudFormation 호환성*:이 속성은에 AWS SAM 고유하며 CloudFormation 동등한 속성이 없습니다.

## 예제
<a name="sam-property-function-apifunctionauth--examples"></a>

### 함수-권한 부여
<a name="sam-property-function-apifunctionauth--examples--function-auth"></a>

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

#### YAML
<a name="sam-property-function-apifunctionauth--examples--function-auth--yaml"></a>

```
Auth:
  ApiKeyRequired: true
  Authorizer: NONE
```

### Amazon API Gateway REST API에 대한 글로벌 권한 부여자 재정의
<a name="sam-property-function-apifunctionauth--examples--override"></a>

`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가 지정된 경우 글로벌 권한 부여자를 재정의합니다.
<a name="sam-property-function-apifunctionauth--examples--override2"></a>

`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
```

# ResourcePolicyStatement
<a name="sam-property-function-resourcepolicystatement"></a>

API의 모든 메서드와 경로에 대한 리소스 정책을 구성합니다. 리소스 정책에 대한 자세한 내용은 *API Gateway 개발자 안내서*의 [API Gateway 리소스 정책을 사용하는 액세스 제어](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-resource-policies.html)를 참조하세요.

## 구문
<a name="sam-property-function-resourcepolicystatement-syntax"></a>

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

### YAML
<a name="sam-property-function-resourcepolicystatement-syntax.yaml"></a>

```
  [AwsAccountBlacklist](#sam-function-resourcepolicystatement-awsaccountblacklist): List
  [AwsAccountWhitelist](#sam-function-resourcepolicystatement-awsaccountwhitelist): List
  [CustomStatements](#sam-function-resourcepolicystatement-customstatements): List
  [IntrinsicVpcBlacklist](#sam-function-resourcepolicystatement-intrinsicvpcblacklist): List
  [IntrinsicVpcWhitelist](#sam-function-resourcepolicystatement-intrinsicvpcwhitelist): List
  [IntrinsicVpceBlacklist](#sam-function-resourcepolicystatement-intrinsicvpceblacklist): List
  [IntrinsicVpceWhitelist](#sam-function-resourcepolicystatement-intrinsicvpcewhitelist): List
  [IpRangeBlacklist](#sam-function-resourcepolicystatement-iprangeblacklist): List
  [IpRangeWhitelist](#sam-function-resourcepolicystatement-iprangewhitelist): List
  [SourceVpcBlacklist](#sam-function-resourcepolicystatement-sourcevpcblacklist): List
  [SourceVpcWhitelist](#sam-function-resourcepolicystatement-sourcevpcwhitelist): List
```

## 속성
<a name="sam-property-function-resourcepolicystatement-properties"></a>

 `AwsAccountBlacklist`   <a name="sam-function-resourcepolicystatement-awsaccountblacklist"></a>
차단할 AWS 계정입니다.  
*유형*: 문자열 목록  
*필수 항목 여부*: 아니요  
*CloudFormation 호환성*:이 속성은에 고유 AWS SAM 하며 CloudFormation 동등한 속성이 없습니다.

 `AwsAccountWhitelist`   <a name="sam-function-resourcepolicystatement-awsaccountwhitelist"></a>
허용할 AWS 계정입니다. 이 속성의 예제 사용 예제를 알아보려면 이 페이지 하단의 예제을 참조하세요  
*유형*: 문자열 목록  
*필수 항목 여부*: 아니요  
*CloudFormation 호환성*:이 속성은에 고유 AWS SAM 하며 CloudFormation 동등한 속성이 없습니다.

 `CustomStatements`   <a name="sam-function-resourcepolicystatement-customstatements"></a>
이 API에 적용할 사용자 지정 리소스 정책 설명 목록. 이 속성의 예제 사용 예제를 알아보려면 이 페이지 하단의 예제을 참조하세요  
*유형*: 목록  
*필수 항목 여부*: 아니요  
*CloudFormation 호환성*:이 속성은에 고유 AWS SAM 하며 CloudFormation 동등한 속성이 없습니다.

 `IntrinsicVpcBlacklist`   <a name="sam-function-resourcepolicystatement-intrinsicvpcblacklist"></a>
차단할 Virtual Private Cloud(VPC) )목록입니다. 여기서 각 VPC는 [동적 참조](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html) 또는 `Ref` [내장 함수](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html)와 같은 참조로 지정됩니다. 이 속성의 예제 사용 예제를 알아보려면 이 페이지 하단의 예제을 참조하세요  
*유형*: 목록  
*필수 항목 여부*: 아니요  
*CloudFormation 호환성*:이 속성은에 고유 AWS SAM 하며 CloudFormation 동등한 속성이 없습니다.

 `IntrinsicVpcWhitelist`   <a name="sam-function-resourcepolicystatement-intrinsicvpcwhitelist"></a>
[허용할 VPC 목록. 여기서 각 VPC는 [동적 참조](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html) 또는 `Ref` 내장 함수](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html)와 같은 참조로 지정됩니다.  
*유형*: 목록  
*필수 항목 여부*: 아니요  
*CloudFormation 호환성*:이 속성은에 고유 AWS SAM 하며 CloudFormation 동등한 속성이 없습니다.

 `IntrinsicVpceBlacklist`   <a name="sam-function-resourcepolicystatement-intrinsicvpceblacklist"></a>
[차단할 VPC 엔드포인트 목록. 여기서 각 VPC 엔드포인트는 [동적 참조](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html) 또는 `Ref` 내장 함수](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html)와 같은 참조로 지정됩니다.  
*유형*: 목록  
*필수 항목 여부*: 아니요  
*CloudFormation 호환성*:이 속성은에 고유 AWS SAM 하며 CloudFormation 동등한 속성이 없습니다.

 `IntrinsicVpceWhitelist`   <a name="sam-function-resourcepolicystatement-intrinsicvpcewhitelist"></a>
[허용할 VPC 엔드포인트 목록. 여기서 각 VPC 엔드포인트는 [동적 참조](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html) 또는 `Ref` 내장 함수](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html)와 같은 참조로 지정됩니다. 이 속성의 예제 사용 예제를 알아보려면 이 페이지 하단의 예제을 참조하세요  
*유형*: 목록  
*필수 항목 여부*: 아니요  
*CloudFormation 호환성*:이 속성은에 고유 AWS SAM 하며 CloudFormation 동등한 속성이 없습니다.

 `IpRangeBlacklist`   <a name="sam-function-resourcepolicystatement-iprangeblacklist"></a>
차단할 IP 주소 또는 주소 범위. 이 속성의 예제 사용 예제를 알아보려면 이 페이지 하단의 예제을 참조하세요  
*유형*: 목록  
*필수 항목 여부*: 아니요  
*CloudFormation 호환성*:이 속성은에 고유 AWS SAM 하며 CloudFormation 동등한 속성이 없습니다.

 `IpRangeWhitelist`   <a name="sam-function-resourcepolicystatement-iprangewhitelist"></a>
허용할 IP 주소 또는 주소 범위.  
*유형*: 목록  
*필수 항목 여부*: 아니요  
*CloudFormation 호환성*:이 속성은에 고유 AWS SAM 하며 CloudFormation 동등한 속성이 없습니다.

 `SourceVpcBlacklist`   <a name="sam-function-resourcepolicystatement-sourcevpcblacklist"></a>
차단할 소스 VPC 또는 VPC 엔드포인트. 소스 VPC 이름은 `"vpc-"`로 시작하고 소스 VPC 엔드포인트 이름은 `"vpce-"`로 시작해야 합니다. 이 속성의 예제 사용 예제를 알아보려면 이 페이지 하단의 예제을 참조하세요  
*유형*: 목록  
*필수 항목 여부*: 아니요  
*CloudFormation 호환성*:이 속성은에 고유 AWS SAM 하며 CloudFormation 동등한 속성이 없습니다.

 `SourceVpcWhitelist`   <a name="sam-function-resourcepolicystatement-sourcevpcwhitelist"></a>
허용할 소스 VPC 또는 VPC 엔드포인트. 소스 VPC 이름은 `"vpc-"`로 시작하고 소스 VPC 엔드포인트 이름은 `"vpce-"`로 시작해야 합니다.  
*유형*: 목록  
*필수 항목 여부*: 아니요  
*CloudFormation 호환성*:이 속성은에 고유 AWS SAM 하며 CloudFormation 동등한 속성이 없습니다.

## 예제
<a name="sam-property-function-resourcepolicystatement--examples"></a>

### 리소스 정책 예시
<a name="sam-property-function-resourcepolicystatement--examples--resource-policy-example"></a>

다음 예제에서는 두 개의 IP 주소와 소스 VPC를 차단하고 AWS 계정을 허용합니다.

#### YAML
<a name="sam-property-function-resourcepolicystatement--examples--resource-policy-example--yaml"></a>

```
Auth:
  ResourcePolicy:
    CustomStatements: [{
                         "Effect": "Allow",
                         "Principal": "*",
                         "Action": "execute-api:Invoke",
                         "Resource": "execute-api:/Prod/GET/pets",
                         "Condition": {
                           "IpAddress": {
                             "aws:SourceIp": "1.2.3.4"
                           }
                         }
                       }]
    IpRangeBlacklist:
      - "10.20.30.40"
      - "1.2.3.4"
    SourceVpcBlacklist:
      - "vpce-1a2b3c4d"
    AwsAccountWhitelist:
      - "111122223333"
    IntrinsicVpcBlacklist:
      - "{{resolve:ssm:SomeVPCReference:1}}" 
      - !Ref MyVPC
    IntrinsicVpceWhitelist:
      - "{{resolve:ssm:SomeVPCEReference:1}}" 
      - !Ref MyVPCE
```