Information Security and Data Protection Policies

TD Nutrition Ltd (Companies House 11368487) - internal Amazon Selling Partner API systems ("TD Dashboards"). Version 1.0, effective 5 November 2026. Owner: the Director. Reviewed at least annually; the incident response plan (section 9) every six months.

1. Scope, roles and definitions

Applies to every person, system and supplier that touches TD Nutrition Ltd's seller data.

Systems in scope. The TD Dashboards platform: data pipelines running on AWS Lambda (region eu-west-1), a Postgres warehouse and authentication service on Supabase, API functions on Supabase Edge Functions, static dashboards on Cloudflare Pages, source code on GitHub, error reporting on Sentry, and the laptops staff use to reach them. The platform reads Amazon Selling Partner API (SP-API) and Amazon Ads API data for TD Nutrition Ltd's own seller accounts only.

Amazon Information means any data obtained through Amazon APIs or Seller Central, as defined in Amazon's Acceptable Use Policy and Data Protection Policy. PII means information that identifies a natural person (for example a buyer's name, address, email or phone number).

Roles

RoleWhoResponsibilities
Security Owner and Incident Management Point of Contact (IMPOC)Konstantin Theodoridis, DirectorOwns these policies, approves every production change, signs off the fortnightly log review, leads incident response, approves access.
AdministratorNamed staff with the admin role in the dashboardsMay create and edit operational records (purchase orders, support tickets, listings proposals). May not change infrastructure or code.
Viewer / AnalystNamed staff with the viewer role or the read-only database roleRead-only access to the dashboards or the warehouse.
Automated servicesAWS Lambda functions, Edge Functions, GitHub ActionsRun with their own least-privilege credentials held in AWS Secrets Manager or the platform's secret store; never with a person's credentials.

All staff with access confirm they have read these policies when access is granted and at each annual review.

2. Control implementation status

Honest statement of what is live. Updated whenever a control changes. "Evidence" names where a reviewer can verify it.
ControlStatusEvidence
Documented policies with processing recordsLiveThis page (version-controlled in the repository under policies/)
Encryption at rest with managed keys (AES-256)LiveSupabase Postgres and storage (AES-256); AWS S3 (SSE-S3/AES-256); AWS Secrets Manager (AWS KMS)
Fine-grained access controlLiveIndividual accounts; role tables; row-level security on every table with no public policies
Audit logs, 12-month retention, fortnightly reviewLiveCloudTrail trail td-audit (400 days); security_audit_log; security_review sign-off records
Code scanning before every releaseLiveGitHub Actions security-scan (gitleaks, pip-audit, bandit, semgrep) required on every pull request; Dependabot
Formal change managementLiveBranch protection on main: pull request required, five status checks required, force-push and deletion blocked, no bypass
Vulnerability scanning every 30 daysLiveMonthly scheduled security-scan run (full history); AWS Inspector continuous scanning of Lambda functions and code
Annual penetration testNot performedAutomated scanning (every PR, monthly, continuous Inspector) is in place; an external penetration test is not currently commissioned. A scope brief is maintained in docs/security/pentest-brief.md should one be required
Automated credential rotationLivetd-lwa-rotation stack; credential_rotation_log
Encrypted, geographically separate backups with tested restoreLiveProvider daily backups; nightly db-backup to S3 eu-central-1 (SSE-KMS) since 5 Nov 2026; quarterly db-restore-test; results in backup_log
Dedicated test environment before productionLiveStaging Supabase project td-staging refreshed weekly from backup; required staging check on every pull request (migrations, functions, dashboard previews); migrate-prod applies the same migrations on merge
Password policy (12+ characters, complexity), MFA, 365-day expiry and annual rotationLiveSupabase Auth password rules; custom_access_token_hook refuses to issue or refresh a session after 365 days; console_credential_rotation register reviewed fortnightly; MFA on AWS, GitHub and Supabase accounts

3. Data handling and privacy policy

How Amazon Information and personal data are collected, processed, stored, used, shared and disposed of.

3.1 Classification

