AWS Serverless Application Repository應用政策範例 - AWS Serverless Application Repository

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

AWS Serverless Application Repository應用政策範例

附加至AWS Serverless Application Repository應用程式的權限原則稱為應用程式原則。應用程式原則會決定指定的主體或 Principalorg 可以在AWS Serverless Application Repository應用程式上執行的動作。

AWS Serverless Application Repository應用程式是中的主要AWS資源AWS Serverless Application Repository。 AWS Serverless Application Repository應用程式原則主要是由發行者用來授與取用者部署其應用程式的權限,以及相關作業 (例如搜尋和檢視這些應用程式的詳細資料)。

發佈者可以將應用程式許可設定為下列三種類別:

  • 私人 — 使用相同帳戶建立且尚未與任何其他帳戶共用的應用程式。只有共用您AWS帳戶的消費者才有權部署私人應用程式。

  • 私下共用 — 發行者已與特定AWS帳戶集明確共用的應用程式,或與AWS組織中的AWS帳戶共用的應用程式。消費者有權部署已與其AWS帳戶或AWS組織共用的應用程式。若要取得有關AWS組織的更多資訊,請參閱AWS Organizations使用者指南

  • 公開共用 — 發行者已與所有人共用的應用程式。所有使用者都有權部署任何公開共用的應用程式。

注意

對於私人共用應用程式,AWS Serverless Application Repository僅支援作為主體的AWS帳戶。發行者可以將AWS帳戶內的所有使用者作為單一群組授與或拒絕AWS Serverless Application Repository應用程式。發行者無法將AWS帳戶內的個別使用者授與或拒絕AWS Serverless Application Repository應用程式。

如需使用AWS Management Console設定應用程式許可的指示,請參閱共用應用程式

如需使用 AWS CLI 設定應用程式許可的指示及範例,請參閱下列各節。

應用程式權限 (AWS CLI和AWS SDK)

當您使用AWS CLI或AWS SDK 設定應用AWS Serverless Application Repository程式的權限時,您可以指定下列動作:

動作 描述
GetApplication

授予查看應用程式相關資訊的許可。

CreateCloudFormationChangeSet

授予部署應用程式的許可。

注意:此動作授予部署除外的任何其他許可。

CreateCloudFormationTemplate

授予為應用程式建立 AWS CloudFormation 範本的許可。

ListApplicationVersions 授予列出應用程式版本的許可。
ListApplicationDependencies 授予列出應用程式內所含巢狀應用程式清單的許可。
SearchApplications 授予搜尋應用程式的許可。
部署

此動作會啟用表格前面列出的所有動作。也就是授予檢視、部署、列出版本及搜尋應用程式的許可。

應用政策範例

以下範例說明如何使用 AWS CLI 授予許可。如需如何使用AWS Management Console授予許可的資訊,請參閱共用應用程式

本節中的所有範例都會使用這些 AWS CLI 命令來管理與 AWS Serverless Application Repository 應用程式相關聯的許可政策:

範例 1:與其他帳戶共用應用程式

若要與另一個特定帳戶共用應用程式,但不要與其他人共用應用程式,您可以指定要與其共用的AWS帳戶 ID 做為主體。這也稱為將應用程式設定為私人共用。若要執行此操作,請使用以下 AWS CLI 命令。

aws serverlessrepo put-application-policy \ --region region \ --application-id application-arn \ --statements Principals=account-id,Actions=Deploy
注意

私人共用應用程式只能在建立應用程式的相同AWS區域中使用。

範例 2:公開共用應用程式

若要公開應用程式,您透過指定「*」為委託人與每個人共用,如下列範例所示。公開共用的應用程式可在所有區域使用。

aws serverlessrepo put-application-policy \ --region region \ --application-id application-arn \ --statements Principals=*,Actions=Deploy
注意

若要公開共用應用程式,應用程式必須同時設定 SemanticVersionLicenseUrl 屬性。

範例 3:將應用程式設為私有

您可以將應用程式設為私有,因此它不會與任何人共用,而且只能由擁有該應用程式的AWS帳戶進行部署。若要這麼做,您可以從原則中清除主參與者和動作,這也會從AWS組織內其他帳戶移除部署應用程式的權限。

aws serverlessrepo put-application-policy \ --region region \ --application-id application-arn \ --statements '[]'
注意

有應用程式只能在建立應用程式的相同AWS區域中使用。

範例 4:指定多個帳戶和許可

您可以授予多個權限,並且一次可以將它們授予多個AWS帳戶。若要這樣做,請指定委託人和動作清單,如下列範例所示。

aws serverlessrepo put-application-policy \ --region region \ --application-id application-arn \ --statements Principals=account-id-1,account-id-2,Actions=GetApplication,CreateCloudFormationChangeSet

範例 5:與AWS組織中的所有帳戶共用應用程式

權限可授與AWS組織內的所有使用者。您可以藉由指定組織 ID 來執行這項操作,如下列範例所示。

aws serverlessrepo put-application-policy \ --region region \ --application-id application-arn \ --statements Principals=*,PrincipalOrgIDs=org-id,Actions=Deploy,UnshareApplication

如需有關AWS組織的更多資訊,請參閱《AWS Organizations使用者指南》

注意

您只能指定您的AWS帳戶所屬的AWS組織。如果您嘗試指定您不是其成員的AWS組織,則會導致錯誤。

若要與AWS組織共用您的應用程式,您必須包含UnshareApplication動作的權限,以防將 future 需要撤銷共用。

範例 6:與AWS組織中的某些帳戶共用應用程式

權限可授與AWS組織內的特定帳戶。您可以將AWS帳戶清單指定為主參與者,並指定您的組織 ID,如下列範例所示。

aws serverlessrepo put-application-policy \ --region region \ --application-id application-arn \ --statements Principals=account-id-1,account-id-2,PrincipalOrgIDs=org-id,Actions=Deploy,UnshareApplication
注意

您只能指定您的AWS帳戶所屬的AWS組織。如果您嘗試指定您不是其成員的AWS組織,則會導致錯誤。

若要與AWS組織共用您的應用程式,您必須包含UnshareApplication動作的權限,以防將 future 需要撤銷共用。

範例 7:擷取應用程式政策

若要檢視應用程式目前的政策,例如,查看目前是否正在共用,請使用 get-application-policy 命令,如下列範例所示。

aws serverlessrepo get-application-policy \ --region region \ --application-id application-arn

範例 8:允許特定帳戶巢狀化應用程式

系統允許任何人巢套公有應用程式。若您希望只允許特定帳戶巢套您的應用程式,則必須設定下列最低許可,如以下範例所示。

aws serverlessrepo put-application-policy \ --region region \ --application-id application-arn \ --statements Principals=account-id-1,account-id-2,Actions=GetApplication,CreateCloudFormationTemplate