

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# 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 キーの詳細については、*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 Gateway API のデフォルトオーソライザーを指定します。これは、デフォルトで 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 上のすべてのメソッドとパスのリソースポリシーを設定します。  
*タイプ*: [ResourcePolicyStatement](sam-property-api-resourcepolicystatement.md)  
*必須:* いいえ  
*CloudFormation 互換性*: このプロパティは に固有 AWS SAM であり、 CloudFormation 同等のものはありません。  
*その他の注意点*: この設定は、`AWS::Serverless::Function` を使用して個々の [ApiFunctionAuth](sam-property-function-apifunctionauth.md) で定義することも可能です。これは、`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)の 3 つの追加 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
```