cloud engineering

Cloud environments your own team can run on Monday morning.

We plan, build, migrate and run AWS, Azure and Google Cloud environments in Terraform. Early on, we also decide how every pipeline, pod and VM proves who it is. Nothing should depend on an access key someone pasted into a secrets store.

platforms
cloud / landing zones & pipelines plan: no drift
CODEDELIVERYCLOUDS GitHub pull request Terraform modules · policy Pipeline OIDC to cloud Vault dynamic secrets Kubernetes workload identity AWS Control Tower Azure landing zones Google Cloud org policies
IaCpolicy as codeOIDC federationcost tags
in short·15-second read

Cloud engineering is the design, build and operation of the infrastructure your applications run on.

Cohash plans cloud strategy, migrates workloads to AWS, Azure and Google Cloud, builds landing zones and pipelines in Terraform, and runs day-two operations and cost reporting. We replace stored cloud keys with workload identity federation, so pipelines and services authenticate with short-lived tokens.

Ask an engineer facts checked 2026-10-20 · 6 sources
platforms
you probably need this if
  • Cloud accounts were opened team by team and nobody can say which guardrails apply to which one.
  • Pipelines still deploy with access keys someone created years ago, and nobody has rotated them since.
  • The monthly cloud bill arrives and no one can tie the spend to an application or owner.
the story · cloud engineering

From the first call to a setup your own team can run.

Here's what usually prompts a call about your Cloud Engineering, what we do about it and in which order, and where you end up.

  1. chapter 01 · where it hurts

    Why teams reach out

    • Cloud accounts were opened team by team and nobody can say which guardrails apply to which one.
    • Pipelines still deploy with access keys someone created years ago, and nobody has rotated them since.
    • The monthly cloud bill arrives and no one can tie the spend to an application or owner.
  2. chapter 02 · what we change

    How we solve it

    • Strategy and landing zones
    • Migration
    • Operations and cost control
    • DevSecOps
    • Workload identity
  3. chapter 03 · where you end up

    What changes

    • Every account reports to one trail and sits under one set of guardrails.
    • Finance reads one monthly report with both clouds in the same columns.
what we do

Where we spend the hours

5 areas of work, each one done by an engineer who has run it in production.

  1. A decision for each workload (rehost, replatform, refactor, replace or retire), plus the account structure, network layout and policy guardrails it will land in.

  2. Dependency maps, wave plans and rehearsed cutovers with a tested rollback. On AWS we plan in AWS Transform, which AWS points to now that Migration Hub is closed to new customers.

  3. We tie monitoring to runbooks, schedule patching and time restore tests, and cost reports come in the FinOps FOCUS format so bills from different clouds line up column for column.

  4. Build pipelines that scan, sign and deploy. Put the checks in the pull request, where developers will actually see them.

  5. GitHub Actions, Kubernetes pods and VMs get short-lived credentials through OIDC federation. We use Entra workload identity federation, Google Cloud Workload Identity Federation, EKS Pod Identity, and IAM Roles Anywhere for servers outside AWS.

capability 01 / 05in production

Strategy and landing zones

A decision for each workload (rehost, replatform, refactor, replace or retire), plus the account structure, network layout and policy guardrails it will land in.

capability 02 / 05in production

Migration

Dependency maps, wave plans and rehearsed cutovers with a tested rollback. On AWS we plan in AWS Transform, which AWS points to now that Migration Hub is closed to new customers.

capability 03 / 05in production

Operations and cost control

We tie monitoring to runbooks, schedule patching and time restore tests, and cost reports come in the FinOps FOCUS format so bills from different clouds line up column for column.

capability 04 / 05in production

DevSecOps

Build pipelines that scan, sign and deploy. Put the checks in the pull request, where developers will actually see them.

capability 05 / 05in production

Workload identity

GitHub Actions, Kubernetes pods and VMs get short-lived credentials through OIDC federation. We use Entra workload identity federation, Google Cloud Workload Identity Federation, EKS Pod Identity, and IAM Roles Anywhere for servers outside AWS.

typical situations

Situations we walk into

We pieced these together from Cloud Engineering situations that come up a lot. They're patterns. You won't find a specific client in them.

case file 01

Forty AWS accounts opened by teams, a third outside AWS Organizations

composite · not a client story
  1. Beforethe situation

    Product teams opened AWS accounts over several years. About forty exist, a third sit outside AWS Organizations, console IAM users with passwords are common, and CloudTrail is on in some accounts and off in others.

  2. What we dothe work

    Invite the stray accounts into Organizations and turn on an organization trail first. Then group accounts into OUs by environment, apply a short SCP set (deny leaving the org, deny stopping CloudTrail, region limits) and move console users to IAM Identity Center behind Entra ID or Okta.

  3. Afterwhere you end up

    Every account reports to one trail and sits under one set of guardrails. People sign in through the corporate identity provider, and new accounts come out of a Terraform pipeline with the baseline already applied.

