제퍼넷 로고

AWS Secrets Manager로 데이터베이스 자격 증명을 보호하고 Amazon QuickSight에서 AWS KMS로 데이터를 암호화하십시오.

시간

아마존 퀵 사이트 QuickSight 애플리케이션 내에서 직접 또는 웹 앱에 내장되어 데이터에 쉽게 연결하고, 대화형 대시보드를 만들고, 수만 명의 사용자와 공유할 수 있게 해주는 완전 관리형 클라우드 네이티브 비즈니스 인텔리전스(BI) 서비스입니다. 그리고 포털.

전국에 의료 시설을 소유하고 있는 AnyCompany를 생각해 봅시다. AnyCompany의 중앙 IT 팀은 각 주의 모든 시설에 대한 IT 인프라 및 서비스를 설정하고 유지 관리하는 일을 담당합니다. AnyCompany는 의료 산업에 종사하고 민감한 데이터를 보유하고 있기 때문에 데이터베이스 자격 증명을 안전하게 저장하고 보고 또는 BI 팀의 개인과 공유하기를 원하지 않습니다. 또한 규정 요구 사항을 충족하기 위해 서비스 관리 키 대신 자체 암호화 키를 사용하여 미사용 데이터를 암호화해야 합니다. AnyCompany는 SPICE(QuickSight 강력한 인메모리 계산 엔진) 데이터 세트의 액세스를 감사할 수 있습니다. 혹시 모를 보안 사고의 경우, AnyCompany는 데이터에 대한 액세스를 보편적으로 취소하여 데이터에 대한 액세스를 즉시 잠글 수 있는 모든 권한을 가집니다. AWS 키 관리 서비스 (AWS KMS) 키. QuickSight는 AnyCompany에서 사용하는 서비스 중 하나이며 중앙 IT에서 이러한 보안 조치를 설정할 수 있어야 합니다.

QuickSight Enterprise Edition은 이제 데이터베이스 자격 증명 저장을 지원합니다. AWS 비밀 관리자, 이러한 자격 증명을 Secrets Manager에 저장하고 데이터 소스 생성을 위해 모든 BI 사용자와 공유하지 않도록 하는 기능입니다. Secrets Manager는 데이터베이스 자격 증명, API 키 및 기타 비밀 정보를 보호하는 데 사용할 수 있는 비밀 스토리지 서비스입니다. 키를 사용하면 암호가 코드에 저장되지 않기 때문에 코드를 검사하는 사람이 암호를 손상시킬 수 없도록 하는 데 도움이 됩니다.

또한 QuickSight는 AWS KMS와의 통합을 통해 계정 관리자가 자체 고객 관리형 키(CMK)를 사용하여 SPICE의 데이터 세트를 암호화하고 관리할 수 있도록 지원합니다. AWS KMS를 사용하면 애플리케이션과 100개 이상의 AWS 서비스에서 암호화 키를 생성, 관리 및 제어할 수 있습니다. AWS KMS를 사용하면 AWS 워크로드 전체에서 데이터를 암호화하고, 데이터를 디지털 서명하고, AWS 암호화 SDK를 사용하여 애플리케이션 내에서 암호화하고, 메시지 인증 코드(MAC)를 생성 및 확인할 수 있습니다. QuickSight SPICE CMK를 사용하면 QuickSight 사용자는 클릭 한 번으로 SPICE 데이터 세트에 대한 액세스 권한을 취소하고 SPICE 데이터 세트 액세스 방식을 추적하는 감사 가능한 로그를 유지할 수 있습니다.

두 기능 모두 보안 및 투명성 수준을 높이고 QuickSight에 대한 제어 기능을 강화하며 회사 및 정부 기관 정책의 보안 요구 사항을 충족하는 데 도움이 됩니다.

이 게시물에서는 이러한 기능을 사용하는 단계를 안내합니다.

솔루션 개요

