

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

# AWS SAM で を使用する AWS Serverless Application Repository
<a name="using-aws-sam"></a>

 AWS Serverless Application Model (AWS SAM) は、 で[サーバーレスアプリケーション](https://aws.amazon.com/serverless/)を構築するために使用できるオープンソースフレームワークです AWS。 AWS SAM を使用してサーバーレスアプリケーションを構築する方法の詳細については、 [https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/)を参照してください。

に公開されるアプリケーションを構築するときは AWS Serverless Application Repository、使用可能なサポートされている AWS リソースとポリシーテンプレートのセットを考慮する必要があります。以下のセクションでは、これらのトピックについて詳しく説明します。

## でサポートされている AWS リソース AWS Serverless Application Repository
<a name="supported-resources-for-serverlessrepo"></a>

は、多くの AWS SAM および CloudFormation リソースで構成されるサーバーレスアプリケーション AWS Serverless Application Repository をサポートします。でサポートされている AWS リソースの完全なリストについては AWS Serverless Application Repository、「」を参照してください[サポートされている AWS リソースのリスト](list-supported-resources.md)。

追加の AWS リソースのサポートをリクエストする場合は、 [AWS サポート](https://console.aws.amazon.com/support/home#/)にお問い合わせください。

**重要**  
AWS Serverless Application Repository は、最小特権の原則に従わない、次の過度に広範な IAM アクセス許可パターンを含むアプリケーションの公開をブロックします。  
`AWSLambda_FullAccess` 管理ポリシーを Lambda 関数にアタッチする
インライン IAM `iam:AttachRolePolicy`ポリシーのすべてのリソース (`*`) `iam:*`に `iam:PutRolePolicy`、、または を付与する
アプリケーションを公開するには、 をアプリケーションが必要とする特定の Lambda アクセス許可のみ`AWSLambda_FullAccess`に置き換え、`iam:AttachRolePolicy`、`iam:PutRolePolicy`、 をすべてのリソースではなく特定のリソース ARNs `iam:PassRole`にスコープします。ガイダンスについては、[「IAM セキュリティのベストプラクティス](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html)」を参照してください。

**重要**  
アプリケーションテンプレートに、次のいずれかのカスタム IAM ロールやリソースポリシーが含まれている場合、デフォルトではアプリケーションが検索結果に表示されません。また、お客様は、アプリケーションをデプロイする前に、アプリケーションのカスタム IAM ロールまたはリソースポリシーを承認する必要があります。詳細については、「[アプリケーション機能の承認](acknowledging-application-capabilities.md)」を参照してください。  
これが適用されるリソースのリストは次のとおりです。  
**IAM ロール: **[AWS::IAM::Group](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-group.html)、[AWS::IAM::InstanceProfile](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html)、[AWS::IAM::Policy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-policy.html)、および [AWS::IAM::Role](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html)。
**リソースポリシー: ** [AWS::Lambda::LayerVersionPermission](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-layerversionpermission.html)、[AWS::Lambda::Permission](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-permission.html)、[AWS::Events::EventBusPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-eventbuspolicy.html)、[AWS::IAM:Policy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-policy.html)、[AWS::ApplicationAutoScaling::ScalingPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationautoscaling-scalingpolicy.html)、[AWS::S3::BucketPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-policy.html)、[AWS::SQS::QueuePolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sqs-policy.html)、および [AWS::SNS:TopicPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sns-policy.html)。
アプリケーションに [AWS::Serverless::Application](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-sam-template.html#serverless-sam-template-application) リソースが含まれている場合は、アプリケーションをデプロイする前に、アプリケーションに**ネストされたアプリケーション**が含まれていることを承認する必要があります。ネストされたアプリケーションの詳細については、[AWS Serverless Application Model デベロッパーガイド](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-sam-template-nested-applications.html)の*ネストされたアプリケーション*を参照してください。機能の承認の詳細については、「[アプリケーション機能の承認](acknowledging-application-capabilities.md)」を参照してください。

## ポリシーテンプレート
<a name="policy-templates-for-serverlessrepo"></a>

AWS SAM には、Lambda 関数のアクセス許可をアプリケーションで使用されるリソースにスコープするためのポリシーテンプレートのリストが用意されています。ポリシーテンプレートを使用すると、アプリケーションを検索、参照、またはデプロイするための追加の承認は不要です。

標準 AWS SAM ポリシーテンプレートのリストについては、「 *[AWS Serverless Application Model デベロッパーガイド](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/)*」の[AWS SAM 「ポリシーテンプレート](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-policy-templates.html)」を参照してください。