기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
태그를 사용하여 Elastic Beanstalk 리소스에 대한 액세스 제어
이 주제에서는 태그 기반 액세스 제어를 통해 IAM 정책을 생성하고 관리하는 방법을 설명합니다.
IAM 정책 설명의 조건을 사용하여 Elastic Beanstalk에서 리소스에 액세스할 수 있는 권한을 구성할 수 있습니다. 정책 설명 조건에 대한 자세한 내용은 Elastic Beanstalk 작업에 사용되는 리소스 및 조건 단원을 참조하세요. 조건에 태그를 사용하는 것은 리소스 및 요청에 대한 액세스를 제어하는 하나의 방법입니다. Elastic Beanstalk 리소스 태깅에 대한 자세한 내용은 Elastic Beanstalk 애플리케이션 리소스 태그 지정 단원을 참조하세요.
IAM 정책을 설계할 때 특정 리소스에 대한 액세스 권한을 부여하여 세부적인 권한을 설정할 수도 있습니다. 관리하는 리소스의 개수가 늘어날수록 이 작업은 더 어려워집니다. 리소스에 태그를 지정하고 정책 문 조건에서 태그를 사용하면 이러한 작업이 더 간단해질 수 있습니다. 특정 태그를 사용하여 리소스에 대량으로 액세스 권한을 부여합니다. 그런 다음 생성 중 또는 나중에 이 태그를 관련 리소스에 반복해서 적용합니다.
리소스에 태그가 연결되거나 태그 지정을 지원하는 서비스에 대한 요청에서 전달될 수 있습니다. Elastic Beanstalk에서는 리소스에 태그가 있을 수 있고 일부 작업에 태그가 포함될 수 있습니다. IAM 정책을 생성하면 태그 조건 키를 사용하여 다음 조건을 제어할 수 있습니다.
-
이미 가지고 있는 태그를 기반으로 어떤 사용자가 환경에 대해 작업을 수행할 수 있는지 제어합니다.
-
어떤 태그가 작업의 요청에서 전달될 수 있는지 통제합니다.
-
요청에서 특정 키를 사용할 수 있는지 여부를 통제합니다.
태그 조건 키의 전체 구문 및 의미는 IAM 사용 설명서의 태그를 사용한 액세스 제어를 참조하십시오.
정책의 태그 조건 예제
다음 예에서는 Elastic Beanstalk 사용자에 정책의 태그 조건을 지정하는 방법을 설명합니다.
예 1: 요청의 태그 기반 작업 한도 지정
Elastic Beanstalk AdministratorAccess-AWSElasticBeanstalk 관리형 사용자 정책이 사용자에게 모든 Elastic Beanstalk 관리형 리소스에 대해 모든 Elastic Beanstalk 작업을 수행할 수 있는 무제한적인 권한을 제공합니다.
다음 정책은 이러한 기능을 제한하고 권한이 없는 사용자의 Elastic Beanstalk 프로덕션 환경 생성 권한을 거부합니다. 이와 관련하여 정책은 요청이 gamma
또는 prod
값 중 하나와 함께 stage
라는 태그를 지정하는 경우 CreateEnvironment
작업을 거부합니다. 또한 정책은 이러한 동일한 태그 값을 포함하거나 stage
태그를 완전하게 제거하기 위한 태그 수정 작업을 허용하지 않음으로써 이러한 권한이 없는 사용자가 프로덕션 환경의 단계를 변경하지 못하도록 합니다. 고객의 관리자는 권한이 없는 IAM 사용자에게 관리형 사용자 정책 이외에 이 IAM 정책도 연결해야 합니다.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": [ "elasticbeanstalk:CreateEnvironment", "elasticbeanstalk:AddTags" ], "Resource": "*", "Condition": { "StringEquals": { "aws:RequestTag/stage": ["gamma", "prod"] } } }, { "Effect": "Deny", "Action": [ "elasticbeanstalk:RemoveTags" ], "Resource": "*", "Condition": { "ForAnyValue:StringEquals": { "aws:TagKeys": ["stage"] } } } ] }
예 2: 리소스 태그 기반 작업 한도 지정
Elastic Beanstalk AdministratorAccess-AWSElasticBeanstalk 관리형 사용자 정책이 사용자에게 모든 Elastic Beanstalk 관리형 리소스에 대해 모든 Elastic Beanstalk 작업을 수행할 수 있는 무제한적인 권한을 제공합니다.
다음 정책은 이러한 기능을 제한하고 권한이 없는 사용자의 Elastic Beanstalk 프로덕션 환경에 대한 작업 수행 권한을 거부합니다. 이와 관련하여 정책은 환경이 gamma
또는 prod
값 중 하나와 함께 stage
라는 태그를 포함하는 경우 특정 작업을 거부합니다. 고객의 관리자는 권한이 없는 IAM 사용자에게 관리형 사용자 정책 이외에 이 IAM 정책도 연결해야 합니다.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": [ "elasticbeanstalk:AddTags", "elasticbeanstalk:RemoveTags", "elasticbeanstalk:DescribeEnvironments", "elasticbeanstalk:TerminateEnvironment", "elasticbeanstalk:UpdateEnvironment", "elasticbeanstalk:ListTagsForResource" ], "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceTag/stage": ["gamma", "prod"] } } } ] }
예 3: 요청의 태그 기반 작업 허용
다음 정책은 사용자에게 Elastic Beanstalk 개발 애플리케이션을 생성할 수 있는 권한을 부여합니다.
이와 관련하여 정책은 요청이 development
값과 함께 stage
라는 태그를 지정하는 경우 CreateApplication
및 AddTags
작업을 허용합니다. aws:TagKeys
조건은 사용자가 다른 태그 키를 추가할 수 없도록 합니다. 특히 이 조건은 stage
태그 키의 대소문자를 구분합니다. 이 정책은 Elastic Beanstalk AdministratorAccess-AWSElasticBeanstalk 관리형 사용자 정책이 연결되지 않은 IAM 사용자에 유용합니다. 이 관리형 정책은 사용자에게 모든 Elastic Beanstalk 관리형 리소스에 대해 모든 Elastic Beanstalk 작업을 수행할 수 있는 무제한적인 권한을 제공합니다.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "elasticbeanstalk:CreateApplication", "elasticbeanstalk:AddTags" ], "Resource": "*", "Condition": { "StringEquals": { "aws:RequestTag/stage": "development" }, "ForAllValues:StringEquals": { "aws:TagKeys": ["stage"] } } } ] }
예 4: 리소스 태그 기반 작업 허용
다음 정책은 사용자에게 Elastic Beanstalk 개발 애플리케이션에서 작업을 수행하고 관련 정보를 가져올 수 있는 권한을 부여합니다.
이와 관련하여 정책은 애플리케이션이 development
값과 함께 stage
라는 태그를 포함하는 경우 특정 작업을 허용합니다. aws:TagKeys
조건은 사용자가 다른 태그 키를 추가할 수 없도록 합니다. 특히 이 조건은 stage
태그 키의 대소문자를 구분합니다. 이 정책은 Elastic Beanstalk AdministratorAccess-AWSElasticBeanstalk 관리형 사용자 정책이 연결되지 않은 IAM 사용자에 유용합니다. 이 관리형 정책은 사용자에게 모든 Elastic Beanstalk 관리형 리소스에 대해 모든 Elastic Beanstalk 작업을 수행할 수 있는 무제한적인 권한을 제공합니다.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "elasticbeanstalk:UpdateApplication", "elasticbeanstalk:DeleteApplication", "elasticbeanstalk:DescribeApplications" ], "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceTag/stage": "development" }, "ForAllValues:StringEquals": { "aws:TagKeys": ["stage"] } } } ] }