ClassExamplesHandling
PublicProduct listings, published policiesNo restriction
InternalSales totals, advertising metrics, stock levels, costsSigned-in staff only; encrypted at rest; not shared outside the company
ConfidentialCredentials, API tokens, financial statements, support-case textStored only in secret vaults or access-controlled tables; never in code, chat or email
Restricted (PII)Buyer names, addresses, emails, phone numbersNot stored. See 3.3.

3.2 Collection and purpose

We collect Amazon Information only for our own seller accounts, through the SP-API and Amazon Ads API, for these purposes: sales and profit reporting, inventory and supply planning, advertising management, listing quality, account health monitoring, VAT and EPR compliance, and support-case tracking. Data is not used for any other purpose, is not sold, and is not used to build profiles of buyers.

3.3 Personally identifiable information

3.4 Storage and location

Data is stored in Supabase (Postgres, hosted on AWS eu-west-1, Ireland) and AWS (eu-west-1, Ireland). Both encrypt data at rest with AES-256 and in transit with TLS 1.2 or higher. Backups are encrypted. No Amazon Information is stored on laptops, removable media or personal devices.

3.5 Sharing and sub-processors

Amazon Information is not shared with third parties, not disclosed to other developers, and not transferred to other Amazon developer applications. The following providers host or process it on our behalf under their standard data processing terms:

ProviderPurposeLocation
Amazon Web ServicesPipelines, secrets, audit logs, queueseu-west-1 (Ireland); backups eu-central-1 (Frankfurt)
SupabaseDatabase, authentication, API functions, file storageeu-west-1 (Ireland), on AWS
CloudflareHosting of the static dashboard pages (no Amazon data stored)Global edge; content is static code only
GitHubSource code and CI (no Amazon data stored)United States
SentryError reports (no Amazon data in payloads)European Union
Google WorkspaceCompany email, including Amazon support correspondenceEuropean Union / United States under Google's terms

3.6 Retention and disposal

3.7 Data subject rights and law

TD Nutrition Ltd complies with the UK GDPR and the EU GDPR. Requests from individuals are sent to contact@tdnutrition.eu and answered within one month. Because buyer PII is not stored by these systems, such requests are normally fulfilled through Amazon's own processes.

4. Record of processing activities

Article 30 UK/EU GDPR record for the TD Dashboards platform. Controller: TD Nutrition Ltd, 20-22 Wenlock Road, London N1 7GU.
Processing activityData categoriesData subjectsLawful basisRecipientsRetention
Sales and profit reportingOrder IDs, amounts, fees, SKUs, marketplace (no buyer identity)None identifiableLegitimate interest (running the business)Staff; AWS; Supabase7 years
VAT and EPR complianceTax amounts, countries, quantities, packaging weightsNone identifiable (buyer columns discarded)Legal obligationStaff; accountants; tax authorities7 years
Advertising managementCampaign metrics, keywords, spendNoneLegitimate interestStaff; AWS; Supabase7 years
Inventory, purchasing, suppliersStock levels, purchase orders, supplier contact detailsSupplier staff (business contacts)Contract; legitimate interestStaff; suppliers; forwarders7 years
Seller support case trackingCase IDs, our correspondence with Amazon, attachmentsAmazon support staff names (incidental)Legitimate interestStaff; SupabaseCase closure + 30 days (PII), 7 years (case summary)
Staff access and auditStaff email, role, sign-in times, IP address, actions takenEmployees and contractorsLegitimate interest (security); legal obligationDirector; Supabase; AWS12 to 25 months

5. Access control and password policy

5.1 Principles

5.2 Passwords and MFA

6. Change management policy

7. Vulnerability and patch management policy

ActivityFrequencyTool
Secret scan, dependency audit, static analysis of the repositoryEvery pull request and push; plus the 1st of every month over the full historyGitHub Actions security-scan
Dependency update proposals and security advisoriesWeekly, and immediately on a new advisoryDependabot
Runtime vulnerability scanning of all Lambda functions and their codeContinuousAWS Inspector
Managed platform patching (database, authentication, edge runtime, hosting)Continuous, by the providerSupabase, Cloudflare, AWS
External penetration test of the dashboards and API functionsNot currently performed; to be commissioned if required by a partner or after a major architectural changeIndependent provider (brief prepared)
Laptop operating system and browser updatesAutomatic updates on; applied within 14 daysmacOS / Chrome

