AWS Serverless Application Repository 자격 증명 기반 정책 예제 - AWS Serverless Application Repository

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

AWS Serverless Application Repository 자격 증명 기반 정책 예제

기본적으로 IAM 사용자 및 역할은 AWS Serverless Application Repository 리소스를 생성하거나 수정할 수 있는 권한이 없습니다. 또한 AWS Management Console, AWS CLI 또는 AWS API를 사용해 작업을 수행할 수 없습니다. IAM 관리자는 지정된 리소스에서 특정 API 태스크를 수행할 수 있는 권한을 사용자와 역할에게 부여하는 IAM 정책을 생성해야 합니다. 그런 다음 관리자는 해당 권한이 필요한 IAM 사용자 또는 그룹에 이러한 정책을 연결해야 합니다.

이러한 예제 JSON 정책 문서를 사용하여 IAM 자격 증명 기반 정책을 생성하는 방법을 알아보려면 IAM 사용 설명서 의 JSON 탭에서 정책 생성 을 참조하세요.

정책 모범 사례

자격 증명 기반 정책은 매우 강력합니다. 이 정책은 계정에서 사용자가 AWS Serverless Application Repository 리소스를 생성, 액세스 또는 삭제할 수 있는지 여부를 결정합니다. 이 작업으로 인해 AWS 계정에 비용이 발생할 수 있습니다. 자격 증명 기반 정책을 생성하거나 편집할 때는 다음 지침과 권장 사항을 따르십시오.

  • 최소 권한 부여 - 사용자 지정 정책을 생성할 때 태스크를 수행하는 데 필요한 권한만 부여합니다. 최소한의 권한 조합으로 시작하여 필요에 따라 추가 권한을 부여합니다. 처음부터 권한을 많이 부여한 후 나중에 줄이는 방법보다 이 방법이 안전합니다. 자세한 내용은 IAM 사용 설명서에서 최소 권한 부여를 참조하세요.

  • 중요한 작업에 대해 MFA 활성화 - 보안을 강화하기 위해 IAM 사용자가 중요한 리소스 또는 API 작업에 액세스할 때 멀티 팩터 인증(MFA)을 사용하도록 합니다. 자세한 내용은 IAM 사용 설명서AWS에서 멀티 팩터 인증(MFA) 사용을 참조하세요.

  • 보안 강화를 위해 정책 조건 사용 – 실제로 가능한 경우 자격 증명 기반 정책이 리소스에 대한 액세스를 허용하는 조건을 정의합니다. 예를 들어 요청을 할 수 있는 IP 주소의 범위를 지정하도록 조건을 작성할 수 있습니다. 지정된 날짜 또는 시간 범위 내에서만 요청을 허용하거나, SSL 또는 MFA를 사용해야 하는 조건을 작성할 수도 있습니다. 자세한 정보는 IAM 사용 설명서IAM JSON 정책 요소: 조건을 참조하세요.

AWS Serverless Application Repository 콘솔 사용

AWS Serverless Application Repository 콘솔은 AWS Serverless Application Repository 애플리케이션을 찾고 관리하기 위한 통합 환경을 제공합니다. 이 콘솔은 AWS Serverless Application RepositoryAPI 권한: 작업 및 리소스 참조에 기록된 API 관련 권한 외에도 주로 AWS Serverless Application Repository 애플리케이션을 관리할 권한이 필요한 기능과 워크플로를 제공합니다.

AWS Serverless Application Repository 콘솔을 사용하는 데 필요한 권한에 대한 자세한 내용은 고객 관리형 정책 예 단원을 참조하십시오.

사용자가 자신이 권한을 볼 수 있도록 허용