두 기능(Secrets Manager에 데이터베이스 자격 증명 저장 및 암호화에 KMS 키 사용)을 활성화하려면 QuickSight 계정의 관리자가 필요합니다. 다음 섹션에서는 이 솔루션을 구현하기 위한 개략적인 단계를 안내합니다.

  1. QuickSight 관리 콘솔에서 Secrets Manager 통합을 활성화합니다.
  2. QuickSight API를 사용하여 비밀 자격 증명으로 데이터 원본을 생성하거나 업데이트합니다.
  3. 생성한 데이터 소스를 사용하여 데이터 세트를 생성합니다.
  4. QuickSight 관리 콘솔에서 KMS 키를 활성화합니다.
  5. CMK 사용 및 데이터 세트 액세스 감사 AWS 클라우드 트레일.
  6. CMK 암호화 데이터 세트에 대한 액세스 권한을 취소합니다.

사전 조건

다음 전제 조건이 있는지 확인하십시오.

  • Enterprise Edition의 QuickSight 구독
  • 데이터베이스 자격 증명이 있는 Secrets Manager의 암호
  • SPICE에서 데이터를 암호화하기 위한 KMS 키

Secrets Manager 통합 활성화

이 통합을 사용하면 더 이상 데이터 소스 자격 증명을 수동으로 입력할 필요가 없습니다. Secrets Manager에 저장하고 Secrets Manager를 통해 액세스를 관리할 수 있습니다. 모든 데이터 원본을 업데이트하는 대신 키와 자격 증명을 한 곳에서 회전할 수도 있습니다. 통합을 활성화하려면 다음 단계를 완료하십시오.

  1. QuickSight 계정에 로그인합니다.
  2. 사용자 이름 드롭다운 메뉴에서 다음을 선택합니다. QuickSight 관리.
    Quicksight 관리
  3. 왼쪽 메뉴에서 보안 및 권한 탐색 창에서
  4. $XNUMX Million 미만 AWS 서비스에 대한 QuickSight 액세스선택한다. 관리.
    보안 및 권한
  5. 서비스 목록에서 선택 비밀 선택 아래에 AWS 비밀 관리자.
    AWS 서비스에 대한 QuickSight 액세스
  6. 비밀 목록에서 적절한 비밀을 선택하고 다음을 선택합니다. 마감재 .
    마감재

QuickSight는 AWS 자격 증명 및 액세스 관리 (IAM) 역할 called aws-quicksight-secretsmanager-role-v0 귀하의 계정에서. 계정의 사용자에게 지정된 비밀에 대한 읽기 전용 액세스 권한을 부여하며 다음 코드와 유사합니다.

ID 및 액세스 관리

QuickSight API를 사용하여 비밀 자격 증명으로 데이터 소스 생성

이 글을 쓰는 시점에서 Secrets Manager에 저장된 암호를 사용하여 데이터 원본을 생성하는 것은 다음을 통해서만 가능합니다. 데이터소스 생성 공개 API.

다음 코드는 QuickSight에서 데이터 소스를 생성하기 위한 예제 API 호출입니다. 이 예에서는 create-data-source API 작업. 당신은 또한 사용할 수 있습니다 update-data-source 기존 데이터 소스를 업데이트하는 작업입니다. 자세한 내용은 다음을 참조하십시오. 데이터 소스 생성업데이트데이터 소스.

aws quicksight create-data-source --aws-account-id AWSACCOUNTID --data-source-id DATASOURCEID --name NAME --type MYSQL --permissions '[{"Principal": "arn:aws:quicksight:region:accountID:user/namespace/username", "Actions": ["quicksight:DeleteDataSource", "quicksight:DescribeDataSource", "quicksight:DescribeDataSourcePermissions", "quicksight:PassDataSource", "quicksight:UpdateDataSource", "quicksight:UpdateDataSourcePermissions"]}]' --data-source-parameters='{"MySQLParameters":{"Database": "database", "Host":"hostURL", "Port":"port"}}' --credentials='{"SecretArn":"arn:aws:secretsmanager:region:accountID:secret:secretname"}' --region us-west-2

이전 호출에서 QuickSight는 secretsmanager:GetSecretValue IAM 서비스 역할의 정책이 아닌 API 호출자의 IAM 정책을 기반으로 비밀에 대한 액세스. IAM 서비스 역할은 계정 수준에서 작동하며 사용자가 분석 또는 대시보드를 볼 때 사용됩니다. 사용자가 데이터 원본을 만들거나 업데이트할 때 비밀 액세스 권한을 부여하는 데 사용할 수 없습니다.

다음과 같은 응답을받습니다.

