결정적 암호화를 사용하기 위한 고려 사항
다음 고려 사항은 Shield Platform Encryption의 결정적 암호화 스키마로 암호화된 데이터에 적용됩니다. 데이터가 대/소문자를 구별하는 결정적 암호화 스키마 또는 대/소문자를 구별하지 않는 결정적 암호화 스키마 중 데이터가 암호화되는 방식에 따라 몇 가지 고려 사항이 다르게 매니페스트됩니다.
필수 Edition
| Salesforce Classic(일부 조직에서 사용할 수 없음) 및 Lightning Experience 모두에서 사용할 수 있습니다. |
| 지원 제품: Salesforce Shield 또는 Shield Platform Encryption 라이센스가 있는 Enterprise, Performance 및 Unlimited Edition. |
| 무료로 Developer Edition에서 사용할 수 있습니다. |
필터링 가능한 필드를 식별하기 위한 API 옵션
결정적 암호화 스키마를 사용하여 암호화된 필드는 필터링할 수 있습니다. isFilterable() 메서드를 사용하여 암호화된 특정 필드의 암호화 스키마를 결정할 수 있습니다. 필터링 가능한 필드일 경우 메서드는 true를 반환합니다.
그러나 API를 통해 결정적 암호화 스키마를 명시적으로 감지하거나 설정할 수 없습니다.
사용 가능한 필드 및 기타 데이터
결정적 암호화 는 사용자 정의 URL, 이메일, 전화, 텍스트 및 텍스트 영역 필드 유형에 사용할 수 있으며 다음을 포함한 다른 유형의 데이터에는 사용할 수 없습니다.
- 사용자 정의 날짜, 날짜/시간, 긴 텍스트 영역, 서식 있는 텍스트 영역 또는 설명 필드 유형
- Chatter
- 파일 및 첨부 파일
대/소문자 구분
대/소문자를 구별하는 결정적 암호화를 사용하는 경우 대/소문자를 구별해야 합니다. 암호화된 필드의 보고서, 목록 보기 및 SOQL 쿼리의 결과는 대/소문자를 구별합니다. 따라서 LastName이 Jones인 연락처 개체의 SOQL 쿼리는 Jones만 반환하며 jones 또는 JONES는 반환하지 않습니다. 마찬가지로 단일성(고유성)에 대해 대/소문자 구별하는 결정적 스키마를 테스트할 경우 "Jones"의 각 버전이 고유합니다.
채팅
최상의 권장 결과를 위해 발화 제안 개체의 발화 필드를 비롯해 대/소문자 구분 결정적 암호화 스키마를 사용하십시오. 이 필드는 현재 다른 암호화 스키마를 지원하지 않습니다.
대화 항목 개체의 작업자 이름 필드는 대/소문자 구분 결정적 암호화를 지원하지만 대/소문자 무시 결정적 암호화는 지원하지 않습니다.
복합 필드
결정적 암호화를 사용하더라도 데이터가 대/소문자를 구별하는 결정적 암호화로 암호화되어 있으면 일부 유형의 검색이 실행되지 않습니다. 복합 이름 같은 연결된 값은 구분된 값과 다릅니다. 예를 들어 복합 이름 "William Jones"의 암호 텍스트는 "William" 및 "Jones"의 암호 텍스트 연결과 다릅니다.
따라서 이름(성 없이) 및 성(姓) 필드가 연락처 개체에서 암호화된 경우 이 쿼리는 작동하지 않습니다.
Select Id from Contact Where Name = 'William Jones'그러나 이 쿼리는 작동합니다.
Select Id from Contact Where FirstName = 'William’ And LastName ='Jones'
대/소문자 구분 및 대/소문자 무시 결정적 암호화 스키마는 구성 요소 필드를 지원하지만 개별 열 쿼리에서만 가능합니다.
계정 및 연락처 레코드를 개인 계정으로 전환
계정 및 연락처 레코드를 개인 계정으로 전환하면 데이터가 동기화됩니다. 동기화는 대/소문자 무시 필터링을 허용하는 색인을 재설정합니다.
병합 계정 도구를 사용하여 검색할 수 없음
계정 이름 또는 연락처 이름 필드가 확률적 또는 결정적 암호화로 암호화된 경우 병합할 중복 계정 또는 연락처를 검색해도 결과가 반환되지 않습니다.
사용자 정의 필드 할당
대/소문자를 구별하지 않는 쿼리를 지원하기 위해 Salesforce는 데이터의 소문자 중복을 데이터베이스에 사용자 정의 필드로 저장합니다. 이러한 중복은 대/소문자를 구분하지 않는 쿼리에 필요하지만 총 사용자 정의 필드 수에 포함됩니다. 예를 들어, 조직에 200개의 사용자 정의 필드가 있고 대/소문자를 구별하지 않는 결정적 암호화로 암호화하도록 선택하는 경우 사용자 정의 필드 합계는 201개입니다.
외부 ID
대/소문자를 구별하지 않는 결정적 암호화는 텍스트 및 이메일 외부 ID 사용자 정의 필드를 지원하지만 다른 외부 ID 사용자 정의 필드는 지원하지 않습니다. 이러한 필드를 만들거나 편집할 경우 다음과 같은 필드 설정 조합 중 하나를 사용하십시오.
| 외부 ID 필드 유형 | 고유한 특성 | 암호화됨 |
|---|---|---|
| 텍스트 | 없음 | 대/소문자를 구별하지 않는 결정적 암호화를 사용합니다. |
| 텍스트 | 고유하면서 대/소문자 구별 | 대/소문자를 구별하는 결정적 암호화를 사용합니다. |
| 텍스트 | 고유하면서 대/소문자를 구별하지 않음 | 대/소문자를 구별하지 않는 결정적 암호화를 사용합니다. |
| 이메일 | 없음 | 대/소문자를 구별하지 않는 결정적 암호화를 사용합니다. |
| 이메일 | 고유함 | 대/소문자를 구별하는 결정적 암호화를 사용합니다. |
고유 - 대/소문자 구분 및 암호화됨 옵션에 대한 변경 사항을 동시에 저장할 수 없습니다. 한 설정을 변경하고 저장한 다음, 다음 설정을 변경합니다.
필터 연산자
보고서 및 목록 보기에서 대/소문자를 구별하는 결정적 암호화를 사용해 "같음" 및 "같지 않음" 연산자가 지원됩니다. "포함" 또는 "다음으로 시작" 같은 다른 연산자는 정확하게 일치하는 항목을 반환하지 않으며 지원되지 않습니다. 상세 검색 기준 필터 등 지원되지 않는 연산자에 의존하는 기능도 지원되지 않습니다.
대/소문자를 구별하지 않는 결정적 스키마는 목록 보기 및 보고서를 지원합니다. 그러나 사용자 인터페이스에는 암호화된 데이터를 지원하지 않는 연산자를 포함하여 모든 연산자가 표시됩니다. Salesforce Classic에서 지원되는 연산자 목록을 검토하려면 수식에서 암호화된 데이터 사용을 참조하십시오.
문자열로 레코드 필터링
문자열을 사용하여 레코드를 검색할 수 있습니다. 그러나 문자열의 콤마는 OR 문으로 작동합니다. 문자열에 콤마가 있을 경우 문자열 앞뒤로 따옴표를 사용하십시오. 예를 들어, "Universal Containers, Inc, Berlin"을 검색하면 콤마를 포함해 전체 문자열을 포함하는 레코드가 반환됩니다. Universal Containers, Inc, Berlin 검색은 "Universal Containers" 또는 "Inc" 또는 "Berlin"를 포함하는 레코드를 반환합니다.
수식
확률적 암호화 스키마로 암호화된 필드는 SOQL WHERE 쿼리에서 참조할 수 없습니다. 그러나 결정적 암호화 스키마로 암호화된 비 수식 필드가 있는 SOQL WHERE 쿼리를 사용할 수 있습니다. 이름은 비 수식 필드의 예입니다.
색인
암호화 스키마에 색인에 사용되는 암호화 필드가 포함되어 있는 경우 해당 필드에 결정적 암호화를 사용해야 합니다.
색인에 속하거나 고유성 요구 사항이 있는 필드를 암호화하도록 선택하면 상당한 영향을 미칩니다. 문제를 이해하려면 이 섹션을 주의 깊게 읽으십시오.
대/소문자를 구별하는 결정적 암호화와 대/소문자를 구별하지 않는 결정적 암호화가 모두 지원됩니다.
- 대/소문자를 구별하는 결정적 암호화는 표준 및 사용자 정의 필드에서 단일 열 지수, 단일 열 대/소문자 구분 고유 색인, 2열 색인 및 사용자 정의 색인을 지원합니다.
- 대/소문자를 구별하는 결정적 암호화는 다음 표준 필드의 표준 색인을 제한적으로 지원합니다.
- 연락처-이메일
- 이메일 메시지-관계
- 리드-이메일
- 이름
색인 필드를 암호화하기 전에 다음 성능 고려 사항에 유의하십시오.
- 쿼리 성능이 좋지 않음: 대/소문자를 구별하지 않는 결정적 암호화로 암호화된 필드에 대한 쿼리는 큰 테이블에서 잘못 수행될 수 있습니다. 최적의 쿼리 성능을 위해 표준 색인 대신 사용자 정의 색인을 사용하십시오. 사용자 정의 색인을 설정하려면 Salesforce 고객 지원에 문의하시기 바랍니다.
- 조회 필드 필터링: 이름 필드를 참조하는 조회 필드도 색인에 의존합니다. 목록 보기 및 보고서에서 이름 필드를 필터링하려면 조회 필드 대신 표준 이름 필드를 필터링합니다.
- 긴 활성화 프로세스: 레코드 수가 많은 필드에 결정적 암호화를 적용하는 경우 활성화 프로세스에 더 오랜 시간이 소요됩니다. 활성화 프로세스에서 필드 색인도 다시 구축됩니다.
색인 필드를 암호화하기로 선택한 경우 다음 모범 사례를 사용하십시오.
- 일관된 암호화 보장: 고유성 요구 사항이 있는 색인화된 필드 또는 필드에 결정적 암호화를 사용할 경우 모든 값이 동일한 결정적 키로 암호화되어 있는지 확인하십시오. 이렇게 하면 레코드 전체에서 중복 항목을 신뢰할 수 있게 식별할 수 있습니다.
- 암호화 동기화 수행: 암호화 스키마 변경 또는 결정적 암호화 테넌트 암호 순환과 같이 색인 고유성에 영향을 미칠 수 있는 변경 사항을 수행한 직후 암호화 동기화를 수행하는 것이 좋습니다.
- 가동 중지 시간 계획: 가장 적은 시간에 이러한 변경 사항을 계획하여 중단을 최소화합니다. 암호화 동기화는 배치로 실행되며 엔티티의 구조, 레코드 용량 및 관련 필드에 따라 다양한 시간이 소요될 수 있습니다. 지원 팀과 협력하여 필요한 가동 중지 시간을 계획합니다.
키 순환 및 필터 가용성
결정적 암호화 스키마를 추가, 제거 또는 변경하면 색인이 다시 구축됩니다. 암호화된 필드의 사용자 활동으로 인해 인덱스의 데이터가 중복되어 동기화 작업을 방해할 수 있습니다. 결정적 키 자료를 순환하거나 필드의 암호화 스키마를 대/소문자를 구분하는 결정적 암호화 또는 대/소문자를 구분하지 않는 결정적 암호화로 변경한 후 가능한 한 빨리 데이터를 활성 키에 동기화합니다. 동기화하면 활성 키 자료가 기존 및 새 데이터에 적용됩니다. 데이터를 동기화하지 않으면 고유한 특성을 가진 필드의 필터링 및 쿼리가 정확한 결과를 반환하지 않습니다.
설정의 암호화 통계 및 데이터 동기화 페이지에서 표준 및 사용자 정의 필드의 데이터를 직접 동기화할 수 있습니다. 기타 모든 데이터 또는 대용량 데이터를 동기화하려면 Salesforce 고객 지원에 문의하십시오. 데이터 동기화에 대한 자세한 내용은 데이터 암호화와 백그라운드 암호화 서비스 동기화를 참조하십시오.
Next Best Action 권장 사항
결정적 암호화를 사용하면 같거나 같지 않은 연산자만 포함한 로드 조건에서 암호화된 필드를 사용할 수 있습니다.
필드에서 결정적 암호화 제거
결정적 암호화로 암호화된 필드에서 암호화를 제거하는 경우 Shield Platform Encryption 조직 전체에서 해당 필드를 해독하는 데 다소 시간이 소요됩니다. 조직의 크기에 따라 이 프로세스에 소요되는 시간이 결정되므로 업데이트가 완료될 때까지 필드에 암호화되지 않은 필드의 필터링 및 정렬 특성이 적용되지 않습니다.
SOQL GROUP BY 문
SOQL/SOSL 참조 페이지 비교 연산자의 규칙에 따라 어디서 조항을 조합합니다.
결정적 암호화는 GROUP BY 절을 지원하지 않습니다. 결정적 필드를 사용하여 GROUP BY를 지정하는 경우 그룹화가 정확하지 않거나 일관되지 않습니다.
SOQL LIKE 및 STARTS WITH 문
결정적 암호화는 대/소문자를 구분하는 정확한 일치 항목만 지원합니다. 부분 일치를 반환하는 비교 연산자는 지원되지 않습니다. 예를 들어, LIKE 및 STARTS WITH 문은 지원되지 않습니다.
SOQL ORDER BY 문
결정적 암호화는 데이터베이스에 암호화된 데이터의 정렬 순서를 유지하지 않으므로 ORDER BY는 지원되지 않습니다.

