DynamoDB의 리소스 기반 정책으로 퍼블릭 액세스 차단
퍼블릭 액세스 차단(BPA)은 Amazon Web Services(AWS)
BPA는 자동 추론
중요
BPA는 테이블, 인덱스, 스트림과 같은 DynamoDB 리소스에 직접 연결된 리소스 기반 정책을 통해 퍼블릭 액세스가 허용되지 않도록 함으로써 리소스를 보호합니다. BPA를 사용하는 것 외에도 다음 정책을 주의 깊게 검토하여 퍼블릭 액세스를 허용하지 않는지 확인하세요.
-
관련 AWS 보안 주체(예: IAM 역할)에 연결된 자격 증명 기반 정책
-
관련 AWS 리소스(예: AWS Key Management Service(KMS) 키)에 연결된 리소스 기반 정책
보안 주체에 *
항목이 포함되지 않도록 하거나 지정된 조건 키 중 하나가 보안 주체의 리소스 액세스를 제한하는지 확인해야 합니다. AWS 계정 전반에서 리소스 기반 정책이 테이블, 인덱스 또는 스트림에 대한 퍼블릭 액세스를 허용하는 경우 DynamoDB는 정책 내의 사양이 수정되어 퍼블릭이 아닌 것으로 간주될 때까지 정책을 생성하거나 수정하지 못하도록 차단합니다.
Principal
블록 내에 하나 이상의 보안 주체를 지정하여 정책을 퍼블릭이 아닌 상태로 만들 수 있습니다. 다음 리소스 기반 정책 예시는 두 개의 보안 주체를 지정하여 퍼블릭 액세스를 차단합니다.
{ "Effect": "Allow", "Principal": { "AWS": [ "
123456789012
", "111122223333
" ] }, "Action": "dynamodb:*", "Resource": "*" }
특정 조건 키를 지정하여 액세스를 제한하는 정책도 퍼블릭으로 간주되지 않습니다. 리소스 기반 정책에 지정된 보안 주체 평가와 함께 다음과 같은 신뢰할 수 있는 조건 키를 사용하여 퍼블릭이 아닌 액세스에 대한 리소스 기반 정책의 평가를 완료합니다.
-
aws:PrincipalAccount
-
aws:PrincipalArn
-
aws:PrincipalOrgID
-
aws:PrincipalOrgPaths
-
aws:SourceAccount
-
aws:SourceArn
-
aws:SourceVpc
-
aws:SourceVpce
-
aws:UserId
-
aws:PrincipalServiceName
-
aws:PrincipalServiceNamesList
-
aws:PrincipalIsAWSService
-
aws:Ec2InstanceSourceVpc
-
aws:SourceOrgID
-
aws:SourceOrgPaths
또한 리소스 기반 정책을 퍼블릭이 아닌 상태로 설정하려면 Amazon 리소스 이름(ARN) 및 문자열 키의 값에 와일드카드나 변수가 포함되어서는 안 됩니다. 리소스 기반 정책에서 aws:PrincipalIsAWSService
키를 사용하는 경우 키 값을 true로 설정했는지 확인해야 합니다.
다음 정책은 지정된 계정의 John
사용자에 액세스 권한을 제한합니다. 이 조건에 따라 Principal
이 제한되며 퍼블릭으로 간주되지 않습니다.
{ "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": "dynamodb:*", "Resource": "*", "Condition": { "StringEquals": { "aws:PrincipalArn": "arn:aws:iam::123456789012:user/John" } } }
다음은 StringEquals
연산자를 사용하는 퍼블릭이 아닌 리소스 기반 정책 제약 sourceVPC
의 예입니다.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": "dynamodb:*", "Resource": "arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection", "Condition": { "StringEquals": { "aws:SourceVpc": [ "vpc-91237329" ] } } } ] }