

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 데이터 마스킹을 사용하여 민감한 정보 숨기기
<a name="CHAP_Tasks.CustomizingTasks.TableMapping.SelectionTransformation.Masking"></a>

마이그레이션 중인 테이블의 하나 이상의 열에 저장된 민감한 데이터를 숨기려면 데이터 마스킹 변환 규칙 작업을 활용할 수 있습니다. 버전 3.5.4부터를 AWS DMS 사용하면 테이블 매핑에서 데이터 마스킹 변환 규칙 작업을 사용할 수 있으므로 마이그레이션 프로세스 중에 하나 이상의 열의 내용을 변경할 수 있습니다.는 수정된 데이터를 대상 테이블에 AWS DMS 로드합니다.

AWS Database Migration Service 는 데이터 마스킹 변환 규칙 작업을 위한 세 가지 옵션을 제공합니다.
+ 데이터 마스킹: 숫자 마스킹
+ 데이터 마스킹: 숫자 임의화
+ 데이터 마스킹: 해싱 마스크

이러한 데이터 마스킹 변환 규칙 작업은 다른 변환 규칙과 마찬가지로 복제 작업의 테이블 매핑에서 구성할 수 있습니다. 규칙 대상은 열 수준으로 설정해야 합니다.

## 마스킹 문자를 사용하여 열 데이터의 번호 마스킹
<a name="CHAP_Tasks.CustomizingTasks.TableMapping.SelectionTransformation.Masking.Numbers"></a>

"데이터 마스킹: 숫자 마스킹" 변환 규칙 작업을 사용하면 숫자를 지정한 단일 ASCII 인쇄 가능 문자(빈 문자 또는 공백 문자 제외)로 대체하여 하나 이상의 열에서 숫자 데이터를 마스킹할 수 있습니다.

다음은 `customer_master` 테이블에 있는 `cust_passport_no` 열의 모든 숫자를 `'#'` 마스킹 문자로 마스킹하고 마스킹된 데이터를 대상 테이블에 로드하는 예제입니다.

```
                {
    "rules": [
        {
            "rule-type": "selection",
            "rule-id": "1",
            "rule-name": "1",
            "object-locator": {
                "schema-name": "cust_schema",
                "table-name": "%"
            },
            "rule-action": "include"
        },
        {
            "rule-type": "transformation",
            "rule-id": "2",
            "rule-name": "2",
            "rule-target": "column",
            "object-locator": {
                "schema-name": "cust_schema",
                "table-name": "customer_master",
                "column-name": "cust_passport_no"
            },
            "rule-action": "data-masking-digits-mask",
            "value": "#"
        }
    ]
}
```

예를 들어 소스 테이블의 열`cust_passport_no`에 "C6BGJ566669K" 레코드가 포함된 경우 AWS DMS 작업은이 데이터를 대상 테이블에 로 기록합니다`"C#BGJ######K"`.

## 열의 숫자를 난수로 바꾸기
<a name="CHAP_Tasks.CustomizingTasks.TableMapping.SelectionTransformation.Masking.Random"></a>

변환 규칙 "데이터 마스킹: 숫자 임의화"를 사용하면 하나 이상의 열에 있는 각 숫자 숫자를 난수로 바꿀 수 있습니다. 다음 예제에서는 소스 테이블 `cust_passport_no` 열의 모든 숫자를 난수`customer_master`로 AWS DMS 바꾸고 수정된 데이터를 대상 테이블에 씁니다.

```
            {
    "rules": [
        {
            "rule-type": "selection",
            "rule-id": "1",
            "rule-name": "1",
            "object-locator": {
                "schema-name": "cust_schema",
                "table-name": "%"
            },
            "rule-action": "include"
        },
        {
            "rule-type": "transformation",
            "rule-id": "2",
            "rule-name": "2",
            "rule-target": "column",
            "object-locator": {
                "schema-name": "cust_schema",
                "table-name": "customer_master",
                "column-name": "cust_passport_no"
            },
            "rule-action": "data-masking-digits-randomize"
        }
    ]
}
```

예를 들어 AWS DMS 작업은 소스 테이블의 `cust_passport_no` 열`"C6BGJ566669K"`에 있는 값을 로 변환`"C1BGJ842170K"`하고 대상 데이터베이스에 씁니다.

## 열 데이터를 해시 값으로 바꾸기
<a name="CHAP_Tasks.CustomizingTasks.TableMapping.SelectionTransformation.Masking.Hash"></a>

변환 규칙 "데이터 마스킹: 해싱 마스크"를 사용하면 열 데이터를 `SHA256` 알고리즘을 사용하여 생성된 해시로 바꿀 수 있습니다. 해시 길이는 항상 64자이므로 대상 테이블 열 길이는 최소 64자여야 합니다. 또는 열에 `change-data-type` 변환 규칙 작업을 추가하여 대상 테이블의 열 너비를 늘릴 수 있습니다.

다음 예제에서는 소스 테이블의 `cust_passport_no` 열에 있는 데이터에 대해 64자 길이의 해시 값을 생성하고 열 길이를 늘린 후 변환된 데이터를 대상 테이블에 `customer_master` 로드합니다.

