환경 간 Amazon S3 버킷 액세스 방지 - AWS Elastic Beanstalk

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

환경 간 Amazon S3 버킷 액세스 방지

이 주제에서는 관리형 정책이 환경 간 S3 버킷 액세스를 허용하는 방법과 이러한 유형의 액세스를 관리하기 위해 사용자 지정 정책을 생성하는 방법을 설명합니다.

Elastic Beanstalk는 AWS 계정의 Elastic Beanstalk 환경에 필요한 AWS 리소스를 처리할 수 있는 관리형 정책을 제공합니다. AWS 계정의 한 애플리케이션에 기본적으로 제공되는 권한은 동일한 AWS 계정의 다른 애플리케이션에 속한 S3 리소스에 액세스할 수 있습니다.

AWS 계정이 여러 Beanstalk 애플리케이션을 실행하는 경우 각 환경의 고유한 서비스 역할 또는 인스턴스 프로파일에 연결할 사용자 지정 정책을 생성하여 정책의 보안을 범위로 축소할 수 있습니다. 그런 다음 사용자 지정 정책의 S3 권한을 특정 환경으로 제한할 수 있습니다.

참고

사용자 지정 정책을 유지할 책임은 사용자에게 있다는 점에 유의하세요. 사용자 지정 정책의 기반이 되는 Elastic Beanstalk 관리형 정책이 변경되는 경우 기본 정책의 각 변경 사항을 사용하여 사용자 지정 정책을 수정해야 합니다. Elastic Beanstalk 관리형 정책의 변경 기록은 AWS 관리형 정책에 대한 Elastic Beanstalk 업데이트 단원을 참조하세요.

범위 축소 권한의 예제

다음 예제는 AWSElasticBeanstalkWebTier 관리형 정책을 기반으로 합니다.

기본 정책에는 S3 버킷 권한에 대한 다음 줄이 포함됩니다. 이 기본 정책은 S3 버킷 작업을 특정 환경 또는 애플리케이션으로 제한하지 않습니다.

{ "Sid" : "BucketAccess", "Action" : [ "s3:Get*", "s3:List*", "s3:PutObject" ], "Effect" : "Allow", "Resource" : [ "arn:aws:s3:::elasticbeanstalk-*", "arn:aws:s3:::elasticbeanstalk-*/*" ] }

특정 리소스를 Principal로 지정된 서비스 역할로 검증하여 액세스 범위를 좁힐 수 있습니다. 다음 예제에서는 ID가 my-example-env-ID인 환경의 S3 버킷에 대한 사용자 지정 서비스 역할 aws-elasticbeanstalk-ec2-role-my-example-env 권한을 제공합니다.

예 특정 환경의 S3 버킷에만 권한 부여
{ "Sid": "BucketAccess", "Action": [ "s3:Get*", "s3:List*", "s3:PutObject" ], "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::...:role/aws-elasticbeanstalk-ec2-role-my-example-env" }, "Resource": [ "arn:aws:s3:::elasticbeanstalk-my-region-account-id-12345", "arn:aws:s3:::elasticbeanstalk-my-region-account-id-12345/resources/environments/my-example-env-ID/*" ] }
참고

리소스 ARN에는 Elastic Beanstalk 환경 ID(환경 이름 아님)가 포함되어야 합니다. 환경 개요 페이지의 Elastic Beanstalk 콘솔에서 환경 ID를 가져올 수 있습니다. AWS CLI describe-environments 명령을 사용하여 이 정보를 얻을 수도 있습니다.

Elastic Beanstalk 환경에 대한 S3 버킷 권한을 업데이트하는 데 도움이 되는 자세한 내용은 다음 리소스를 참조하세요.