CertNote/ Commute Study Notes
Roadmap
KOEN
CLF-C02 · FoundationalCloud Practitioner - Foundational
DVA-C02 · AssociateDeveloper - Associate
SAA-C03 · AssociateSolutions Architect - Associate
SOA-C02 · AssociateCloudOps Engineer - Associate
SAP-C02 · ProfessionalSolutions Architect - Professional
DOP-C02 · ProfessionalDevOps Engineer - Professional
Linux Master 2 · 2급KAIT Linux Master - Level 2
SCS-C03 · SpecialtySecurity - Specialty
Linux Master 1 · 1급KAIT Linux Master - Level 1
MLA-C01 · AssociateMachine Learning Engineer - Associate
AIF-C01 · FoundationalAI Practitioner - Foundational
DEA-C01 · AssociateData Engineer - Associate
  • Week 1
    • 1.What Is Data Engineering
    • 2.Batch vs Streaming
    • 3.A Bird's-Eye View of AWS Data Services
    • 4.Data Formats and Modeling
    • 5.Week 1 Comprehensive Review
  • Week 2
  • Week 3
  • Week 4
  • Week 5
  • Week 6
  • Week 7
  • Week 8
  • Week 9
    • 1.Access Control: IAM and Lake Formation Permissions
    • 2.Encryption: KMS and Per-Service Encryption
    • 3.Protecting Sensitive Data: Macie and Masking
    • 4.Data Governance: Catalog, Lineage, Sharing, and Auditing
    • 5.Week 9 Review: Security and Governance
  • Week 10
MLS-C01 · SpecialtyMachine Learning - Specialty
SQLD · 개발자SQL Developer (SQLD)

© CertNote · 주간랩스

  • About
  • Changelog
  • Contact
  • Terms
  • Privacy
← DEA-C01/Week 9/Day 5

Based on the DEA-C01 exam guide·Report an error

DEA-C01· AssociateWeek 9 · Day 5~31 min read

Day 5 - Week 9 Review: Security and Governance

📌 Key Takeaways

  • A single data request passes in order through the checkpoints of transport (TLS) → IAM → Lake Formation → KMS → filters and masking → audit records. If it is denied, first work out which checkpoint denied it.
  • IAM and Lake Formation are in an AND relationship. Both must pass to reach the data, and for encrypted data the KMS key policy must also be right.
  • Encryption is distinguished by who holds the key (SSE-S3 / SSE-KMS / SSE-C / client-side). Encryption in transit is enforced separately.
  • Macie only detects. What reduces exposure is masking, tokenization, and data filters, and you must decide where to mask (ETL, catalog, or query).
  • For sharing, separate Data Exchange (hands over) from Clean Rooms (originals not exposed), and object-level auditing is recorded only if you turn on CloudTrail data events.

The Checkpoints One Request Passes Through

This week we looked at access control, encryption, sensitive data protection, and governance, one per day. The four topics are not separate features; they are the checkpoints that a single analyst query passes through, in order, before it reaches the data.

An analyst's Athena query
   │
   ▼ ① Transport: is it TLS?            (aws:SecureTransport, require_ssl)          Day 2
   ▼ ② IAM: can it call this API?        (athena, glue, lakeformation:GetDataAccess) Day 1
   ▼ ③ Lake Formation: can it see this table?  (SELECT, LF-Tags)                    Day 1
   ▼ ④ KMS: can it decrypt?              (key policy, kms:Decrypt)                   Day 2
   ▼ ⑤ What is returned?                 (data filters, masking, tokens)             Day 1, 3
   ▼ ⑥ Record: who read what?            (CloudTrail data events)                    Day 4
 Result
  • ① through ④ decide whether it passes, ⑤ decides the visible scope, and ⑥ decides after-the-fact proof. Looking at which of the three the question's requirement belongs to narrows the answer choices.
  • The checkpoints cannot substitute for one another. Encryption (④) does not stop an authorized user from seeing PII, and permissions (③) do not record who viewed it.

"Where Was It Blocked" Lookup Table

