翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
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 アプリケーションポリシーは、アプリケーションのデプロイと、これらのアプリケーションの検索や詳細の表示などの関連操作に必要なアクセス許可をコンシューマーに付与するためにパブリッシャーが主に使用します。
パブリッシャーは、アプリケーションへのアクセス許可を次の 3 つのカテゴリに設定できます。
-
非公開 – 同じアカウントで作成され、他のアカウントと共有されていないアプリケーション。非公開アプリケーションをデプロイするアクセス許可を持つのは、AWS アカウントを共有するコンシューマーのみです。
-
非公開共有 - パブリッシャーが一連の特定の AWS アカウントまたは AWS Organization の AWS アカウントと明示的に共有しているアプリケーション。コンシューマーは、これらの AWS アカウントまたは AWS Organization と共有されているアプリケーションをデプロイするためのアクセス許可を付与されます。AWS Organization の詳細については、AWS Organizations ユーザーガイドを参照してください。
-
公開共有 – パブリッシャーがすべてのユーザーと共有しているアプリケーション。すべてのコンシューマーは、すべての公開共有アプリケーションをデプロイするためのアクセス許可を付与されます。
注記
非公開共有アプリケーションの場合、AWS Serverless Application Repository は AWS アカウントのみをプリンシパルとしてサポートします。パブリッシャーは、AWS Serverless Application Repository アプリケーションに対して AWS アカウント内のすべてのユーザーを 1 つのグループとして許可または拒否できます。パブリッシャーは、AWS Serverless Application Repository アプリケーションに対して AWS アカウント内の個別のユーザーを許可または拒否することはできません。
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-idapplication-arn
\ --statements Principals=account-id
,Actions=Deploy
注記
非公開共有アプリケーションは、アプリケーションを作成した同じ AWS リージョンでのみ使用できます。
例 2: アプリケーションを公開共有する
アプリケーションを公開するには、次の例のように「*」をプリンシパルとして指定し、すべてのユーザーとアプリケーションを共有します。公開共有したアプリケーションは、すべてのリージョンで利用できます。
aws serverlessrepo put-application-policy \ --region
region
\ --application-idapplication-arn
\ --statements Principals=*,Actions=Deploy
注記
アプリケーションを公開共有するには、SemanticVersion
プロパティ LicenseUrl
とプロパティの両方が設定されている必要があります。
例 3: アプリケーションを非公開にする
アプリケーションを非公開にして、誰とも共有せず、それを所有する AWS アカウントによってのみデプロイできます。そのためには、ポリシーからプリンシパルとアクションをクリアします。これにより、AWS Organization 内の他のアカウントのアクセス許可もアプリケーションのデプロイから削除されます。
aws serverlessrepo put-application-policy \ --region
region
\ --application-idapplication-arn
\ --statements '[]'
注記
非公開アプリケーションは、アプリケーションを作成した同じ AWS リージョンでのみ使用できます。
例 4: 複数のアカウントおよびアクセス許可の指定
複数のアクセス許可を付与できます。また、複数のアクセス許可を一度に複数の AWS アカウントに付与できます。これを行うには、次の例に示すように、プリンシパルおよびアクションとしてリストを指定します。
aws serverlessrepo put-application-policy \ --region
region
\ --application-idapplication-arn
\ --statements Principals=account-id-1
,account-id-2
,Actions=GetApplication,CreateCloudFormationChangeSet
例 5: AWS Organization のすべてのアカウントでアプリケーションを共有する
アクセス許可は、AWS Organization 内のすべてのユーザーに付与できます。これを行うには、次の例のように、組織 ID を指定します。
aws serverlessrepo put-application-policy \ --region
region
\ --application-idapplication-arn
\ --statements Principals=*,PrincipalOrgIDs=org-id
,Actions=Deploy,UnshareApplication
AWS Organization の詳細については、AWS Organizations ユーザーガイドを参照してください。
注記
指定できるのは、AWS アカウントがメンバーである AWS Organization のみです。メンバーではない AWS Organization を指定しようとすると、エラーが発生します。
アプリケーションを AWS Organization と共有するには、将来共有を取り消す必要がある場合に備えて、UnshareApplication
アクションのアクセス許可を含める必要があります。
例 6: AWS Organization の一部のアカウントとアプリケーションを共有する
アクセス許可は、AWS Organization 内の特定のアカウントに付与できます。これを行うには、次の例のように AWS アカウントのリストをプリンシパルとして指定し、組織 ID を指定します。
aws serverlessrepo put-application-policy \ --region
region
\ --application-idapplication-arn
\ --statements Principals=account-id-1
,account-id-2
,PrincipalOrgIDs=org-id
,Actions=Deploy,UnshareApplication
注記
指定できるのは、AWS アカウントがメンバーである AWS Organization のみです。メンバーではない AWS Organization を指定しようとすると、エラーが発生します。
アプリケーションを AWS Organization と共有するには、将来共有を取り消す必要がある場合に備えて、UnshareApplication
アクションのアクセス許可を含める必要があります。
例 7: アプリケーションポリシーを取得する
現在共有されているかどうかを確認するなど、アプリケーションの現在のポリシーを表示するには、次の例のように、get-application-policy
コマンドを使用します。
aws serverlessrepo get-application-policy \ --region
region
\ --application-idapplication-arn
例 8: アプリケーションをネストすることを特定のアカウントに許可する
公開アプリケーションのネストはすべてのユーザーに許可されます。アプリケーションをネストすることを特定のアカウントにのみ許可する場合は、次の例に示すように、以下の最小限のアクセス許可を設定する必要があります。
aws serverlessrepo put-application-policy \ --region
region
\ --application-idapplication-arn
\ --statements Principals=account-id-1
,account-id-2
,Actions=GetApplication,CreateCloudFormationTemplate