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응용 프로그램 정책은 주로 게시자가 소비자에게 응용 프로그램을 배포할 권한을 부여하고 해당 응용 프로그램의 세부 정보를 검색하고 보는 것과 같은 관련 작업을 수행하는 데 사용됩니다.

게시자는 다음과 같은 3가지 범주로 애플리케이션 권한을 설정할 수 있습니다.

  • 비공개 — 동일한 계정으로 생성되었으며 다른 계정과 공유되지 않은 애플리케이션입니다. 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 조직과 공유하려면 future 공유를 취소해야 하는 경우에 대비하여 해당UnshareApplication 작업에 대한 권한을 포함해야 합니다.

예 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 조직과 공유하려면 future 공유를 취소해야 하는 경우에 대비하여 해당UnshareApplication 작업에 대한 권한을 포함해야 합니다.

예제 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