Kinesis — streaming, encryption, and the agent
Kinesis is Amazon’s managed streaming platform (conceptually similar to Kafka). Producers put records into a Kinesis stream; AWS manages persistence and delivery to consumers. Key security points:
- Data in transit: enforce TLS/SSL (HTTPS) between producers and Kinesis.
- Data at rest: enable server-side encryption using
SSE-KMS. - Monitoring: enable CloudWatch metrics and CloudTrail for API auditing and operational visibility.
- Differentiate services: Kinesis Data Streams hosts streaming records for consumer processing; Firehose is an ingestion/delivery pipeline to sinks (S3, Redshift, OpenSearch). Use the service that matches your use case.

- MSK handles cluster components (brokers and ZooKeeper for older/provisioned clusters), but you remain responsible for sizing and some configurations.
- Turn on encryption in transit (TLS) and encryption at rest (
SSE-KMS). - If using ZooKeeper-enabled clusters, secure ZooKeeper communications with TLS as part of the cluster configuration.
- Route broker logs to S3 for centralized analysis; combine with Glue/Athena or other analytics tools.


- Use dedicated
IAMroles with least privilege for Glue jobs, crawlers, and catalog access. - For private data sources, run Glue jobs within VPC subnets or configure VPC interface endpoints so Glue can access resources without traversing the public internet.
- Enable KMS-backed encryption for the Data Catalog, job bookmarks, and job outputs.

Encrypt Glue job bookmark data using AWS KMS (the default KMS-backed encryption is appropriate in most cases). Avoid storing bookmark data in plaintext.
- Cluster roles: master (coordination), core (persistent HDFS/storage), and task (ephemeral compute).
- Network: run EMR in a VPC and control access with subnets, security groups, and NACLs.
- Patching: EMR encourages immutable deployments — terminate and recreate clusters to get patched AMIs. If nodes are long-lived, use AWS Systems Manager (SSM) to automate patching.
- Use EBS encryption and HDFS zone encryption (KMS) for at-rest protection, and enable TLS for in-transit traffic between nodes and services.


IAM roles/policies to provide audited, centralized shell or web access to EMR nodes without opening inbound SSH ports.

- Network controls: VPC peering, endpoints, security groups, and NACLs.
IAMpolicies and roles: restrict which principals can call EMR APIs or create/modify clusters.- Resource-based policies where supported, and organization/unit-level SCPs (Service Control Policies) for centralized governance.

- In-transit: TLS for service-to-service and node communication.
- At-rest: HDFS transparent encryption (zone-based) integrated with KMS; EBS volume encryption via
SSE-KMSfor instance storage. - S3-bound data: use
SSE-S3orSSE-KMSfor objects written to S3, or client-side encryption when appropriate.


- CloudWatch for metrics; CloudWatch Logs (via agents) for application/system logs.
- CloudTrail for API and control-plane auditing.
- Export logs to S3 for long-term retention and analysis with Glue + Athena or other tools.

- Integrations: S3, Glue Data Catalog, Redshift, and JDBC sources.
- Access control:
IAMfor service access; CloudTrail logs API actions for auditing. - Networking: DataBrew jobs can be run inside a VPC to reach private resources.


- Fine-grained access: row-level and column-level (cell-level) filtering and masking.
- LF-tags: tag-based authorization you can attach to databases/tables and enforce via policies.
- Audit logging: detailed data access and user-activity logs for compliance and forensics.
- Integration: works with IAM, AWS Identity Center, and external identity providers for authentication and authorization.


- Authorization: control who can run queries via
IAMand, for fine-grained controls, Lake Formation policies. - Encryption: Athena supports querying
SSE-S3andSSE-KMSencrypted objects if the caller has KMS decrypt permissions. - Unsupported encryption: Athena cannot directly read objects encrypted with
SSE-C(customer-provided keys) or client-side encryption where Athena cannot access the plaintext data or keys. - Logging & monitoring: use CloudTrail for query auditing and CloudWatch for metrics.

Athena cannot query objects encrypted with
SSE-C (customer-provided keys) or client-side encrypted objects unless the service can obtain the plaintext. For SSE-KMS, ensure the querying principal has kms:Decrypt permission for the key.
- Prioritize identity: treat
IAMas the primary control plane; use least privilege and scoped roles for services and users. - Make keys first-class: centralize KMS key policies, use multi-account/enforced key policies where needed.
- Use private connectivity: VPC interface/gateway endpoints to keep traffic off the public internet.
- Centralize logging: CloudTrail for API audit, CloudWatch for metrics, and S3 exports for long-term analysis with Glue/Athena.
- Prefer managed encryption (e.g.,
SSE-KMS, EBS encryption, HDFS transparent encryption with KMS). - Use Lake Formation + LF-tags + Glue Data Catalog for scalable, fine-grained data access in data lakes.
- For compute nodes, prefer ephemeral clusters to avoid in-place patching; when needed, use Systems Manager for session and patch management.
- AWS Kinesis: https://docs.aws.amazon.com/kinesis/
- Amazon MSK: https://docs.aws.amazon.com/msk/
- AWS Glue: https://docs.aws.amazon.com/glue/
- Amazon EMR: https://docs.aws.amazon.com/emr/
- AWS Lake Formation: https://docs.aws.amazon.com/lake-formation/
- Amazon Athena: https://docs.aws.amazon.com/athena/