本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
應用程式功能:IAM 角色、資源政策和巢狀應用程式
在您可以部署應用程式之前, 會 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、AWS::IAM::InstanceProfile、AWS::IAM::Policy 和 AWS::IAM::Role。如果應用程式包含具有自訂名稱的 IAM 資源,則您必須指定 CAPABILITY_NAMED_IAM。如需如何指定功能的範例,請參閱尋找並認可應用程式功能 (AWS CLI)。
下列資源需要由您指定 CAPABILITY_RESOURCE_POLICY:AWS::Lambda::LayerVersionPermission、AWS::Lambda::Permission、AWS::Events::EventBusPolicy、AWS::IAM:Policy、AWS::ApplicationAutoScaling::ScalingPolicy、AWS::S3::BucketPolicy、AWS::SQS::QueuePolicy 和 AWS::SNS::TopicPolicy。
包含一個或多個巢狀應用程式的應用程式需要由您指定 CAPABILITY_AUTO_EXPAND。如需巢狀應用程式的詳細資訊,請參閱《 AWS Serverless Application Model 開發人員指南》中的巢狀應用程式。
注意
AWS Serverless Application Repository 對新發佈的應用程式強制執行限制,以便在從公有儲存庫部署時保護您。具體而言, 會 AWS Serverless Application Repository 封鎖將AWSLambda_FullAccess受管政策連接至 Lambda 函數,或在內嵌 iam:AttachRolePolicyIAM 政策中的所有資源iam:*上授予 iam:PutRolePolicy、 或 的應用程式發佈。這些控制項是本主題中描述的功能確認流程的補充。
尋找並認可應用程式功能 (主控台)
您可以在 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)
若要使用 檢視應用程式的 功能 AWS CLI,您首先需要應用程式的 Amazon Resource Name (ARN)。然後,您可以執行以下命令:
aws serverlessrepo get-application \ --application-idapplication-arn
requiredCapabilities 回應屬性包含了您必須認可後才能部署應用程式的應用程式各項功能的清單。請注意,如果 requiredCapabilities 屬性為空,則應用程式沒有必要的功能。