🚧 Under construction — VoTechWorks is being built. A free tech program — complimentary, as our commitment to get America working.
voTechWorksGrade 13 · a vocational technology learning center, by urbanicity
newSchoolWorks.com › VoTechWorks › Technology & Design › Data Management / Database Administration › Cloud Storage for Database Administrators › Lesson 3
TEC-DATA86-08 · Lesson 3 · 10 clock hours · lab

Cloud Object Storage and File-Based Data Movement

Objective. Students will create and configure cloud object storage buckets (S3, Azure Blob, GCS), apply access policies, and use storage as a staging area for database imports and exports.

⚠ Pending professional review

This lesson, its worked examples and its practice questions has not yet been verified by an industry-certified professional or by a certification or approval body. It is a study draft and may contain errors. Do not use it as instructions for work on a job site or on live equipment. Always follow your instructor, your supervising professional, and current official references and regulations.

VoTechWorks program approval and accreditation are still in progress. Credentials are issued only by the certifying bodies named in each program, after their own exams.

Cloud Object Storage and File-Based Data Movement

Cloud object storage is one of the most widely used staging layers in modern database administration. Rather than moving data directly between systems, DBAs frequently land files in object storage first, then load them into a target database. This pattern decouples the source from the destination, provides a durable intermediate copy, and supports audit trails. The three dominant services are Amazon S3, Azure Blob Storage, and Google Cloud Storage (GCS).

What Is Object Storage?

Object storage organizes data as discrete objects—each with a unique key, the data payload, and metadata—rather than as files in a directory tree or blocks on a disk. There is no true folder hierarchy; what appears to be a folder path is part of the object key. Objects are retrieved through HTTP-based APIs or CLI tools. Because each object is individually addressable and independently replicated, object storage is highly durable and scales without the DBA managing underlying hardware.

Amazon S3 Core Concepts

An S3 bucket is the top-level container. Bucket names must be globally unique across all AWS accounts. Two features every production bucket should enable are versioning and server-side encryption (SSE).

Access is controlled through a combination of bucket policies (JSON documents attached to the bucket) and IAM policies (attached to users or roles). The principle of least privilege applies: grant only the specific actions (e.g., `s3:GetObject`, `s3:PutObject`) on the specific bucket or prefix that each principal needs.

AWS RDS for PostgreSQL supports importing CSV or delimited files directly from S3 using the `aws_s3` extension. The RDS instance must have an IAM role with S3 read permission attached to it.

Azure Blob Storage Core Concepts

Azure Blob Storage organizes objects inside containers within a storage account. Access level choices at container creation include private (no anonymous access), blob (anonymous read for blobs only), and container (anonymous read for the container and blobs). For database staging, always choose private access.

A Shared Access Signature (SAS) token is a signed URI that grants time-limited, permission-scoped access to a storage resource without exposing the account key. When generating a SAS token, you specify the allowed operations (read, write, delete), the start time, and the expiry time (TTL). A short TTL—measured in hours, not weeks—limits the window of exposure if the token is compromised. Never embed a SAS token in application code or commit it to source control.

Azure SQL Database supports exporting a `.bacpac` file directly to Blob Storage through the Azure portal or the `az sql db export` CLI command. This export is a full logical backup suitable for migration and archiving.

Google Cloud Storage Core Concepts

GCS uses buckets and objects with a flat namespace, similar to S3. Access is managed through IAM roles (such as `roles/storage.objectViewer` or `roles/storage.objectAdmin`) applied at the project, bucket, or object level. Uniform bucket-level access is the recommended setting; it disables per-object ACLs and simplifies auditing.

Storage Tiers and Cost Awareness

All three providers offer multiple storage classes designed to balance cost against retrieval speed and frequency.

| Provider | Hot / Frequent | Cool / Infrequent | Archive |

|---|---|---|---|

| AWS S3 | Standard | Standard-IA | Glacier / Glacier Deep Archive |

| Azure Blob | Hot | Cool | Archive |

| GCS | Standard | Nearline / Coldline | Archive |

