# SecureCart Journey

Securing data is **critical for protecting customer transactions, payment information, and order details** in SecureCart. Task Statement 1.3 focuses on implementing **appropriate data security controls** to ensure **data governance, encryption, access control, and lifecycle management**.

✔ **Why does SecureCart prioritize data security?**

* **Protects sensitive customer data** (names, addresses, payment info).
* **Ensures compliance with regulations** (PCI DSS, GDPR).
* **Prevents data loss and unauthorized access**.
* **Maintains data integrity and availability**.

***

### **🔹 Step 1: Understanding SecureCart’s Data Security Requirements**

**Who Needs Access to Data?**

| **Role**                         | **Access Level**   | **Data Type**                   |
| -------------------------------- | ------------------ | ------------------------------- |
| **Developers**                   | Read-only access   | Logs, application data.         |
| **Security Team**                | Full visibility    | Security logs, IAM policies.    |
| **Database Administrators**      | Read/Write         | RDS & DynamoDB databases.       |
| **Application Services**         | Controlled access  | Order history, product catalog. |
| **Third-Party Payment Provider** | Limited API access | Transaction details.            |

**What Data Needs to Be Protected?**

| **Data Type**           | **Storage Location**      | **Protection Method**                    |
| ----------------------- | ------------------------- | ---------------------------------------- |
| **Customer Data (PII)** | Amazon RDS, DynamoDB      | Encryption at rest & access control.     |
| **Order Transactions**  | DynamoDB                  | IAM Role-based access policies.          |
| **Logs & Audit Data**   | Amazon S3                 | S3 bucket policies & retention policies. |
| **Payment Information** | External Payment Provider | Tokenization & PCI compliance.           |

✅ **Best Practices:**\
✔ Apply **role-based access control (RBAC)** to prevent unauthorized access.\
✔ Encrypt **all sensitive data at rest and in transit**.\
✔ Implement **data retention policies** to remove stale data.

***

### **🔹 Step 2: Implementing Data Encryption at Rest & In Transit**

#### **A. Encrypting Data at Rest**

✔ **Why?** – Prevents unauthorized access if storage media is compromised.\
✔ **How SecureCart Encrypts Data at Rest:**

| **Service**         | **Encryption Method** | **Use Case in SecureCart**                        |
| ------------------- | --------------------- | ------------------------------------------------- |
| **Amazon RDS**      | AWS KMS Encryption    | Protects customer order data in MySQL/PostgreSQL. |
| **Amazon DynamoDB** | AES-256 Encryption    | Encrypts transactional order records.             |
| **Amazon S3**       | S3 Default Encryption | Protects stored invoices, logs, and backups.      |
| **Amazon EBS**      | Volume Encryption     | Encrypts attached storage for EC2 instances.      |

✅ **Best Practices:**\
✔ Use **AWS Key Management Service (KMS) for centralized key management**.\
✔ Enable **S3 bucket default encryption** to avoid accidental unencrypted uploads.\
✔ Regularly **rotate encryption keys** for enhanced security.

***

#### **B. Encrypting Data in Transit**

✔ **Why?** – Prevents **eavesdropping and man-in-the-middle (MitM) attacks**.\
✔ **How SecureCart Ensures Secure Data Transfers:**

| **Encryption Type**               | **Use Case in SecureCart**                                     |
| --------------------------------- | -------------------------------------------------------------- |
| **TLS 1.2+ (HTTPS)**              | Encrypts API calls between the frontend & backend.             |
| **AWS Certificate Manager (ACM)** | Manages SSL certificates for ALB & API Gateway.                |
| **IPsec VPN**                     | Secure communication between AWS and on-premises data centers. |
| **AWS PrivateLink**               | Private access to AWS services (e.g., S3, DynamoDB).           |

✅ **Best Practices:**\
✔ Enforce **TLS 1.2 or later** for all network communications.\
✔ Use **AWS PrivateLink instead of exposing API endpoints publicly**.\
✔ Regularly **renew SSL/TLS certificates** via ACM.

***

### **🔹 Step 3: Implementing Access Policies for Data Security**

