DynamoDB에서 리소스 기반 정책을 사용하는 교차 계정 액세스
리소스 기반 정책을 사용하여 서로 다른 AWS 계정에서 사용 가능한 리소스에 대한 크로스 계정 액세스 권한을 제공할 수 있습니다. 리소스 기반 정책에서 허용하는 모든 크로스 계정 액세스는 리소스와 동일한 AWS 리전에 분석기가 있는 경우 IAM Access Analyzer 외부 액세스 조사 결과를 통해 보고됩니다. IAM Access Analyzer는 정책 확인은 실행하여 IAM 정책 문법 및 모범 사례에 대해 정책을 검증합니다. 이러한 확인은 결과를 생성하고 보안 모범 사례를 준수하고 작동하는 정책을 작성하는 데 도움이 되는 실행 가능한 권장 사항을 제공합니다. DynamoDB 콘솔
IAM Access Analyzer를 사용한 정책 검증에 대한 자세한 내용은 IAM 사용 설명서의 IAM Access Analyzer 정책 검증을 참조하세요. IAM Access Analyzer에서 반환된 경고, 오류 및 제안 사항 목록을 보려면 IAM Access Analyzer 정책 확인 참조를 참조하십시오.
계정 A의 사용자 A에게 계정 B의 테이블 B에 액세스할 수 있는 GetItem 권한을 부여하려면 다음 단계를 수행하세요.
-
사용자 A에게
GetItem작업 수행 권한을 부여하는 리소스 기반 정책을 테이블 B에 연결합니다. -
사용자 A에게 테이블 B에 대한
GetItem작업 수행 권한을 부여하는 자격 증명 기반 정책을 연결합니다.
DynamoDB
DynamoDB 데이터 영역 및 컨트롤 플레인 API의 테이블 이름 파라미터는 테이블의 완전한 Amazon 리소스 이름(ARN)을 수락하여 크로스 계정 작업을 지원합니다. 전체 ARN 대신 테이블 이름 파라미터만 제공하는 경우 요청자가 속한 계정의 테이블에서 API 작업이 수행됩니다. 크로스 계정 액세스 권한을 사용하는 정책 예시는 크로스 게정 액세스에 대한 리소스 기반 정책 섹션을 참조하세요.
다른 계정의 보안 주체가 소유자 계정의 DynamoDB 테이블을 읽거나 해당 테이블에 데이터를 쓰는 경우에도 리소스 소유자 계정에 요금이 부과됩니다. 테이블에 프로비저닝된 처리량이 있는 경우 소유자 계정과 다른 계정의 요청자로부터 받은 모든 요청의 합계에 따라 요청의 제한(Auto Scaling이 비활성화된 경우) 또는 스케일 업/다운(Auto Scaling이 활성화된 경우) 여부가 결정됩니다.
요청은 소유자 및 요청자 계정 모두의 CloudTrail 로그에 로깅되므로 두 계정 각각은 어떤 계정이 어떤 데이터에 액세스했는지 추적할 수 있습니다.
교차 계정 AWS Lambda 함수를 사용하여 액세스 공유
계정 A의 Lambda 함수
-
IAM 콘솔
로 이동하여 계정 A에서 AWS Lambda 함수의 Lambda 실행 역할로 사용할 IAM 역할을 생성합니다. 필요한 DynamoDB Streams 및 Lambda 간접 호출 권한이 포함된 관리형 IAM 정책 AWSLambdaDynamoDBExecutionRole을 추가합니다. 또한 이 정책은 계정 A에서 액세스할 수 있는 모든 잠재적 DynamoDB Streams 리소스에 대한 액세스 권한을 부여합니다. -
Lambda 콘솔
에서 DynamoDB 스트림의 레코드를 처리하는 AWS Lambda 함수를 생성하고 실행 역할 설정 중에 이전 단계에서 생성한 역할을 선택합니다. -
Lambda 함수 실행 역할을 DynamoDB Streams의 계정 B 소유자에게 제공하여 교차 계정 읽기 액세스를 위한 리소스 기반 정책을 구성합니다.
-
Lambda 함수 설정을 마칩니다.
계정 B의 DynamoDB 스트림
-
Lambda 함수를 간접적으로 호출할 계정 A의 교차 계정 Lambda 실행 역할을 가져옵니다.
-
계정 B의 Amazon DynamoDB 콘솔에서 Lambda 교차 계정 트리거에 사용할 테이블을 선택합니다. 내보내기 및 스트림 탭에서 DynamoDB 스트림 ARN을 찾습니다. DynamoDB 스트림 상태가 켜짐인지 확인하고 리소스 정책에 필요한 전체 스트림 ARN을 기록해 둡니다.
-
권한 탭에서 스트림 정책 생성 버튼을 클릭하여 시각적 정책 편집기를 시작합니다. 새 문 추가 버튼을 클릭하거나, 정책이 이미 있는 경우 정책을 편집합니다.
-
계정 A의 Lambda 실행 역할을 위탁자로 지정하는 정책을 생성하고 필요한 DynamoDB 스트림 작업을 부여합니다.
dynamodb:DescribeStream,dynamodb:GetRecords,dynamodb:GetShardIterator,dynamodb:ListShards작업도 포함해야 합니다. DynamoDB Streams의 리소스 정책 예에 대한 자세한 내용은 DynamoDB 리소스 기반 정책 예제를 참조하세요.
참고
컨트롤 플레인 API의 크로스 계정 액세스는 초당 트랜잭션 수(TPS) 한도가 500개로 더 낮습니다.