이 예제는 IAM 사용자가 자신의 사용자 자격 증명에 연결된 인라인 및 관리형 정책을 볼 수 있도록 허용하는 정책을 생성하는 방법을 보여줍니다. 이 정책에는 콘솔에서 또는 AWS CLI나 AWS API를 사용하여 프로그래밍 방식으로 이 태스크를 완료할 수 있는 권한이 포함됩니다.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ViewOwnUserInfo", "Effect": "Allow", "Action": [ "iam:GetUserPolicy", "iam:ListGroupsForUser", "iam:ListAttachedUserPolicies", "iam:ListUserPolicies", "iam:GetUser" ], "Resource": ["arn:aws:iam::*:user/${aws:username}"] }, { "Sid": "NavigateInConsole", "Effect": "Allow", "Action": [ "iam:GetGroupPolicy", "iam:GetPolicyVersion", "iam:GetPolicy", "iam:ListAttachedGroupPolicies", "iam:ListGroupPolicies", "iam:ListPolicyVersions", "iam:ListPolicies", "iam:ListUsers" ], "Resource": "*" } ] }

고객 관리형 정책 예

이 단원의 예제에서는 사용자에게 연결할 수 있는 샘플 정책 그룹을 제공합니다. 정책을 처음 생성하는 경우 순서대로 먼저 계정에서 IAM 사용자를 생성하고 정책을 사용자에게 연결하는 것이 좋습니다. 또한 이러한 예제를 사용하여 여러 작업을 수행할 수 있는 권한이 포함된 단일 사용자 지정 정책을 만든 다음 사용자에게 연결할 수 있습니다.

정책을 사용자에게 연결하는 방법에 대한 자세한 내용은 IAM 사용 설명서의 사용자에게 권한 추가를 참조하십시오.

게시자 예제 1: 게시자에게 애플리케이션 목록 생성 허용

계정의 IAM 사용자는 serverlessrepo:ListApplications 작업 권한이 있어야만 콘솔의 내용을 확인할 수 있습니다. 이러한 권한을 부여하면 콘솔은 사용자가 속한 특정AWS 지역에서 생성된AWS 계정의AWS Serverless Application Repository 애플리케이션 목록을 표시할 수 있습니다.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ListExistingApplications", "Effect": "Allow", "Action": [ "serverlessrepo:ListApplications" ], "Resource": "*" } ] }

 

게시자 예제 2: 게시자에게 애플리케이션 또는 애플리케이션 버전 세부 정보 보기 허용

사용자는 AWS Serverless Application Repository 애플리케이션을 선택하고 애플리케이션의 세부 정보를 볼 수 있습니다. 이러한 세부 정보에는 작성자, 설명, 버전 및 기타 구성 정보가 포함됩니다. 이를 수행하려면 사용자에게 AWS Serverless Application Repository에 대한 serverlessrepo:GetApplicationserverlessrepo:ListApplicationVersions 작업 권한이 필요합니다.

다음 예제에서 Amazon 리소스 이름(ARN)이 Resource 값으로 지정된 특정 애플리케이션에 대해 이러한 권한이 부여됩니다.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ViewApplication", "Effect": "Allow", "Action": [ "serverlessrepo:GetApplication", "serverlessrepo:ListApplicationVersions" ], "Resource": "arn:aws:serverlessrepo:region:account-id:applications/application-name" } ] }

 

게시자 예제 3: 게시자에게 애플리케이션 또는 애플리케이션 버전 생성 허용

사용자에게 AWS Serverless Application Repository 애플리케이션 생성 권한을 허용하려면 다음 정책에 표시된 것과 같이 serverlessrepo:CreateApplicationserverlessrepo:CreateApplicationVersions 작업에 대한 권한을 부여해야 합니다.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "CreateApplication", "Effect": "Allow", "Action": [ "serverlessrepo:CreateApplication", "serverlessrepo:CreateApplicationVersion", ], "Resource": "*" } ] }

 

게시자 예제 4: 게시자에게 애플리케이션 정책 생성 및 애플리케이션 공유 허용

사용자가 애플리케이션을 다른 사용자와 공유하려면 사용자에게 다음 정책에 나온 것과 같이 애플리케이션 정책을 생성할 권한을 부여해야 합니다.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ShareApplication", "Effect": "Allow", "Action": [ "serverlessrepo:PutApplicationPolicy", "serverlessrepo:GetApplicationPolicy", ], "Resource": "*" } ] }

 