{ "Arn": "string", "CreationStatus": "string", "DataSourceId": "string", "RequestId": "string"
}

초기 응답에서 생성 상태는 CREATION_IN_PROGRESS. 데이터 소스가 성공적으로 생성되었는지 확인하려면 DescribeDatasource 데이터 소스에 대한 설명을 수신하기 위한 API:

aws quicksight describe-data-source --aws-account-id AWSACCOUNTID --data-source-id DATASOURCEID

성공적인 API 호출은 상태 및 데이터 소스 세부 정보를 포함하는 데이터 소스 개체를 반환합니다.

{ "Status": integer, "DataSource":{ "Arn": "string", "DataSourceId": "string", "Name": "string" "Type": "string" "Status": "string" "CreatedTime": "string" "LastUpdatedTime": "string" "DataSourceParameters": { } "VpcConnectionProperties": { "VpcConnectionArn":"string" } "SslProperties": { "DisableSsl": boolean }, "SecretArn": "string"
} "RequestId": "string"
}

새 데이터 원본을 사용하여 데이터 세트 만들기

방금 생성한 데이터 소스를 사용하여 새 SPICE 데이터 세트를 생성하는 방법은 다음을 참조하십시오. 기존 데이터 소스를 사용하여 데이터 세트 만들기.

KMS 키 활성화

KMS 키를 활성화하려면 다음 단계를 완료하십시오.

  1. QuickSight 시작 페이지에서 다음을 선택합니다. QuickSight 관리.
    QuickSight 관리
  2. 왼쪽 메뉴에서 KMS 키 탐색 창에서
  3. 왼쪽 메뉴에서 관리.
    관리
  4. KMS 키 페이지에서 선택 키 선택.
    키 선택
  5. . 키 선택 팝업 상자, 메뉴에서 추가할 키를 선택합니다.
    키 메뉴

키가 목록에 없으면 키의 ARN을 수동으로 입력할 수 있습니다.

  1. 왼쪽 메뉴에서 이 QuickSight 계정의 모든 새 SPICE 데이터 세트에 대한 기본 암호화 키로 사용 선택한 키를 기본 키로 설정합니다.

상태를 나타내기 위해 기본 키 옆에 파란색 배지가 나타납니다.

기본 키를 선택하면 QuickSight 계정을 호스팅하는 리전에서 생성된 모든 새 SPICE 데이터 세트가 기본 키로 암호화됩니다.

기본 키

  1. 필요에 따라 이전 단계를 반복하여 더 많은 키를 추가합니다.

원하는 만큼 키를 추가할 수 있지만 기본 키는 한 번에 하나만 가질 수 있습니다.

  1. 선택적으로 모든 새 SPICE 데이터 세트의 기본 키를 변경하거나 삭제하여 CMK를 변경하거나 제거합니다.

기존 데이터 세트의 경우 기본 키를 변경하거나 삭제한 후 전체 새로 고침을 수행해야 적용됩니다.

CloudTrail에서 CMK 사용 및 데이터 세트 액세스 감사

키가 사용되면(예: CMK로 암호화된 SPICE 데이터 세트에 액세스할 때) CloudTrail에 감사 로그가 생성됩니다. 로그를 사용하여 키 사용을 추적할 수 있습니다. 자세한 내용은 다음을 참조하십시오. AWS CloudTrail을 사용한 로깅 작업. SPICE 데이터 세트가 암호화된 키를 알아야 하는 경우 CloudTrail에서 이 정보를 찾을 수 있습니다. 다음 단계를 완료하십시오.

  1. CloudTrail 콘솔에서 CloudTrail 로그로 이동합니다.
  2. 다음 검색 인수를 사용하여 CMK 사용량(CMK 암호화 SPICE 데이터 세트 액세스)을 찾습니다.
    1. 이벤트 이름(eventName)이다 GenerateDataKey 또는 암호 해독.
    2. eventTime은 CMK가 사용되는 시기를 나타냅니다(CMK로 암호화된 SPICE 데이터 세트에 액세스).
    3. 요청 매개변수(requestParameters) 데이터 세트에 대한 QuickSight ARN을 포함합니다.
    4. 요청 매개변수(requestParameters)에는 KMS ARN(keyId) CMK의.

다음 코드를 참조하십시오.