Observed behaviorBlocked checkpointWhat to check
IAM policies allow everything but the table query fails with insufficient permissions③Lake Formation SELECT and DESCRIBE, whether a data filter was granted
Lake Formation permissions exist too but it fails②lakeformation:GetDataAccess
Permissions were narrowed but the user sees everything③ is turned offSuper for IAMAllowedPrincipals, direct S3 permissions
Metadata is visible but it fails the moment data is read④kms:Decrypt in the key policy, whether it is a customer managed key
Works within the same account but fails only cross-accountOne of ②, ③, ④ in one accountPolicies in both accounts, RAM invitation, resource link, key policy
A security finding that access works over HTTP①The aws:SecureTransport deny in the bucket policy
An analyst sees the original card numbers⑤The attachment target and priority of the filter or masking policy
There is no record of who read it⑥Data events, the Redshift user activity log
  • Cross-account problems have three layers: the trust policy (who can assume the role) + the permission policy (what that role can do) + the KMS key policy. If the question says two of them are in place, the remaining one is the answer.

Telling Look-Alikes Apart

Four means of "keeping sensitive data from being seen"

MeansWhen it actsStored valueWhat the user seesSuitable requirement
ETL tokenization/hashing (Glue)Before writingChangedToken or hashWe do not want to keep the original in the lake
Lake Formation data filterAt read timeUnchangedThe relevant columns and rows are absentDifferent visible scope per role (data lake)
Redshift dynamic data maskingAt query timeUnchangedMasked valueShow the same table differently per role (warehouse)
MacieInvestigates after storageUnchanged(Detection results only)We do not know where it is
  • Macie is different in nature in this table. The other three are controls, and Macie is discovery. If you pick Macie for a requirement to "make it invisible," it is wrong.

S3 encryption: who holds the key

MethodKey ownerAuditing / controlRepresentative clue
SSE-S3S3NoneThe default, no extra configuration needed
SSE-KMSKMS keyKey policy + CloudTrailAuditing key use, cross-account
DSSE-KMSKMS key (dual)SameA regulation requiring two layers of encryption
SSE-CThe customer provides it with each requestAWS does not store the keyDo not entrust the key to AWS, but S3 does the encryption
Client-sideThe customerAWS gets only ciphertextAWS must never see the plaintext

Sharing: what the other party gets their hands on

MethodWhat the other party getsOriginal rows exposed
Data ExchangeA dataset (a file copy or in-place access rights)Exposed
Redshift datashareLive table accessExposed
Lake Formation cross-account sharingCatalog tables (within the filter scope)Exposed within the scope
S3 bucket policy sharingThe entire objectExposed
Clean RoomsThe results of an agreed analysisNot exposed

Audit logs

QuestionLog
Who changed a policy, key, or tableCloudTrail management events
Who read this objectCloudTrail data events
Requests that failed authentication, objects deleted by a lifecycle ruleS3 server access logs
Who ran which SQL in RedshiftRedshift audit logs (user activity log)
Where sensitive data isMacie findings (detection results, not an audit log)

Where to Configure: One Page per Service

ServiceAccess controlEncryption at restEncryption in transitAuditing
S3Bucket policy, IAMBucket default encryption (SSE-S3, SSE-KMS), Bucket Keyaws:SecureTransportData events, server access logs
Glue Data CatalogLake Formation permissions, LF-TagsCatalog encryption settingTLSCloudTrail
Glue ETLJob role (IAM)Security configuration (S3, logs, bookmarks)TLSCloudWatch Logs, CloudTrail
AthenaIAM + Lake FormationWorkgroup result encryptionTLSCloudTrail, query history
RedshiftGRANT, roles, dynamic maskingCluster encryption (applied by default)require_sslAudit logging, CloudTrail
KinesisIAMServer-side encryption of the stream (KMS)TLSCloudTrail
  • Even if the source is encrypted with SSE-KMS, Athena query results and Glue job temporary and log data follow their own settings. This is where sensitive data leaks through the result bucket or the logs.

Week 9 Numbers and Defaults on One Page