Infrequent-access and archive tiers charge lower storage rates but add retrieval fees and sometimes minimum storage durations. Database export files that are needed quickly (for restore testing or compliance audits) should stay in a hot or standard tier. Files retained purely for long-term compliance can move to archive tiers to reduce monthly costs. Use the provider's publicly available pricing calculators to model costs before committing data to a tier.

Security and Access Control Practices

Cloud object storage is a frequent source of data breaches when misconfigured. Apply these controls consistently:

1. Block all public access at the account or bucket level unless you have an explicit, reviewed reason to allow it.

2. Enable versioning and Object Lock for backups that must not be deleted (WORM protection).

3. Enable access logging (S3 server access logs, Azure Storage diagnostics, GCS audit logs) so that every read and write is recorded.

4. Rotate credentials and SAS tokens regularly; use short TTLs.

5. Encrypt in transit: all three providers enforce HTTPS by default for API calls; never disable TLS.

6. Apply the principle of least privilege: RDS import roles need `s3:GetObject` only on the specific prefix—not `s3:*` on all buckets.

There are no physical lockout/tagout hazards in cloud console work, but logical access controls serve the same protective purpose: limiting who can modify, delete, or expose data.

Data Movement Workflow Summary

A typical database export-stage-import workflow follows this pattern: (1) the database engine exports data to a structured file format (CSV, Parquet, `.bacpac`); (2) that file is uploaded to object storage with encryption and access controls verified; (3) the target database reads from object storage using a service account or role that has only the minimum required permissions; (4) row counts or checksums are verified to confirm completeness. This workflow is repeatable, auditable, and avoids direct network connections between source and target systems.

Key terms10

Object storageA cloud storage model that manages data as discrete objects—each with a unique key and metadata—accessed via HTTP APIs rather than a file system hierarchy.
S3 bucketThe top-level container in Amazon S3 that holds objects; bucket names must be globally unique across all AWS accounts.
Server-side encryption (SSE)Encryption of objects at rest performed by the cloud storage service; SSE-S3 uses service-managed keys while SSE-KMS uses AWS Key Management Service keys with an audit trail.
VersioningA bucket-level feature that retains every version of every stored object, protecting against accidental deletion or overwrite.
Shared Access Signature (SAS) tokenA signed URI in Azure Blob Storage that grants time-limited, permission-scoped access to a storage resource without exposing the storage account key.
Storage tierA pricing and performance class for stored objects (such as Standard, Infrequent Access, or Archive) that trades lower storage cost for higher retrieval fees or latency.
Principle of least privilegeThe security practice of granting each user, role, or service only the minimum permissions necessary to perform its intended function.
Bucket policyA JSON document attached directly to an S3 bucket that defines which AWS principals can perform which actions on the bucket and its objects.
Uniform bucket-level access (GCS)A GCS setting that disables per-object ACLs and enforces access control exclusively through IAM roles applied at the bucket level, simplifying audit and administration.
Time-to-live (TTL)The duration after which a credential, token, or cached resource expires and is no longer valid; used with SAS tokens to limit the window of exposure.

Worked examples4

1. A DBA needs to estimate the monthly storage cost for keeping 500 GB of PostgreSQL CSV exports in Amazon S3 Standard-IA. AWS S3 Standard-IA is priced at $0.0125 per GB per month (first 50 TB). What is the monthly storage charge?
  1. Identify the volume: 500 GB.
  2. Identify the per-GB rate for S3 Standard-IA: $0.0125 per GB per month.
  3. Multiply: 500 GB × $0.0125/GB = $6.25.
  4. Note that Standard-IA also charges a per-GB retrieval fee each time data is accessed, which is not included in the storage charge alone.
Answer: $6.25 per month for storage only, before any retrieval fees.
2. A team exports 200 GB of database backups to Azure Blob Cool tier (priced at $0.01 per GB per month for storage) and retrieves 20 GB during the month for a restore test (retrieval priced at $0.01 per GB). What is the total monthly bill for storage plus retrieval?
  1. Calculate storage cost: 200 GB × $0.01/GB = $2.00.
  2. Calculate retrieval cost: 20 GB × $0.01/GB = $0.20.
  3. Add the two charges: $2.00 + $0.20 = $2.20.
  4. Remember that Azure Cool tier also enforces a minimum storage duration per object (30 days); early-deletion fees may apply to objects deleted before that period, but are not triggered in this scenario.
