Athena에서 Amazon S3에 대한 액세스 제어 - Amazon Athena

Athena에서 Amazon S3에 대한 액세스 제어

ID 기반 정책, 버킷 리소스 정책, 액세스 포인트 정책 또는 위 정책들의 조합을 사용하여 Amazon S3 위치에 대한 액세스 권한을 부여할 수 있습니다. 액터가 Athena와 상호 작용하면 해당 권한이 Athena를 통해 전달되어 Athena가 액세스할 수 있는 대상이 결정됩니다. 즉, 사용자는 Athena에서 Amazon S3 버킷을 쿼리하려면 Amazon S3 버킷에 액세스할 수 있는 권한이 있어야 합니다.

IAM 정책을 사용할 때마다 IAM 모범 사례를 따라야 합니다. 자세한 내용은 IAM 사용 설명서IAM 보안 모범 사례를 참조하세요.

Amazon S3에 대한 요청은 aws:SourceIp에 지정된 소스 IP가 아니라 Athena의 프라이빗 IPv4 주소에서 전송된다는 점에 유의하세요. 따라서 주어진 IAM 정책에서는 aws:SourceIp 조건을 사용하여 Amazon S3 작업에 대한 액세스를 거부할 수 없습니다. 또한 aws:SourceVpc 또는 aws:SourceVpce 조건 키에 따라 Amazon S3 리소스에 대한 액세스를 제한하거나 허용할 수 없습니다.

참고

IAM Identity Center 인증을 사용하는 Athena 작업 그룹의 경우 신뢰할 수 있는 ID 전파 ID를 사용하도록 S3 Access Grants를 구성해야 합니다. 자세한 내용은 Amazon Simple Storage Service 사용 설명서의 S3 Access Grants and directory identities를 참조하십시오.

자격 증명 기반 정책을 사용하여 Amazon S3 버킷에 대한 액세스 제어

자격 증명 기반 정책은 IAM 사용자, 그룹 또는 역할에 연결됩니다. 이러한 정책으로 자격 증명이 수행할 수 있는 작업(권한)을 지정할 수 있습니다. 자격 증명 기반 정책을 사용하여 Amazon S3 버킷에 대한 액세스를 제어할 수 있습니다.

다음 자격 증명 기반 정책은 특정 Amazon S3 버킷에 있는 객체에 대해 ReadWrite의 액세스를 허용합니다. 이 정책을 사용하려면 기울임꼴 자리 표시자 텍스트를 자체 값으로 바꿉니다.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ListObjectsInBucket", "Effect": "Allow", "Action": ["s3:ListBucket"], "Resource": ["arn:aws:s3:::amzn-s3-demo-bucket"] }, { "Sid": "AllObjectActions", "Effect": "Allow", "Action": "s3:*Object", "Resource": ["arn:aws:s3:::amzn-s3-demo-bucket/*"] } ] }

버킷 리소스 정책을 사용하여 Amazon S3 버킷에 대한 액세스 제어

Amazon S3 버킷 정책을 사용하면 적절한 권한을 가진 사용자만 객체에 액세스할 수 있도록 하여 버킷의 객체 액세스를 보호할 수 있습니다. Amazon S3 정책 생성에 대한 지침은 Amazon S3 사용 설명서Amazon S3 콘솔을 사용하여 버킷 정책 추가를 참조하세요.

다음 권한 정책 예제는 environment: production 태그 키 및 값이 있는 객체만 사용자가 읽을 수 있도록 제한합니다. 이 정책 예제는 s3:ExistingObjectTag 조건 키를 사용하여 태그 키 및 값을 지정합니다.

{ "Version":"2012-10-17", "Statement": [ { "Principal":{"AWS":"arn:aws:iam::111122223333:role/JohnDoe" }, "Effect":"Allow", "Action": [ "s3:GetObject", "s3:GetObjectVersion" ], "Resource":"arn:aws:s3:::amzn-s3-demo-bucket/*", "Condition": { "StringEquals":{"s3:ExistingObjectTag/environment":"production" } ] }

더 많은 버킷 정책 예제는 Amazon S3 사용 설명서Amazon S3 버킷 정책 예제를 참조하세요.

Amazon S3 액세스 포인트를 사용하여 버킷 액세스를 보다 정밀하게 제어

Amazon S3 버킷에 공유 데이터 세트이 있는 경우 수백 개의 사용 사례에 대해 액세스를 관리하는 하나의 버킷 정책을 유지하는 것은 어려울 수 있습니다.

Amazon S3 버킷 액세스 포인트, 정책 및 별칭은 이 문제를 해결하는 데 도움이 됩니다. 버킷에는 여러 액세스 포인트가 있을 수 있으며, 각 액세스 포인트는 서로 다른 방식으로 버킷에 대한 액세스 권한을 제어하는 정책이 있습니다.

생성한 각 액세스 포인트에 대해 Amazon S3는 액세스 포인트를 나타내는 별칭을 생성합니다. 별칭은 Amazon S3 버킷 이름 형식이므로 Athena에서 CREATE TABLE 문의 LOCATION 절에 이 별칭을 사용할 수 있습니다. 이렇게 하면 버킷에 대한 Athena의 액세스는 별칭이 나타내는 액세스 포인트에 대한 정책에 의해 제어됩니다.

자세한 내용은 Amazon S3 사용 설명서Amazon S3의 테이블 위치 지정액세스 포인트 사용을 참조하세요.

CalledVia 컨텍스트 키를 사용하여 Athena에서만 다른 서비스를 직접적으로 호출하도록 허용

보안 강화를 위해 aws:CalledVia 전역 조건 컨텍스트 키를 사용할 수 있습니다. aws:CalledVia 조건 키에는 다른 서비스를 직접적으로 호출할 수 있는 서비스 목록이 포함되어 있습니다. 예를 들어 aws:CalledVia 컨텍스트 키에 Athena 서비스 보안 주체 이름 athena.amazonaws.com을 지정하여 Athena에서 직접적으로 호출하는 경우에만 AWS Lambda에 대한 InvokeFunction 호출을 허용할 수 있습니다. 자세한 내용은 Athena용 CalledVia 컨텍스트 키 사용 단원을 참조하십시오.

추가 리소스

Amazon S3 액세스 권한을 부여하는 방법에 대한 자세한 내용과 예는 다음 리소스를 참조하세요.