Remediation targets

8. Logging, monitoring and review policy

8.1 What is logged

SourceContentRetention
AWS CloudTrail (all regions, global services)Every AWS API call: console sign-ins, IAM, secrets, Lambda, S3, queues; tamper-evident digests400 days (S3, encrypted, versioned, no public access)
Dashboard API audit logEvery request: user, function, action, IP address, user agent, allowed or deniedAt least 12 months (pruned at 25)
Authentication logSign-ins, sign-ups, password and MFA changes, recovery requestsKept with the database
Credential rotation logEach rotation step and its outcomeIndefinite
Pipeline run log and error reportingEvery scheduled run with outcome; exceptions with stack traces (no Amazon data)12 months (database); 90 days (Sentry)
Function execution logsCloudWatch logs per Lambda30 to 400 days

8.2 Monitoring and alerting

8.3 Fortnightly review

Every 14 days an automated job compiles the review: notable AWS events (console sign-ins, root use, IAM, secret, Lambda and logging changes), IAM users and key ages, authentication events and new accounts, dashboard actions per user, rejected requests per IP address, new user and IP combinations, credential rotations and secret ages, and pipeline failures. It lists the items that need a human decision. The Director reads the report in Operations > Security and signs it off; the sign-off (who, when, notes) is stored permanently in security_review. Items needing action become a ticket or a pull request. A review that is not signed off within 7 days is shown in red on the dashboard.

9. Incident response plan

A security incident is any actual or suspected unauthorised access to, loss of, or misuse of Amazon Information, personal data, credentials or systems.

Roles. Incident Manager: the Director (Konstantin Theodoridis, contact@tdnutrition.eu), who declares the incident, leads containment and makes all external notifications, including to Amazon. Technical responder: the Director or the engineer on duty, who executes containment and recovery steps and preserves evidence. Communications with Amazon, regulators and affected individuals: the Director.

9.1 Severity

LevelExampleResponse start
CriticalConfirmed unauthorised access to the database or AWS account; leaked credential in use; data exfiltrationImmediately
HighCredential leaked but no evidence of use; malware on a staff laptop; repeated unauthorised access attemptsWithin 4 hours
MediumPolicy breach without data exposure; vulnerability with no exploitationWithin 1 working day

9.2 Steps

  1. Detect and record. Open an incident record (date, time, reporter, what is known). Preserve logs: do not delete anything.
  2. Contain. Revoke the affected sessions and accounts; rotate every credential that could be involved (LWA client secrets through the rotation function, SP-API and Ads refresh tokens by re-authorising the apps, database password, service-role and anon keys, AWS access keys, GitHub tokens); block the offending IP address at the provider where possible; take a compromised laptop offline.
  3. Assess. Use CloudTrail, the dashboard audit log and the authentication log to establish what was accessed, by whom, from where and when, and whether Amazon Information or personal data was involved.
  4. Notify. If Amazon Information or the Amazon application is involved, notify Amazon at security@amazon.com within 24 hours of discovery, with the incident details, and cooperate with Amazon's requests. If personal data is involved, assess the risk and notify the ICO (UK) and the Hellenic DPA where required within 72 hours, and affected individuals without undue delay when the risk is high.
  5. Eradicate and recover. Remove the cause (patch, configuration change, revoke access), restore data from backup if integrity is in doubt, and confirm from the logs that the activity has stopped.
  6. Learn. Within 10 working days write a post-incident report: timeline, root cause, data affected, actions taken, and policy or control changes. File it under docs/security/incidents/ and review it at the next fortnightly review.

9.3 Testing

The plan is reviewed every six months (May and November) by the Director, walked through at least once a year as a tabletop exercise (scenario: leaked database credential), and reviewed again after any real incident. Each review is recorded in the fortnightly security review in the dashboard.

10. Backup and business continuity policy

11. Credential and secrets management policy

12. Endpoint and device policy

13. Contacts

Incident Management Point of Contact (IMPOC): Konstantin Theodoridis, Director, contact@tdnutrition.eu.

Privacy enquiries: contact@tdnutrition.eu.

Registered office: TD Nutrition Ltd, 20-22 Wenlock Road, London N1 7GU, United Kingdom.