AreaItemValue
IAMEvaluation orderExplicit Deny > explicit Allow > implicit deny
IAMCross-accountBoth accounts must allow for it to pass
Lake FormationInitial stateSuper for IAMAllowedPrincipals, controlled by IAM only
Lake FormationPermissions granted with a data filterSELECT only
Lake FormationCross-accountUses RAM. Immediate within the same organization, invitation acceptance outside it
KMSAutomatic rotationOptional for customer managed (default period 365 days), yearly for AWS managed
KMSDeletion waiting period7 to 30 days, 30 by default
S3Default encryptionSSE-S3 on all new objects since January 5, 2023
S3SSE-CBlocked by default on new buckets since April 2026
S3 Bucket KeyEffectUp to 99% reduction in KMS request cost, DSSE-KMS not supported
RedshiftEncryptionApplied by default. If you disable the key, it can be deleted after 14 days
MacieFinding retention90 days
MacieCustom identifierRegex 512 characters, 50 keywords, maximum match distance default 50 (1 to 300)
Redshift DDMDefault priority0. The higher one applies
Schema RegistryRecommended compatibilityBACKWARD
CloudTrailDefault recordingManagement events only. You turn on data events yourself
  • Three values changed recently: the rotation period of AWS managed keys (3 years → 1 year), the default blocking of SSE-C, and the default encryption of Redshift. Exam material may still show the old values.

Integrated Scenario: A Regulated Customer Data Platform

Requirements: Load payment data into a data lake, detect and protect PII, show analysts only masked data, collaborate with partners without exposing originals, audit all access, and respond to GDPR deletion.

[Payment source] --Glue ETL (KMS encryption, tokenization)--> s3://lake-clean/payments/ (Iceberg)
   --Macie scan--> [PII finding] --EventBridge--> [Lambda: restrict access/notify]
   --Lake Formation (data filters, LF-Tags)--> [Analysts: view without PII]
   --Clean Rooms--> [Partners: agreed aggregates only]
   All activity --> CloudTrail (data events) --> audit account bucket
DecisionChoiceWhy this choice is required
Encryption at restSSE-KMS (customer managed key) + Bucket KeyKey usage auditing and control are needed, and KMS cost must be reduced for the ETL's bulk reads
TransportEnforce TLS through the bucket policyIt is a layer separate from encryption at rest
Card numbersTokenize in ETLKeep joins but do not keep the originals in the lake
DetectionMacie automated discovery + discovery jobs for sensitive bucketsFinds PII that slipped past tokenization (free-text fields)
Access controlLF-Tags + data filtersPermissions apply automatically even as tables grow, and only the region's rows are visible
Partner collaborationClean RoomsNeither side may see the other's original rows
AuditingCloudTrail data events on sensitive bucketsProves object-level access
DeletionIceberg row-level DELETE + snapshot cleanupRemove only one customer's rows and leave nothing in past snapshots either
-- GDPR deletion (Iceberg on Athena): logical delete, then clean up snapshots too
DELETE FROM lake_clean.payments WHERE customer_id = 'GDPR-REQ-2026-042';
VACUUM lake_clean.payments;
{
  "Name": "analyst_payments_filter",
  "ColumnNames": ["txn_id", "region", "amount_token", "dt"],
  "RowFilter": { "FilterExpression": "region = 'ap-northeast-2'" }
}
  • For Macie to read this bucket, the customer managed key's key policy must allow Macie. The encryption decision (Day 2) becomes a precondition of the detection decision (Day 3).
  • The reason to keep Macie even though you tokenized is the paths the design missed. Controls block "where it should be," and detection finds "where it should not be."

Three Requests You Actually Get in Operations

RequestProcessing order
"Show the sales data to a new analyst"Check lakeformation:GetDataAccess on the role → grant the LF-Tag expression that fits the role (do not add individual table GRANTs) → if PII is not needed, use a filtered permission → do not give direct S3 permissions
"Delete all of this customer's data"Locate copies with lineage → DELETE in each Iceberg table → expire snapshots and VACUUM → handle S3 previous versions, the raw zone, backups, and warehouse copies → keep a record of the handling
"Produce who read this bucket last month"Check whether data events were on during that period → query the logs the trail accumulated with Athena → for a role session, trace back through the AssumeRole event to identify the person. If it was not turned on, there is no way to create it retroactively

💡 Related theory: Security and governance are not a single control but defense in depth. Encryption (confidentiality) + access control (authorization) + detection (visibility) + auditing (accountability) must work together to meet regulatory and trust requirements. Because one is strong, you cannot omit another.