```
{
"rules": [
{
"rule-type": "selection",
"rule-id": "1",
"rule-name": "1",
"object-locator": {
"schema-name": "cust_schema",
"table-name": "%"
},
"rule-action": "include"
},
{
"rule-type": "transformation",
"rule-id": "2",
"rule-name": "2",
"rule-target": "column",
"object-locator": {
"schema-name": "cust_schema",
"table-name": "customer_master",
"column-name": "cust_passport_no"
},
"rule-action": "change-data-type",
"data-type": {
"type": "string",
"length": "100",
"scale": ""
}
},
{
"rule-type": "transformation",
"rule-id": "3",
"rule-name": "3",
"rule-target": "column",
"object-locator": {
"schema-name": "cust_schema",
"table-name": "customer_master",
"column-name": "cust_passport_no"
},
"rule-action": "data-masking-hash-mask"
}
]
}
```

예를 들어 소스 테이블`cust_passport_no`의 열에 값이 포함된 경우 `“C6BGJ566669K”` AWS DMS 작업은 대상 테이블에 해시`“7CB06784764C9030CCC41E25C15339FEB293FFE9B329A72B5FED564E99900C75”`를 씁니다.

## 제한 사항
<a name="CHAP_Tasks.CustomizingTasks.TableMapping.SelectionTransformation.Masking.Limitations"></a>
+ 각 데이터 마스킹 변환 규칙 옵션은 특정 AWS DMS 데이터 유형에 대해서만 지원됩니다.
  + 데이터 마스킹: 데이터 형식의 열인 `WSTRING` 및 `STRING`에 대해 숫자 마스킹이 지원됩니다.
  + 데이터 마스킹: Digits Randomize는 서명되지 않은 `WSTRING, STRING; NUMERIC, INT1, INT2, INT4, and INT8 ` 데이터 형식의 열에 대해 지원됩니다.
  + 데이터 마스킹: 해싱 마스크는 `WSTRING` 및 `STRING` 데이터 유형의 열에 대해 지원됩니다.

  소스 엔진의 AWS DMS 데이터 형식에 데이터 형식을 매핑하는 방법에 대해 자세히 알아보려면 소스 엔진과 데이터 형식의 AWS DMS 데이터 형식 매핑을 참조하세요. [Oracle용 소스 데이터 형식](CHAP_Source.Oracle.md#CHAP_Source.Oracle.DataTypes), [SQL Server용 소스 데이터 형식](CHAP_Source.SQLServer.md#CHAP_Source.SQLServer.DataTypes), [PostgreSQL용 소스 데이터 형식](CHAP_Source.PostgreSQL.md#CHAP_Source-PostgreSQL-DataTypes)및 [MySQL용 소스 데이터 형식](CHAP_Source.MySQL.md#CHAP_Source.MySQL.DataTypes)에 대한 소스 데이터 유형을 참조하세요.
+ 데이터 유형이 호환되지 않는 열에 데이터 마스킹 규칙 작업을 사용하면 DMS 작업에서 오류가 발생합니다. 오류 처리 동작을 지정하려면 DMS 작업 설정의 DataMaskingErrorPolicy를 참조하세요. `DataMaskingErrorPolicy`에 대한 자세한 내용은 [오류 처리 작업 설정](CHAP_Tasks.CustomizingTasks.TaskSettings.ErrorHandling.md) 섹션을 참조하세요.
+ 소스 열 유형이 사용하려는 마스킹 옵션에 대해 지원되지 않는 경우 change-data-type 변환 규칙 작업을 추가하여 열의 데이터 유형을 호환되는 유형으로 변경할 수 있습니다. 데이터 형식이 마스킹 전에 변경되도록 `change-data-type` 변환의 `rule-id`는 마스킹 변환의 규칙 ID보다 작은 숫자여야 합니다.
+ 생성된 해시 값이 고유하고 일관되므로 데이터 마스킹 사용: 프라이머리 키/고유 키/외부 키 열을 마스킹하기 위한 해싱 마스크 작업입니다. 다른 두 마스킹 옵션은 고유성을 보장할 수 없습니다.
+ 데이터 마스킹: 숫자 마스킹 및 데이터 마스킹: 숫자 임의화는 열 데이터의 숫자에만 영향을 미치고 데이터 길이에는 영향을 미치지 않지만, 데이터 마스킹: 해싱 마스크는 전체 열을 수정하고 데이터 길이는 64자로 변경됩니다. 따라서 그에 따라 생성할 대상 테이블 또는 마스킹되는 열에 대해 change-data-type 변환 규칙을 추가해야 합니다.
+ 데이터 마스킹 변환 규칙 작업이 지정된 열은 AWS DMS의 데이터 검증에서 제외됩니다. 프라이머리 키/고유 키 열이 마스킹된 경우 이 테이블에 대한 데이터 검증이 실행되지 않습니다. 이러한 테이블의 검증 상태는 `No Primary key`와 같습니다.