

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 應用程式功能：IAM 角色、資源政策和巢狀應用程式
<a name="acknowledging-application-capabilities"></a>

在您部署應用程式之前， 會 AWS Serverless Application Repository 檢查應用程式的範本是否有 IAM 角色、 AWS 資源政策和範本指定應建立的巢狀應用程式。IAM 資源，例如具有完整存取權的 IAM 角色，可以修改您 AWS 帳戶中的任何資源。因此，建議您先檢閱與應用程式關聯的許可再繼續作業，以免無意間建立提升許可的資源。為了確保您已完成此操作，您必須先確認應用程式包含 功能， AWS Serverless Application Repository 才能代表您部署應用程式。

應用程式可能包含以下四項功能的任何一個：`CAPABILITY_IAM`、`CAPABILITY_NAMED_IAM`、`CAPABILITY_RESOURCE_POLICY` 和 `CAPABILITY_AUTO_EXPAND`。

下列資源需要由您指定 `CAPABILITY_IAM` 或 `CAPABILITY_NAMED_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)。如果應用程式包含具有自訂名稱的 IAM 資源，則您必須指定 `CAPABILITY_NAMED_IAM`。如需如何指定功能的範例，請參閱[尋找並認可應用程式功能 (AWS CLI)](serverlessrepo-how-to-consume.md#acknowledging-application-capabilities-api)。

下列資源需要由您指定 `CAPABILITY_RESOURCE_POLICY`：[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)。

包含一個或多個巢狀應用程式的應用程式需要由您指定 `CAPABILITY_AUTO_EXPAND`。如需巢狀應用程式的詳細資訊，請參閱《 *AWS Serverless Application Model 開發人員指南*》中的[巢狀應用程式](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-sam-template-nested-applications.html)。

## 尋找並認可應用程式功能 (主控台)
<a name="acknowledging-application-capabilities-console"></a>

您可以在 [AWS Serverless Application Repository 網站](https://aws.amazon.com/serverless/serverlessrepo/)或透過 [Lambda 主控台 （在 索引標籤下的 AWS Serverless Application Repository**建立函數**頁面上）](https://console.aws.amazon.com/lambda/home?region=us-east-1#/create?tab=serverlessApps) AWS Serverless Application Repository 尋找可用的應用程式。

預設情況下，搜尋結果不會顯示需要認可具備功能可建立自訂 IAM 角色或資源政策的應用程式。若要搜尋含有上述功能的應用程式，您必須選取 **Show apps that create custom IAM roles or resource policies (顯示建立自訂 IAM 角色或資源政策的應用程式)** 核取方塊。

選取應用程式之後，您便能夠在 **Permissions (許可)** 標籤下檢閱該應用程式的功能。若要部署應用程式，您必須選取 **I acknowledge this application creates custom IAM roles or resource polices (我認可此應用程式會建立自訂 IAM 角色或資源政策)** 核取方塊。如果您未確認這些功能，您會看到此錯誤訊息：**需要確認。若要部署，請勾選設定應用程式參數區段中的方塊**。

## 檢視應用程式功能 (AWS CLI)
<a name="acknowledging-application-capabilities-cli"></a>

若要使用 檢視應用程式的 功能 AWS CLI，您首先需要應用程式的 Amazon Resource Name (ARN)。然後，您可以執行以下命令：

```
aws serverlessrepo get-application \
--application-id application-arn
```

[requiredCapabilities 回應屬性](https://docs.aws.amazon.com/serverlessrepo/latest/devguide/applications-applicationid.html#applications-applicationid-prop-version-requiredcapabilities)包含了您必須認可後才能部署應用程式的應用程式各項功能的清單。請注意，如果 [requiredCapabilities](https://docs.aws.amazon.com/serverlessrepo/latest/devguide/applications-applicationid.html#applications-applicationid-prop-version-requiredcapabilities) 屬性為空，則應用程式沒有必要的功能。