case file 02

Azure under an Enterprise Agreement, data platform on AWS, two invoices

composite · not a client story
  1. Beforethe situation

    Microsoft workloads run in Azure, the data platform runs in AWS, and finance gets two invoices in two formats. Tag keys differ between the clouds, so nobody can show spend per application or per owner.

  2. What we dothe work

    Agree a tag schema with finance covering application, owner, environment and cost center. Enforce it with Azure Policy and AWS tag policies, switch both clouds to FOCUS-format cost exports, load them into one table and build showback by application. Untagged spend gets its own line.

  3. Afterwhere you end up

    Finance reads one monthly report with both clouds in the same columns. Application owners see their own spend, and untagged resources show up on the report with a name next to them.

case studies

Cloud Engineering case studies

All case studies
architecture

How a cloud estate fits together from code to running workloads

Engineers change infrastructure through Terraform in a pipeline that authenticates to the cloud with short-lived OIDC tokens. The landing zone applies guardrails to every account, and operations feeds cost, drift and alert data back to owners.

How a cloud estate fits together from code to running workloads Engineers change infrastructure through Terraform in a pipeline that authenticates to the cloud with short-lived OIDC tokens. The landing zone applies guardrails to every account, and operations feeds cost, drift and alert data back to owners. 01 · CHANGE 02 · LANDING ZONE 03 · WORKLOADS 04 · OPERATIONS pull request OIDC token policy SAML / OIDC sign-in deploy deploy metrics and logs billing data Git repository Terraform · app code CI/CD pipeline GitHub Actions · GitLab ·Azure DevOps Landing zone accounts · subscriptions ·projects Guardrails SCPs · Azure Policy · orgpolicies Ex Workforce identity Entra ID · Okta Applications VMs · containers ·serverless Managed data services RDS · Azure SQL · CloudSQL Monitoring and alerts SLOs · runbooks Cost reporting FOCUS exports · tags
Read the diagram as text
  1. Git repository → CI/CD pipeline: pull request
  2. CI/CD pipeline → Landing zone: OIDC token
  3. Guardrails → Landing zone: policy
  4. Workforce identity → Landing zone: SAML / OIDC sign-in
  5. Landing zone → Applications: deploy
  6. Landing zone → Managed data services: deploy
  7. Applications → Monitoring and alerts: metrics and logs
  8. Managed data services → Cost reporting: billing data
01Which cloud should we standardize on?

Usually the one your team, your identity provider and your main software vendors already support well. We compare clouds on the workloads you actually run, looking at licensing terms, the managed services you need, data residency and where your data platform lives. A second cloud is worth it for specific workloads, rarely as a default.

02Do you work on AWS, Azure and Google Cloud?

Yes. Terraform is what we write infrastructure in across all three, although we use CloudFormation or Bicep when your team already standardizes on them.

03What drives the cost of a cloud engagement?

Mainly the number of workloads, how tangled their dependencies are, your compliance scope and whether you want us to operate the environment afterward. A short discovery gives us enough to estimate honestly.

04Can you take over an environment another firm built?

Yes. We start with a review of infrastructure-code drift, IAM roles and service principals, network rules and spend, then agree what to fix first.

05Can you build on our existing AWS Control Tower or Azure landing zone?

Yes. Most estates already have something in place. We review what it actually enforces, extend it in Terraform where it falls short, and avoid rebuilding accounts and subscriptions that already work.

related

Often paired with

Projects on Cloud Engineering usually end up touching one of these, so they're worth a look.

sources 6 sources linked last checked 2026-10-20 content fingerprint 3fa3d3fb
  1. 01AWS: Migration Hub availability changedocs.aws.amazon.com ↗
  2. 02FinOps Foundation: FOCUS specificationfocus.finops.org ↗
  3. 03Microsoft Learn: Workload identity federationlearn.microsoft.com ↗
  4. 04Google Cloud: Workload Identity Federationcloud.google.com ↗
  5. 05AWS: EKS Pod Identitydocs.aws.amazon.com ↗
  6. 06AWS: IAM Roles Anywheredocs.aws.amazon.com ↗
Reviewed by the Cohash team Product names are trademarks of their owners. how we handle facts and data →
next step

Tell us what you're running. We'll tell you what we'd do first.

A 30-minute working session with a senior engineer. No slides.

useful to bring
  • The platform and the version you're on
  • Where you need to get to, and by when
  • What's custom: rules, plugins, integrations
  • Any audit finding or deadline driving it