이제 Cloud Data Loss Prevention(Cloud DLP)은 민감한 정보 보호에 포함됩니다. API 이름은 Cloud Data Loss Prevention API(DLP API)로 그대로 유지됩니다. 민감한 정보 보호를 구성하는 서비스에 대한 자세한 내용은 민감한 정보 보호 개요를 참조하세요.
날짜는 매우 일반적인 데이터 유형입니다. 날짜가 민감한 정보나 개인 식별 정보(PII)로 간주될 수 있는 경우 날짜를 일반화, 난독화 또는 수정해야 할 수 있습니다.
이를 위한 한 가지 방법은 일반화 또는 버케팅입니다.
사용 사례 및 구성에 따라 버케팅을 사용할 경우 날짜의 유용성이 사라질 수 있습니다. 예를 들어 모든 날짜를 1년으로 일반화하면 해당 연도 내에서 이벤트가 발생하는 순서가 사라질 수 있습니다. 이 문제를 해결하면서 날짜를 난독화하는 대안은 날짜 이동입니다.
날짜 이동 기법은 날짜 집합을 무작위로 이동하지만 순서와 기간은 보존합니다. 날짜 이동은 일반적으로 개인 또는 항목 컨텍스트에서 수행됩니다. 즉, 각 개인의 날짜는 해당 개인에게 고유 한 시간만큼 이동합니다.
날짜 이동 예시
다음 데이터를 살펴보세요.
user_id
date
action
1
2009-06-09
run
1
2009-06-03
walk
1
2009-05-23
crawl
2
2010-11-03
crawl
2
2010-11-22
walk
...
...
...
이러한 날짜를 연도로 일반화하면 다음과 같은 이점이 있습니다.
user_id
date_year
action
1
2009
run
1
2009
walk
1
2009
crawl
2
2010
crawl
2
2010
walk
...
...
...
하지만 이제는 사용자당 시퀀스가 사라졌습니다.
대신 날짜 이동을 시도해 보세요.
user_id
date
action
1
2009-07-17
run
1
2009-07-11
walk
1
2009-06-30
crawl
2
2011-01-26
crawl
2
2011-02-14
walk
...
...
...
날짜는 다르지만 순서와 기간은 보존되었음을 볼 수 있습니다.
user_id 1과 2의 날짜 이동 크기는 각기 다릅니다.
[[["이해하기 쉬움","easyToUnderstand","thumb-up"],["문제가 해결됨","solvedMyProblem","thumb-up"],["기타","otherUp","thumb-up"]],[["이해하기 어려움","hardToUnderstand","thumb-down"],["잘못된 정보 또는 샘플 코드","incorrectInformationOrSampleCode","thumb-down"],["필요한 정보/샘플이 없음","missingTheInformationSamplesINeed","thumb-down"],["번역 문제","translationIssue","thumb-down"],["기타","otherDown","thumb-down"]],["최종 업데이트: 2025-09-04(UTC)"],[],[],null,["# Date shifting\n\nDates are a very common type of data. In cases where dates can be considered\nsensitive data or personally identifiable information (PII), you may need to\ngeneralize, obfuscate, or redact them.\n\nOne method for doing this is [generalization, or bucketing](/sensitive-data-protection/docs/concepts-bucketing).\nDepending on the use case and configuration, though, bucketing can remove the\nutility in the dates. For example, if you generalize all dates to just a year,\nthen you could lose the order in which events happen within that year. An\nalternate method for obfuscating dates that addresses this problem is\n*date shifting*.\n\nDate shifting techniques randomly shift a set of dates but preserve the sequence\nand duration of a period of time. Shifting dates is usually done in context to\nan individual or an entity. That is, each individual's dates are shifted by\nan amount of time that is unique to that individual.\n\nDate shifting example\n---------------------\n\nConsider the following data:\n\nIf you generalize these dates to year, then you get:\n\nBut now you've lost any sense of the sequence per user.\n\nInstead try date shifting:\n\nNote how the dates are different but the sequence and duration are preserved.\nThe magnitude that the dates were shifted was different between `user_id`s 1 and\n2.\n\nDate shifting in Sensitive Data Protection\n------------------------------------------\n\nA JSON object to configure this for Sensitive Data Protection's\n[`content.deidentify`](/sensitive-data-protection/docs/reference/rest/v2/projects.content/deidentify)\nmethod follows: \n\n deidentify_config {\n record_transformations {\n field_transformations {\n fields {\n name: \"date\"\n }\n primitive_transformation {\n date_shift_config {\n upper_bound_days: 100\n lower_bound_days: -100\n entity_field_id {\n name: \"user_id\"\n }\n crypto_key {\n unwrapped {\n key: \"123456789012345678901234567890ab\"\n }\n }\n }\n }\n }\n }\n }\n\nThe upper and lower bounds of the shift are specified by the `upper_bound_days`\nand `lower_bound_days` values, respectively. The context or scope that that\nshift will apply to is based on the `entity_id_field` value, which in this case\nis `\"user_id\"`.\n\nNote the use of a `crypto_key` as well. This is similar to how it's\nused in [pseudonymization](/sensitive-data-protection/docs/pseudonymization). The key will allow you\nto keep integrity of these date shifts across multiple requests or data runs.\n| **Warning:** For better security in production environments, use a [`KmsWrappedCryptoKey`](/sensitive-data-protection/docs/reference/rest/v2/organizations.deidentifyTemplates#kmswrappedcryptokey) instead of an unwrapped key as illustrated in this example.\n\nResources\n---------\n\nFor more information about how to de-identify data using date shifting and\nother methods in Sensitive Data Protection, see:\n\n- [De-identifying sensitive data in text content](/sensitive-data-protection/docs/deidentify-sensitive-data#infotype_transformations)\n\nFor API reference information about primitive transformations in\nSensitive Data Protection, see:\n\n- [`DeidentifyConfig`](/sensitive-data-protection/docs/reference/rest/v2/organizations.deidentifyTemplates#DeidentifyTemplate.DeidentifyConfig) object: The object in which you configure de-identification options.\n- [`PrimitiveTransformations`](/sensitive-data-protection/docs/reference/rest/v2/organizations.deidentifyTemplates#primitivetransformation) object: Date shifting is a \"primitive transformation\" in Sensitive Data Protection.\n- [`DateShiftConfig`](/sensitive-data-protection/docs/reference/rest/v2/organizations.deidentifyTemplates#dateshiftconfig) object: Object with which to configure the [`PrimitiveTransformations`](/sensitive-data-protection/docs/reference/rest/v2/organizations.deidentifyTemplates#primitivetransformation) object. By specifying the `DateShiftConfig` object, you can shift dates by a random number of days."]]