소비자 예제 1: 소비자에게 애플리케이션 검색 허용

소비자가 애플리케이션을 검색하려면 소비자에게 다음 권한을 부여해야 합니다.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "SearchApplications", "Effect": "Allow", "Action": [ "serverlessrepo:SearchApplications" ], "Resource": "*" } ] }

 

소비자 예제 2: 소비자에게 애플리케이션 세부 정보 보기 허용

사용자는 AWS Serverless Application Repository 애플리케이션을 선택하고 작성자, 설명, 버전 및 기타 구성 정보와 같은 애플리케이션의 세부 정보를 볼 수 있습니다. 이를 수행하려면 사용자가 다음 AWS Serverless Application Repository 작업에 대한 권한이 있어야 합니다.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ViewApplication", "Effect": "Allow", "Action": [ "serverlessrepo:GetApplication", "serverlessrepo:ListApplicationVersions" ], "Resource": "*" } ] }

 

소비자 예제 3: 소비자에게 애플리케이션 배포 허용

소비자가 애플리케이션을 배포하려면 소비자에게 여러 작업을 수행할 권한을 부여해야 합니다. 다음 정책은 사용자에게 필요한 권한을 제공합니다.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "DeployApplication", "Effect": "Allow", "Action": [ "serverlessrepo:CreateCloudFormationChangeSet", "cloudformation:CreateChangeSet", "cloudformation:ExecuteChangeSet", "cloudformation:DescribeStacks" ], "Resource": "*" } ] }
참고

애플리케이션을 배포하려면 추가AWS 리소스를 사용할 수 있는 권한이 필요할 수 있습니다. 에서는 와 동일한 기본 배포 메커니즘을AWS Serverless Application Repository 사용하므로AWS CloudFormation 자세한 내용은 AWSID 및 액세스 관리를 통한 액세스 제어를 참조하십시오. 또한 권한 관련 배포 문제에 도움이 되도록 문제 해결: IAM 권한 부족을 참조할 수 있습니다.

소비자 예제 4: 배포 자산에 대한 액세스 거부

애플리케이션이AWS 계정과 비공개로 공유되는 경우 기본적으로 해당 계정의 모든 사용자가 동일한 계정에 있는 다른 모든 사용자의 배포 자산에 액세스할 수 있습니다. 다음 정책은 계정의 사용자가 배포 자산에 액세스하는 것을 금지합니다. 배포 자산은 의 Amazon S3 버킷에 저장됩니다AWS Serverless Application Repository.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "DenyDeploymentAssetAccess", "Effect": "Deny", "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::awsserverlessrepo-changesets*/*" ] } ] }

소비자 예제 5: 소비자의 공개 애플리케이션 검색 및 배포 방지

사용자가 애플리케이션에 대해 특정 작업을 수행하지 못하게 할 수 있습니다.

serverlessrepo:applicationTypepublic으로 지정하여 다음 정책을 공개 애플리케이션을 적용합니다. 그러면 사용자가 EffectDeny로 지정하여 각종 작업을 수행하지 못하게 됩니다. AWS Serverless Application Repository에 사용할 수 있는 조건 키에 대한 자세한 내용은 AWS Serverless Application Repository의 작업, 리소스 및 조건 키를 참조하십시오.

{ "Version": "2012-10-17", "Statement": [ { "Condition": { "StringEquals": { "serverlessrepo:applicationType": "public" } }, "Action": [ "serverlessrepo:SearchApplications", "serverlessrepo:GetApplication", "serverlessrepo:CreateCloudFormationTemplate", "serverlessrepo:CreateCloudFormationChangeSet", "serverlessrepo:ListApplicationVersions", "serverlessrepo:ListApplicationDependencies" ], "Resource": "*", "Effect": "Deny" } ] }
참고

이 정책 설명은 서비스 제어 정책으로도 사용할 수 있으며AWS 조직에 적용할 수 있습니다. 서비스 제어 정책에 대한 자세한 내용은 AWS Organizations사용 설명서의 서비스 제어 정책을 참조하십시오.