Answer: $2.20 total for the month (storage $2.00 + retrieval $0.20).
3. A DBA uploads three versions of a 10 GB file to a versioning-enabled S3 bucket in the Standard tier ($0.023 per GB per month). How much storage is billed at month-end if all three versions remain?
  1. With versioning enabled, each version is stored as a full, independent copy.
  2. Total stored data: 3 versions × 10 GB = 30 GB.
  3. Calculate cost: 30 GB × $0.023/GB = $0.69.
  4. Conclusion: versioning multiplies storage consumption; lifecycle policies can move or expire non-current versions to control costs.
Answer: $0.69 per month for all three retained versions.
4. A DBA compares storing 1 TB (1,024 GB) of archive-grade export files in GCS Archive tier at $0.0012 per GB per month versus GCS Standard at $0.020 per GB per month. How much does the team save per month by choosing Archive?
  1. Calculate Standard cost: 1,024 GB × $0.020 = $20.48.
  2. Calculate Archive cost: 1,024 GB × $0.0012 = $1.23 (rounded to two decimal places).
  3. Calculate savings: $20.48 − $1.23 = $19.25 per month.
  4. Note: GCS Archive tier has a 365-day minimum storage duration and charges retrieval fees; this comparison covers storage charges only.
Answer: The team saves approximately $19.25 per month on storage charges by using GCS Archive instead of Standard.

The math in this lesson1

Learners multiply storage GB by a per-GB monthly rate to estimate cloud cost.
6.RP.3
In class: Lab: create an Amazon S3 bucket with versioning and server-side encryption enabled; upload a CSV data file; use AWS RDS import from S3 to load data into a PostgreSQL table; verify row counts. · Lab: create an Azure Blob Storage container with private access; generate a Shared Access Signature (SAS) token with a limited TTL; export a database backup from Azure SQL Database to the container and confirm the file appears. · Guided discussion and written exercise: compare S3, Azure Blob, and Google Cloud Storage pricing tiers (Standard, Infrequent Access, Archive equivalents); students complete a cost-estimation worksheet using publicly available pricing pages for a defined workload scenario.
Materials: AWS S3 console and AWS CLI; Azure Blob Storage and Azure CLI; Google Cloud Storage console; sample CSV dataset (provided); cloud pricing calculators (publicly available); spreadsheet application
Check: Lab report showing screenshots of bucket configuration (encryption, access policy, versioning) and successful data load with row-count verification; pass requires correct encryption and access settings plus matching row counts.

Practice check8

Answer each question, then check it. Nothing is recorded; this is your own practice.

Cloud database security and storage configuration
1. A DBA creates an Amazon S3 bucket to stage database exports and wants to ensure that objects are encrypted at rest and that key usage is recorded in AWS CloudTrail. Which encryption option should be selected?
Cloud storage management and data protection
2. Which S3 bucket feature retains all previous versions of an object, protecting against accidental deletion or overwrite?
Azure cloud storage security
3. A DBA needs to give an external vendor temporary read access to a single Azure Blob Storage container without sharing the storage account key. Which mechanism is most appropriate?
AWS RDS and S3 integration
4. When importing a CSV file from Amazon S3 into an Amazon RDS PostgreSQL instance using the aws_s3 extension, what must be configured on the RDS instance?
Cloud storage cost optimization
5. A team stores 300 GB of database export files in S3 Standard and wants to reduce costs for files that are accessed less than once per month. Which storage class change best achieves this goal while keeping retrieval times under one second?
Database security and IAM policy design
6. According to the principle of least privilege, which IAM policy is most appropriate for an RDS service role that only needs to import CSV files from a specific S3 prefix?
Azure database backup and storage operations
7. A DBA exports an Azure SQL Database backup as a .bacpac file to Azure Blob Storage. After the export completes, which step verifies that the export file was successfully written?
Google Cloud Storage security configuration
8. Which Google Cloud Storage setting disables per-object ACLs and enforces access control exclusively through IAM roles at the bucket level, which is the configuration Google recommends for simplifying security audits?
Record this lesson on my transcript. Sign in with your key and enrollment email to record lessons (enroll free if you have no key). This page stays open to read and practise.