{ "eventVersion": "1.08", "userIdentity": { "type": "AWSService", "invokedBy": "quicksight.amazonaws.com" }, "eventTime": "2022-10-26T00:06:06Z", "eventSource": "kms.amazonaws.com", "eventName": "Decrypt", "awsRegion": "us-west-2", "sourceIPAddress": "quicksight.amazonaws.com", "userAgent": "quicksight.amazonaws.com", "requestParameters": { "constraints": { "encryptionContextSubset": { "aws:quicksight:arn": "arn:aws:quicksight:us-west-2:111122223333:dataset/12345678-1234-1234-1234-123456789012" } }, "keyId": "arn:aws:kms:us-west-2:111122223333:key/87654321-4321-4321-4321-210987654321", "encryptionAlgorithm": "SYMMETRIC_DEFAULT" },
....
}

이제 SPICE 데이터 세트에서 현재 사용 중인 CMK를 확인할 수 있습니다.

  1. CloudTrail 로그에서 다음 검색 인수를 사용하여 SPICE 데이터 세트에 대한 가장 최근 부여 이벤트를 찾습니다.
    1. 이벤트 이름(eventName) 그랜트를 포함합니다.
    2. 요청 매개변수(requestParameters) 데이터 세트에 대한 QuickSight ARN을 포함합니다.

다음 코드를 참조하십시오.

{ "eventVersion": "1.08", "userIdentity": { "type": "AWSService", "invokedBy": "quicksight.amazonaws.com" }, "eventTime": "2022-10-26T00:11:08Z", "eventSource": "kms.amazonaws.com", "eventName": "CreateGrant", "awsRegion": "us-west-2", "sourceIPAddress": "quicksight.amazonaws.com", "userAgent": "quicksight.amazonaws.com", "requestParameters": { "constraints": { "encryptionContextSubset": { "aws:quicksight:arn": "arn:aws:quicksight:us-west-2:111122223333:dataset/12345678-1234-1234-1234-123456789012" } }, "retiringPrincipal": "quicksight.amazonaws.com", "keyId": "arn:aws:kms:us-west-2:111122223333:key/87654321-4321-4321-4321-210987654321", "granteePrincipal": "quicksight.amazonaws.com", "operations": [ "Encrypt", "Decrypt", "DescribeKey", "GenerateDataKey" ] },
....
}

이벤트 유형에 따라 다음 중 하나가 적용됩니다.

  • 부여 생성 – 키 ID에서 가장 최근에 사용한 CMK를 찾을 수 있습니다(keyID) SPICE 데이터 세트에 대한 마지막 CreateGrant 이벤트
  • 은퇴 보조금 – SPICE 데이터셋의 최신 CloudTrail 이벤트가 RetireGrant, 키 ID가 없고 SPICE 데이터 세트가 더 이상 CMK 암호화되지 않음

CMK 암호화 데이터 세트에 대한 액세스 권한 취소

CMK로 암호화된 SPICE 데이터 세트에 대한 액세스 권한을 취소할 수 있습니다. 데이터세트를 암호화하는 데 사용되는 키에 대한 액세스를 취소하면 취소를 취소할 때까지 데이터세트에 대한 액세스가 거부됩니다. 다음 방법은 액세스 권한을 취소할 수 있는 방법의 한 예입니다.

  1. AWS KMS 콘솔에서 다음을 선택합니다. 고객 관리 키 탐색 창에서
  2. 끄려는 키를 선택합니다.
  3. 주요 조치 메뉴, 선택 사용 안 함.

어떤 방법을 사용하여 액세스 권한을 취소한 후 SPICE 데이터 세트에 액세스할 수 없게 되는 데 최대 15분이 걸릴 수 있습니다.

샘플 구현

다음 코드는 샘플을 보여줍니다. CreateDatasource QuickSight 데이터 소스 생성을 위한 API 호출:

