Docebo Connect + Amazon S3: content replication for SMEs
For a European SME running Docebo as the learning platform, content storage is the unglamorous part of the deployment that either quietly works for years or becomes a billing surprise at the 18-month mark. A well-configured Docebo Connect + Amazon S3 integration moves course assets — SCORM packages, xAPI bundles, MP4 recordings — into storage the SME owns, with EU-region residency controls, lifecycle archival, and a predictable cost curve. This guide covers what the S3 integration actually delivers, the IAM setup that survives a security review, and the GDPR anchors that apply to a Docebo-S3 flow.
What the integration actually does
At steady state, Docebo Connect for S3 runs in two modes an SME can combine:
- Replication on upload. Every SCORM package, xAPI course, and video added to Docebo is copied to a designated S3 bucket on ingest. The canonical copy stays in Docebo for learner delivery; S3 holds a durable backup.
- CDN origin. S3 serves as the origin for content delivery to learners across Europe, reducing LMS-side egress and shortening load times for reps in Madrid, Milan, or Munich alike. Pair it with CloudFront or a regional CDN if latency matters.
The operational outcomes that tend to matter for an SME of 40–80 employees:
- Storage cost flattens. Docebo tier storage is per-gig-per-month; S3 Standard is cheaper at volume, and S3 Standard-IA or Glacier make the archive tail essentially free.
- Content survives an LMS incident. If Docebo has a regional outage or an accidental admin delete, the S3 copy is the recovery path.
- Data residency is provable. Course content tied to EU employees lives in
eu-west-1(Ireland) oreu-central-1(Frankfurt). Nothing crosses tous-east-1by accident.
The authoritative Docebo reference for the connector sits on help.docebo.com; the product overview is at docebo.com.
Prerequisites for a clean deployment
Five items we confirm in week 1 of an SME S3 integration build:
- An active AWS account with S3 access. For SMEs without AWS yet, opening the account, enabling MFA on root, and creating a billing alarm is a half-day of work that should not slip.
- One or more S3 buckets created in the EU region that matches the SME’s data residency position. For a Spanish SME under ENS,
eu-west-1oreu-central-1are the defensible choices. - A dedicated IAM user — not the root account and not a developer’s personal login — with a programmatic-access key pair. Store the secret key in a vault, not a spreadsheet.
- An IAM policy scoped to exactly the buckets and actions the integration needs. The default “S3 Full Access” managed policy is too broad for an LMS integration.
- Bucket encryption enabled (SSE-S3 at minimum, SSE-KMS if the SME has a key management story). Versioning enabled. Object Lock considered if the SME has a hard retention requirement.
IAM policy shape that holds up in production
The IAM policy we ship for Docebo → S3 access is narrow by design. A minimum viable policy for a single-bucket setup:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:GetObject",
"s3:PutObject",
"s3:DeleteObject",
"s3:GetObjectVersion",
"s3:ListBucket",
"s3:GetBucketLocation"
],
"Resource": [
"arn:aws:s3:::sme-docebo-content",
"arn:aws:s3:::sme-docebo-content/*"
]
}
]
}
Two rules we apply: never use s3:* or * as the Action (a future audit will flag it), and never scope Resource to * (prevents accidental writes to a different bucket in the same account). If the SME wants versioning-aware deletes, add s3:DeleteObjectVersion explicitly — but confirm with compliance whether that matches the retention policy.
Sample CLI calls for sanity testing
Before switching on the scheduled replication, we run two read-only calls against the S3 bucket to confirm the IAM user has the expected access and no more:
# Confirm the bucket lists and the region matches
aws s3api get-bucket-location \
--bucket sme-docebo-content \
--profile docebo-integration
# Upload a test object (must succeed)
aws s3 cp test.txt s3://sme-docebo-content/test.txt \
--profile docebo-integration
# Try a cross-bucket write (must fail — proves IAM scope holds)
aws s3 cp test.txt s3://other-bucket/test.txt \
--profile docebo-integration
If the first call returns a region other than the configured one, the bucket was created in the wrong region and cannot be moved — recreate it. If the third call succeeds, the IAM policy is too broad and must be tightened before production.
GDPR and data-residency anchors
A Docebo → S3 content flow is a processing activity under GDPR and has to appear in the SME’s Article 30 Record of Processing. Three items to get right:
- Data residency. EU bucket region is not optional for most SMEs serving EU employees. Document the region choice and the reason in the Record of Processing; an auditor will ask.
- Retention. S3 lifecycle policies should match the SME’s documented retention position — for example, move SCORM packages older than 24 months to Glacier, delete after 7 years. Don’t leave the bucket on “keep everything forever” unless that is the explicit policy.
- Access control. The IAM user is the access path; its credentials belong in a vault, and the audit trail for every key rotation belongs in the SME’s security log.
For SMEs under the Spanish Esquema Nacional de Seguridad, S3 bucket access logs + AWS CloudTrail are directly useful as evidence for traceability controls. Switch both on before go-live; retrofitting CloudTrail after an incident is a known painful experience.
Realistic deployment timeline
For an SME with a fresh AWS account and a single Docebo instance, the S3 integration lands in 5–8 days of calendar time: day 1–2 for AWS account setup and bucket creation, day 3–4 for IAM + sandbox replication, day 5 for production cutover, days 6–8 for monitoring and the first lifecycle-policy review. For eligible Spanish SMEs, the Kit Digital scheme covers up to €12,000 for digitalisation projects, and this integration fits comfortably inside a broader Docebo deployment under that voucher.
Ready to get started?
Working on this yourself? J4SGON S.L. delivers Docebo Connect, HRIS, SSO and migration work for European organisations — see what a scoped engagement covers or describe your project and we will reply with a written scope.
Tell us what you are integrating or migrating
Send the platform, the systems involved and where you are stuck. You get a written scope back — phases, deliverables and what is out of scope — before anything is billed.