✔ **Why?** – Prevents **unauthorized access** and **enforces the principle of least privilege**.\
✔ **How SecureCart Restricts Data Access:**

#### **A. IAM & Resource Policies for Data Access Control**

| **Policy Type**       | **Applies To**       | **Use Case**                                                   |
| --------------------- | -------------------- | -------------------------------------------------------------- |
| **IAM Policies**      | IAM Roles, Users     | Developers get read-only access to logs.                       |
| **Resource Policies** | S3, DynamoDB, RDS    | S3 bucket allows access **only from SecureCart applications**. |
| **VPC Endpoints**     | Private AWS Services | DynamoDB access restricted **to VPC only**.                    |

✅ **Best Practices:**\
✔ **Deny all access by default**, then allow only what is needed.\
✔ Use **IAM roles instead of static credentials** for applications.\
✔ **Enable IAM Access Analyzer** to detect overly permissive policies.

***

### **🔹 Step 4: Implementing Data Backups & Recovery**

✔ **Why?** – Ensures **business continuity and disaster recovery (DR)**.\
✔ **How SecureCart Implements Data Backups:**

| **Data Type**     | **Backup Method**         | **Retention Policy**                             |
| ----------------- | ------------------------- | ------------------------------------------------ |
| **RDS Databases** | Automatic Snapshots       | 7-day retention, point-in-time recovery enabled. |
| **DynamoDB**      | Continuous Backups (PITR) | Restores deleted/missing records.                |
| **S3 Logs**       | Versioning & Replication  | Archived in Glacier for 90 days.                 |

✅ **Best Practices:**\
✔ Enable **Amazon RDS Automated Backups** for point-in-time recovery.\
✔ Use **S3 Lifecycle Policies** to automatically transition old backups to Glacier.\
✔ Regularly **test backup restoration procedures**.

***

### **🔹 Step 5: Implementing Data Retention & Lifecycle Management**

✔ **Why?** – Reduces **storage costs and ensures compliance**.\
✔ **How SecureCart Manages Data Lifecycles:**

| **Data Type**     | **Lifecycle Policy**  | **Storage Class**                 |
| ----------------- | --------------------- | --------------------------------- |
| **Order Logs**    | Archive after 30 days | Amazon S3 Glacier.                |
| **Customer Data** | Delete after 5 years  | Amazon RDS with backup retention. |
| **Security Logs** | Retain for 1 year     | Amazon S3 Standard-IA.            |

✅ **Best Practices:**\
✔ Define **clear data retention policies** for compliance.\
✔ Use **S3 Lifecycle Rules** to automatically transition data to cheaper storage.\
✔ Implement **data classification** for sensitive data.

***

### **🔹 Step 6: Monitoring & Auditing Data Security**

✔ **Why?** – Detects **unauthorized access & data breaches** in real-time.\
✔ **How SecureCart Monitors Data Security:**

| **Monitoring Tool**  | **Purpose**                     | **Use Case in SecureCart**            |
| -------------------- | ------------------------------- | ------------------------------------- |
| **AWS CloudTrail**   | Logs all AWS API calls          | Detects unauthorized database access. |
| **Amazon Macie**     | Scans S3 for sensitive data     | Identifies exposed customer data.     |
| **Amazon GuardDuty** | Monitors threats                | Detects suspicious API calls.         |
| **AWS Security Hub** | Centralized security monitoring | Aggregates security findings.         |

✅ **Best Practices:**\
✔ **Enable CloudTrail logging** across all AWS accounts.\
✔ Use **Macie to classify and detect sensitive data in S3**.\
✔ Regularly **review IAM activity logs for anomalies**.

***

## **🚀 Summary**

✔ **Encrypt all data at rest and in transit** using KMS and TLS.\
✔ **Implement IAM & Resource Policies** to enforce access control.\
✔ **Use automated backups and disaster recovery plans** to protect data.\
✔ **Apply S3 Lifecycle Policies to manage data retention and cost.**\
✔ **Monitor security logs with CloudTrail, GuardDuty, and Macie.**