Frequently Missed Traps

  • Turning on Lake Formation does not mean control is applied. If IAMAllowedPrincipals remains, data is readable through IAM alone.
  • Lake Formation does not block direct S3 access. Even with a filter, if the user has s3:GetObject, the raw file opens.
  • KMS permissions do not end with the IAM policy. The key policy must allow IAM delegation or allow directly.
  • Rotating a key does not re-encrypt existing data. Even if you change default encryption, existing objects stay as they are.
  • A Bucket Key is not giving up key control. It is only that KMS events show the bucket ARN rather than the object.
  • Macie neither masks nor deletes. It also does not look outside S3 (Redshift tables).
  • DELETE is not a physical deletion. Until you expire the snapshots, the data can be read through time travel.
  • datashare and Data Exchange are not "originals not exposed." They just do not copy; the other party reads the rows.
  • Even with audit logging on, query statements may not be recorded. In Redshift, enable_user_activity_logging is separate.

Question Clue → Correct Answer Table

Clue in the questionCorrect answer
"Card numbers as tokens, only your own region's rows, applied automatically to new tables"LF-Tags + data filter + ETL tokenization
"Prove which role read a specific object"CloudTrail data events
"Originals not exposed to partners, PII excluded for internal analysts"Clean Rooms + Lake Formation data filter
"KMS throttling and cost spike + block plaintext HTTP"S3 Bucket Key + aws:SecureTransport deny
"Is a single control enough"No. Encryption, access control, detection, and auditing together
"IAM allows but the query fails"Lake Formation permission
"Another account cannot read an encrypted table"KMS key policy (customer managed key)
"Even AWS must not see the plaintext"Client-side encryption

Next week is the last week. We start with an integrated review of Domains 1 and 2 (ingestion and transformation, and store management).

📖 Glossary

  • Defense in depth: A design that protects in multiple layers so that if one control is breached, the next one blocks.
  • Control point: A point where a request is judged as to whether it passes. Transport, IAM, Lake Formation, and KMS are one each.
  • In-place access: A sharing method in which you read the provider's store directly instead of receiving a copy of the data.
  • Analysis without exposing originals: A collaboration method in which you get only agreed aggregate results without seeing the other party's row data.
  • Logical deletion / physical deletion: Merely marking as deleted versus actually removing from storage. An Iceberg DELETE is the former.
  • Audit account: An account, separated from operations accounts, where logs are gathered. It keeps operators from altering their own records.
  • Accountability: The property of being able to prove after the fact who did a given action.
  • Right to be forgotten: The right of an individual to demand deletion of their own data. A GDPR deletion request is the representative example.

📝 Practice Questions

Click a choice to reveal the answer and explanation.

Question 1

On a payment data platform, you want analysts to see card numbers as tokens, expose only the rows for their own region, and have permissions applied automatically even when new tables are added. Which combination is the most appropriate?

Question 2

A security team must prove "which IAM role read a specific object in the payment bucket last month." What setup is required?

Question 3

You must jointly analyze campaign effectiveness with an external partner without exposing either company's raw customer data. At the same time, you provide in-house analysts with data excluding PII. Which combination of services is correct?

Question 4

An ETL job reading a large number of objects from a payment bucket encrypted with SSE-KMS is suffering KMS throttling and a cost spike. Plaintext HTTP access must also be blocked at the same time. Which combination of actions is the most appropriate?

Question 5

Which option most accurately describes "defense in depth" in data security and governance?

PreviousData Governance: Catalog, Lineage, Sharing, and AuditingWeek 9 · Day 4Next Integrated Review of Domains 1 & 2: Ingestion, Transformation & Storage ManagementWeek 10 · Day 1

Official references

  • DEA-C01 official exam page(opens in a new tab)
  • Amazon S3 documentation(opens in a new tab)
  • AWS KMS documentation(opens in a new tab)
  • AWS Lake Formation documentation(opens in a new tab)
  • AWS IAM documentation(opens in a new tab)
  • Amazon Macie documentation(opens in a new tab)

On this page

  • Key Takeaways
  • The Checkpoints One Request Passes Through
  • Where Was It Blocked" Lookup Table
  • Telling Look-Alikes Apart
  • Where to Configure: One Page per Service
  • Week 9 Numbers and Defaults on One Page
  • Integrated Scenario: A Regulated Customer Data Platform
  • Three Requests You Actually Get in Operations
  • Frequently Missed Traps
  • Question Clue → Correct Answer Table
  • Glossary
  • Practice Questions