aws quicksight create-data-source --aws-account-id <AccountID> --data-source-id hospitaldataASM --name hospipataldataASM --type POSTGRESQL --credentials={"SecretArn":"arn:aws:secretsmanager:us-east-1:<AccountiD>:secret:<SecretID>"} --data-source-parameters={"PostgreSqlParameters":{"Database":"postgres","Host":"xxxx.xxxxxx.us-east-1.rds.amazonaws.com","Port":5432}} --vpc-connection-properties={"VpcConnectionArn":"arn:aws:quicksight:us-east-1:<AccountID>:vpcConnection/<vpcConnectionName>"} --permissions="Principal=arn:aws:quicksight:us-east-1:380249061054:user/default/<username>,Actions=quicksight:DescribeDataSource,quicksight:DescribeDataSourcePermissions,quicksight:PassDataSource,quicksight:UpdateDataSourcePermissions,quicksight:DeleteDataSource,quicksight:UpdateDataSource"

다음과 같은 응답을받습니다.

응답

새 데이터 소스의 상태를 모니터링하려면 다음을 실행하십시오. DescribeDataSource API :

aws quicksight describe-data-source --aws-account-id <AccountId> --data-source-id hospitaldataASM

aws Quicksight describe-data-source –aws-account-id –data-source-id hospitaldataASM

다음과 같은 응답을받습니다.

응답 2

사용된 KMS 키를 검증하려면 다음 코드와 같이 CloudTrail 로그로 이동합니다.

클라우드 트레일 로그

마지막으로 CloudTrail 로그를 통해 CMK 사용(데이터 세트 액세스)을 감사합니다. 또한 보안 사고가 발생할 경우 KMS 키에 대한 액세스를 취소하여 데이터에 대한 액세스를 전체적으로 잠글 수 있습니다.

정리

다음 단계에 따라 이 게시물의 일부로 생성된 리소스를 정리합니다.

  1. Secrets Manager 통합을 제거하려면 일반 서비스 수준 자격 증명으로 데이터 원본을 업데이트합니다.
  2. QuickSight 관리 콘솔에서 암호를 제거합니다.
  3. QuickSight 시작 페이지에서 다음을 선택합니다. QuickSight 관리.
  4. 왼쪽 메뉴에서 KMS 키 탐색 창에서
  5. 왼쪽 메뉴에서 관리.
  6. 선택 행위 기본 키 행의 메뉴(점 XNUMX개)를 선택한 다음 ..
  7. 표시되는 팝업 상자에서 다음을 선택합니다. 제거.

결론

이 게시물에서는 Secrets Manager 및 AWS KMS와의 통합을 통해 데이터베이스 자격 증명을 보호하기 위해 QuickSight에서 출시된 새로운 기능을 소개했습니다. 또한 QuickSight SPICE에서 유휴 데이터 암호화를 활성화하고, CloudTrail을 사용하여 키 사용 기록을 추적하고, KMS 키에 대한 액세스를 취소하여 데이터에 대한 액세스를 잠그도록 고객 관리형 키를 설정하는 방법을 시연했습니다.

Secrets Manager 및 AWS KMS 통합에 대한 QuickSight 지원을 사용해 QuickSight로 자격 증명과 데이터를 보호하고 피드백과 질문을 의견으로 공유하십시오. 자세한 내용은 다음을 참조하십시오. 핵심 관리Amazon QuickSight에서 데이터베이스 자격 증명 대신 AWS Secrets Manager 암호 사용.


저자 소개

스리칸트 바헤티 Amazon QuickSight의 전문 World Wide Sr. 솔루션 설계자입니다. 그는 컨설턴트로 경력을 시작했으며 여러 민간 및 정부 기관에서 근무했습니다. 나중에 그는 PerkinElmer Health and Sciences & eResearch Technology Inc에서 근무하면서 트래픽이 많은 웹 애플리케이션, AWS 서비스 및 서버리스 컴퓨팅을 사용하는 보고 플랫폼을 위한 확장성과 유지 관리가 용이한 데이터 파이프라인을 설계 및 개발하는 일을 담당했습니다.

라지 시바수브라마니암 분석에 중점을 둔 AWS의 수석 솔루션 설계자입니다. Raji는 전 세계 Fortune 500대 기업 및 Fortune 100대 기업을 위한 종단 간 엔터프라이즈 데이터 관리, 비즈니스 인텔리전스 및 분석 솔루션 설계를 전문으로 합니다. 그녀는 관리 시장, 의사 타겟팅 및 환자 분석을 비롯한 다양한 의료 데이터 세트를 통해 통합 의료 데이터 및 분석에 대한 심층적인 경험을 보유하고 있습니다.

spot_img

최신 인텔리전스

spot_img