교차 서비스 혼동된 대리인 방지
혼동된 대리자 문제는 작업을 수행할 권한이 없는 엔터티가 권한이 더 많은 엔터티에게 작업을 수행하도록 강요할 수 있는 보안 문제입니다. AWS에서는 교차 서비스 가장으로 인해 혼동된 대리자 문제가 발생할 수 있습니다. 교차 서비스 가장은 한 서비스(직접 호출하는 서비스)가 다른 서비스(직접 호출되는 서비스)를 직접 호출할 때 발생할 수 있습니다. 직접 호출하는 서비스는 다른 고객의 리소스에 대해 액세스 권한이 없는 방식으로 작동하게 권한을 사용하도록 조작될 수 있습니다. 이를 방지하기 위해 AWS에서는 계정의 리소스에 대한 액세스 권한이 부여된 서비스 위탁자를 사용하여 모든 서비스에 대한 데이터를 보호하는 데 도움이 되는 도구를 제공합니다.
Amazon Aurora DSQL이 리소스에 다른 서비스를 제공하는 권한을 제한하려면 리소스 정책에서 aws:SourceArn 및 aws:SourceAccount 전역 조건 컨텍스트 키를 사용하는 것이 좋습니다. 하나의 리소스만 교차 서비스 액세스와 연결되도록 허용하려는 경우 aws:SourceArn을(를) 사용합니다. 해당 계정의 모든 리소스가 교차 서비스 사용과 연결되도록 허용하려는 경우 aws:SourceAccount을(를) 사용합니다.
혼동된 대리자 문제로부터 보호하는 가장 효과적인 방법은 리소스의 전체 ARN이 포함된 aws:SourceArn 전역 조건 컨텍스트 키를 사용하는 것입니다. 리소스의 전체 ARN을 모르거나 여러 리소스를 지정하는 경우, ARN의 알 수 없는 부분에 대해 와일드카드 문자(*)를 포함한 aws:SourceArn 글로벌 조건 컨텍스트 키를 사용합니다. 예를 들어 arn:aws:입니다.dsql:*:123456789012:*
만약 aws:SourceArn 값에 Amazon S3 버킷 ARN과 같은 계정 ID가 포함되어 있지 않은 경우, 권한을 제한하려면 두 글로벌 조건 컨텍스트 키를 모두 사용해야 합니다.
aws:SourceArn의 값은 서비스 역할이 대신 수행하는 Aurora DSQL 리소스의 ARN이어야 합니다.
다음 예는 Aurora DSQL에서 aws:SourceArn 및 aws:SourceAccount 전역 조건 컨텍스트 키를 사용하여 혼동된 대리자 문제를 방지하는 방법을 보여줍니다.
CDC 스트림 서비스 역할
변경 데이터 캡처(CDC) 스트림에는 Aurora DSQL이 대상에 CDC 레코드를 쓰기 위해 수임하는 IAM 서비스 역할이 필요합니다. 이 역할을 생성할 때 신뢰 정책의 aws:SourceAccount 및 aws:SourceArn 조건을 사용하여 계정의 CDC 스트림만 역할을 수임할 수 있도록 합니다.
역할을 사용하는 클러스터의 스트림 ARN 패턴으로 aws:SourceArn을 설정합니다. Aurora DSQL은 스트림을 생성할 때 스트림 식별자를 할당하지 않았으므로 ARN의 스트림 부분에 와일드카드를 사용합니다.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "DSQLAssumeRole", "Effect": "Allow", "Principal": { "Service": "dsql.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "your-account-id" }, "ArnLike": { "aws:SourceArn": "arn:aws:dsql:region:your-account-id:cluster/cluster-id/stream/*" } } } ] }
스트림을 생성한 후 역할이 단일 스트림을 제공하는 경우 aws:SourceArn을 정확한 스트림 ARN으로 제한할 수 있습니다. CDC 서비스 역할에 대한 신뢰 정책 및 권한 정책에 대한 전체 설명은 IAM 구성 섹션을 참조하세요.