From 906a8464ff9382cc0876e3fe374d3654a04ca4ab Mon Sep 17 00:00:00 2001 From: Robert Castley Date: Thu, 30 Jan 2025 15:37:19 +0000 Subject: [PATCH] Manual merge due to GitHub outage --- .../80-sensitive-data/_index.md | 250 ++++++++++++------ .../images/otelbin-f-6-1-trace.png | Bin 0 -> 67076 bytes .../agent-5.yaml | 10 +- 3 files changed, 170 insertions(+), 90 deletions(-) create mode 100644 content/en/ninja-workshops/10-advanced-otel/images/otelbin-f-6-1-trace.png diff --git a/content/en/ninja-workshops/10-advanced-otel/80-sensitive-data/_index.md b/content/en/ninja-workshops/10-advanced-otel/80-sensitive-data/_index.md index fe2948157..84a5795e2 100644 --- a/content/en/ninja-workshops/10-advanced-otel/80-sensitive-data/_index.md +++ b/content/en/ninja-workshops/10-advanced-otel/80-sensitive-data/_index.md @@ -1,8 +1,8 @@ --- title: Removing Tags and Redacting Sensitive Data in OpenTelemetry Collector -linkTitle: 8. Sensitive Data +linkTitle: 6. Sensitive Data time: 10 minutes -weight: 8 +weight: 6 --- In this section, you'll learn how to configure the OpenTelemetry Collector to remove specific tags and redact sensitive data from your telemetry (traces). This is essential when dealing with sensitive information such as credit card numbers, personal data, or other security-related information that needs to be protected or anonymized. @@ -22,101 +22,185 @@ Batch Processor: We'll use it to control how traces are batched and exported. Memory Limiter: Ensures that the collector does not consume too much memory. Redaction Processor: A dedicated processor for redacting sensitive data, including credit card numbers and account details. -### Step 1: Review the YAML Configuration +### Step 1: Initial Setup -Let's look at the YAML configuration for this workshop. This file contains various processors and how they are configured to remove and redact sensitive data. +On your machine, navigate to the directory where you're running the workshop. Create a new subdirectory called `6-remove-sensitive-data`, then copy the latest versions of `agent.yaml` and `trace.json` from `1-agent` into this new directory. -```yaml -processors: - # Batch processor to control batch size and metadata keys - batch: - metadata_keys: - - X-SF-Token - - # Memory Limiter processor to prevent excessive memory usage - memory_limiter: - check_interval: 2s - limit_mib: 512 - - # Resource detection processor to detect system resource attributes - resourcedetection: - detectors: [system] - override: true - - # Resource processor to add a new mode attribute - resource/add_mode: - attributes: - - action: insert - value: "agent" - key: otelcol.service.mode - - # Attributes processor to remove specific tags (attributes) from traces - attributes/removetags: - actions: - - key: SPAN_TAG_KEY - action: delete - - # Attributes processor to update or redact sensitive data - attributes/update: - actions: - - key: cc_number - value: redacted - action: update # Redacts credit card numbers with the word 'redacted' - - key: account_password - action: delete # Deletes account password attribute - - key: account_email - action: hash # Hashes the account email for privacy - - # Redaction processor to apply custom redaction rules - redaction/update: - allow_all_keys: false # Block non-allowed keys - allowed_keys: - - description - - group - - id - - name - ignored_keys: - - safe_attribute # Safe attributes that won’t be redacted - blocked_values: - - "4[0-9]{12}(?:[0-9]{3})?" # Regular expression for Visa credit card numbers - - "(5[1-5][0-9]{14})" # Regular expression for MasterCard numbers - summary: debug # Diagnostic summary of redacted attributes +Next, move into the `[WORKSHOP]/6-remove-sensitive-data` directory. + +```text +WORKSHOP +├── 1-agent +├── 2-gateway +├── 3-filelog +├── 4-resilience +├── 5-dropping-spans +├── 6-remove-sensitive-data +│ ├── agent.yaml +│ └── trace.json +└── otelcol +``` + +#### 1.2 Setup and Review Simulated Trace Data + +For this section, you'll need to generate some trace data that includes sensitive data. + +Copy the following JSON and save to the file named `trace.json` in the `6-remove-sensitive-data` directory: + +{{% tabs %}} +{{% tab title="Compacted JSON" %}} + +```json +{"resourceSpans":[{"resource":{"attributes":[{"key":"service.name","value":{"stringValue":"my.service"}},{"key":"deployment.environment","value":{"stringValue":"my.environment"}}]},"scopeSpans":[{"scope":{"name":"my.library","version":"1.0.0","attributes":[{"key":"my.scope.attribute","value":{"stringValue":"some scope attribute"}}]},"spans":[{"traceId":"5B8EFFF798038103D269B633813FC60C","spanId":"EEE19B7EC3C1B174","parentSpanId":"EEE19B7EC3C1B173","name":"I'm a server span","startTimeUnixNano":"1544712660000000000","endTimeUnixNano":"1544712661000000000","kind":2,"attributes":[{"key":"user.name","value":{"stringValue":"George Lucas"}},{"key":"user.user_id","value":{"stringValue":"oldbenkenobi"}},{"key":"user.phone_number","value":{"stringValue":"+1555-867-5309"}},{"key":"user.email","value":{"stringValue":"george@deathstar.email"}},{"key":"user.account_password","value":{"stringValue":"LOTR>StarWars1-2-3"}},{"key":"user.visa","value":{"stringValue":"4111 1111 1111 1111"}},{"key":"user.amex","value":{"stringValue":"3782 822463 10005"}},{"key":"user.mastercard","value":{"stringValue":"5555 5555 5555 4444"}}]}]}]}]} ``` +{{% /tab %}} + +{{% tab title="Formatted JSON" %}} + +```json +{ + "resourceSpans": [ + { + "resource": { + "attributes": [ + { + "key": "service.name", + "value": { + "stringValue": "my.service" + } + }, + { + "key": "deployment.environment", + "value": { + "stringValue": "my.environment" + } + } + ] + }, + "scopeSpans": [ + { + "scope": { + "name": "my.library", + "version": "1.0.0", + "attributes": [ + { + "key": "my.scope.attribute", + "value": { + "stringValue": "some scope attribute" + } + } + ] + }, + "spans": [ + { + "traceId": "5B8EFFF798038103D269B633813FC60C", + "spanId": "EEE19B7EC3C1B174", + "parentSpanId": "EEE19B7EC3C1B173", + "name": "I'm a server span", + "startTimeUnixNano": "1544712660000000000", + "endTimeUnixNano": "1544712661000000000", + "kind": 2, + "attributes": [ + { + "key": "user.name", + "value": { + "stringValue": "George Lucas" + } + }, + { + "key": "user.user_id", + "value": { + "stringValue": "oldbenkenobi" + } + }, + { + "key": "user.phone_number", + "value": { + "stringValue": "+1555-867-5309" + } + }, + { + "key": "user.email", + "value": { + "stringValue": "george@deathstar.email" + } + }, + { + "key": "user.account_password", + "value": { + "stringValue": "LOTR>StarWars1-2-3" + } + }, + { + "key": "user.visa", + "value": { + "stringValue": "4111 1111 1111 1111" + } + }, + { + "key": "user.amex", + "value": { + "stringValue": "3782 822463 10005" + } + }, + { + "key": "user.mastercard", + "value": { + "stringValue": "5555 5555 5555 4444" + } + } + ] + } + ] + } + ] + } + ] +} +``` + +{{% /tab %}} +{{% /tabs %}} + +In this exercise, we will update the `agent.yaml` file by adding `attribute` and `redaction` processors. + +### Step 2 Configure Agent + ### Breakdown of Key Configurations -#### 1. Remove Tags (Attributes) +#### 2.1 Remove Tags (Attributes) -The `attributes/removetags` processor allows you to delete specific attributes (tags) from spans. In this case, we're removing the tag `SPAN_TAG_KEY`: +The `attributes/removetags` processor allows you to delete specific attributes (tags) from spans. In this case, we're removing the tag `user.user_id`: ```yaml attributes/removetags: actions: - - key: SPAN_TAG_KEY + - key: user.user_id action: delete ``` -#### 2. Update Sensitive Data +#### 2.2. Update Sensitive Data The attributes/update processor is used to update or redact sensitive data. We perform the following actions: -Redacting credit card numbers: Replace the cc_number with the word "redacted". +Redacting credit card numbers: Replace the amex card number with the word "redacted". Deleting the account_password field to remove passwords from traces. Hashing the account_email to anonymize email addresses. ```yaml attributes/update: actions: - - key: cc_number + - key: user.amex value: redacted action: update - - key: account_password + - key: user.account_password action: delete - - key: account_email + - key: user.account_email action: hash ``` -#### 3. Redaction Processor +#### 2.3. Redaction Processor The redaction/update processor provides fine-grained control over which attributes are allowed or blocked from traces. We configure this processor to: @@ -139,35 +223,29 @@ redaction/update: summary: debug # Show detailed debug information about redactions ``` -### Step 2: Apply and Test the Configuration - -#### 2.1 Save the Configuration +Open the `agent.yaml` and add the `attributes/removetags`, `attributes/update`, and `redaction/update` configuration to the `processors` section: -Save the YAML configuration above into a file called otel-collector-config.yaml. +{{% notice title="Exercise" style="green" icon="running" %}} -#### 2.2 Run the OpenTelemetry Collector +- **Configure the processors**: +Open the `agent.yaml` and add the `attributes/removetags`, `attributes/update`, and `redaction/update` configuration to the `processors` section -To run the OpenTelemetry Collector with your configuration file, use the following command: - -```bash -otelcol --config=otel-collector-config.yaml -``` +- **Add the `attribute` and `redaction` processors**: Make sure you add the processors to the `traces` pipeline. -### 2.3 Generate Some Sample Data +{{% /notice %}} -To test the configuration, generate some sample telemetry data (traces) that includes sensitive attributes such as: +Validate the agent configuration using **[otelbin.io](https://www.otelbin.io/)**, the results for the `traces` pipeline should look like this: -- cc_number (credit card number), -- account_password (password), -- account_email (email address). +![otelbin-f-6-1-traces](../images/otelbin-f-6-1-trace.png) -You can use a test application or OpenTelemetry instrumentation to simulate these traces. +### Step 2: Verify the Redaction -### 2.4 Verify the Redaction +Ensure that the `agent` is started the `[WORKSHOP]/6-sensitive-data` folder using the correct agent configuration yaml. Next, update and use the **cURL** command we used earlier to send the `health.json` payload, and send the `trace.json` data created above. After the collector processes the data, verify that: -- The cc_number field is redacted with the word redacted. +- The user_id field is deleted. +- The amex cc number field is redacted with the word redacted. - The account_password field is deleted. - The account_email field is hashed. - Sensitive credit card numbers (Visa, MasterCard) are properly masked using regex. diff --git a/content/en/ninja-workshops/10-advanced-otel/images/otelbin-f-6-1-trace.png b/content/en/ninja-workshops/10-advanced-otel/images/otelbin-f-6-1-trace.png new file mode 100644 index 0000000000000000000000000000000000000000..65be772b0fee6bb9c5150d09010713771057b7d8 GIT binary patch literal 67076 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 Lk~!hrjlcd6t&e~> literal 0 HcmV?d00001 diff --git a/workshop/ninja/advanced-otel/5-removing-tags-redacting-sensitive-data/agent-5.yaml b/workshop/ninja/advanced-otel/5-removing-tags-redacting-sensitive-data/agent-5.yaml index 2e00bb5a7..eaf264056 100644 --- a/workshop/ninja/advanced-otel/5-removing-tags-redacting-sensitive-data/agent-5.yaml +++ b/workshop/ninja/advanced-otel/5-removing-tags-redacting-sensitive-data/agent-5.yaml @@ -66,18 +66,18 @@ processors: # Overrides an existing tag for a span. attributes/removetags: actions: - - key: SPAN_TAG_KEY + - key: user.user_id action: delete # Updates attribute values to remove and redact sensitive data attributes/update: actions: - - key: cc_number + - key: user.amex value: redacted action: update - - key: account_password + - key: user.account_password action: delete - - key: account_email + - key: user.account_email action: hash # Redaction processor @@ -125,6 +125,8 @@ service: - resourcedetection - resource/add_mode - attributes/removetags + - attributes/update + - redaction/update exporters: [otlp/gateway, debug] metrics: receivers: [otlp]