Skip to main content

Cloud Service Integrations

Overview

Cloud service integrations connect Bastion to your cloud infrastructure providers. Monitor assets, collect compliance evidence, and enforce security policies across your cloud environments.

Supported Providers

Benefits

FeatureBenefit
Asset DiscoveryAutomatic cloud resource inventory
Configuration AuditDetect misconfigurations and drift
Compliance EvidenceCollect evidence for frameworks automatically
Activity MonitoringTrack changes and access across providers

AWS

Prerequisites

  • AWS account with IAM permissions
  • Ability to deploy CloudFormation stacks

Setup Steps

  1. Deploy CloudFormation Template

    Click the provided CloudFormation link in Bastion. This deploys a stack that creates a cross-account IAM role with read-only access.

  2. Acknowledge IAM Resources

    In the AWS CloudFormation console, acknowledge that the template creates IAM resources.

  3. Copy Role ARN

    Once the stack is created, copy the RoleArn from the stack outputs.

  4. Select Regions

    Choose one or more AWS regions to monitor.

  5. Test Connection

    Bastion validates the role and begins asset discovery.

Monitored Resources

ResourceChecks
IAMUsers, roles, policies, MFA status
EC2Security groups, instances
S3ACLs, versioning, encryption
RDSDatabase configurations
LambdaFunction configurations
EKSCluster settings
CloudTrailAudit log configuration

Connection Details

Bastion uses a cross-account IAM role with an external ID for secure access. The CloudFormation template creates a least-privilege policy granting read-only access to the resources above. Multi-region monitoring is supported — select all regions where you have infrastructure.

Azure

Prerequisites

  • Azure subscription with admin access
  • Access to Microsoft Entra (Azure AD)

Setup Steps

  1. Register Application

    In the Azure portal, go to Microsoft Entra > App registrations and register a new application named Bastion Compliance App. Select Accounts in this organizational directory only.

  2. Create Client Secret

    In the app's Certificates & secrets section, create a new client secret. Set expiration to 24 months. Copy the secret value immediately — it cannot be retrieved later.

  3. Assign Reader Role

    Go to your subscription's Access control (IAM) and assign the Reader role to the application.

  4. Connect in Bastion

    Enter the Tenant ID, Application (Client) ID, Client Secret, and Subscription ID.

  5. Test Connection

    Bastion validates the Reader role and begins resource discovery.

Required Credentials

FieldDescription
Tenant IDEntra Directory (tenant) ID
Client IDApplication (client) ID
Client SecretApplication secret value
Subscription IDAzure subscription ID

Monitored Resources

ResourceChecks
SQL/PostgreSQL/MySQLDatabase configurations
Storage AccountsBlob and file service settings
AKSKubernetes cluster configurations
Network Security GroupsFirewall rules
warning

The client secret expires after the configured duration. The integration will disconnect when the secret expires — set a reminder to rotate it before expiration.

GCP

Prerequisites

  • GCP project with admin access
  • IAM Service Account Credentials API enabled
  • Cloud Resource Manager API enabled

Setup Steps

  1. Create Service Account

    Create a service account named bastion-security-auditor and assign the Viewer and Security Reviewer roles.

  2. Enable APIs

    Enable the IAM Service Account Credentials API and Cloud Resource Manager API on your project.

  3. Create Workload Identity Federation Pool

    Create a pool named Bastion Auditor and add an AWS provider using Bastion's AWS account ID.

  4. Configure Attribute Mappings

    Map google.subject to assertion.arn and configure the AWS role attribute mapping.

  5. Grant Impersonation Access

    Allow the federated identity to impersonate the service account.

  6. Connect in Bastion

    Provide the audience URI and service account impersonation URL.

Required Roles

RolePurpose
roles/viewerInventory project resources
roles/iam.securityReviewerReview IAM policies

Required APIs

APIPurpose
IAM Service Account CredentialsWorkload Identity Federation
Cloud Resource ManagerProject and resource access
Compute EngineInstance inventory
Cloud SQL AdminDatabase configurations
Cloud StorageBucket configurations
Kubernetes EngineCluster settings
Cloud Run AdminServerless configurations
info

GCP uses Workload Identity Federation instead of static service account keys. This means no long-lived credentials are stored — Bastion authenticates via AWS-to-GCP federation.

OVH

Prerequisites

  • OVHcloud account with admin access

Setup Steps

  1. Create API Token

    Visit the OVH API token creation page. The link is provided in Bastion with pre-configured permissions.

  2. Fill Application Details

    Set the application name to Bastion Compliance and validity to Unlimited.

  3. Copy Credentials

    Copy the Application Key, Application Secret, and Consumer Key. Store them securely — the secret and consumer key are only shown once.

  4. Connect in Bastion

    Enter all three credentials.

  5. Test Connection

    Bastion validates the API key and begins resource discovery.

Required Credentials

FieldDescription
Application KeyOVH API application key
Application SecretOVH API application secret
Consumer KeyOVH API consumer key

Required Permissions

MethodScopePurpose
GET*Read-only access to all resources
POST/cloud/project/*/userCloud project user management

Monitored Resources

ResourceChecks
Cloud ProjectsProject configurations
DatabasesPostgreSQL, MySQL, MongoDB, Redis, Kafka
Object StorageS3-compatible storage settings
InstancesCompute instance configurations
FirewallsFirewall rules

Scaleway

Prerequisites

  • Scaleway account with admin access

Setup Steps

  1. Create Application

    In the Scaleway IAM console, create an application named bastion-security-auditor.

  2. Create Policy

    Create a policy named bastion-security-auditor-policy scoped to all current and future projects.

  3. Assign Permissions

    Add AllProductsReadOnly, ProjectReadOnly, and IAMReadOnly permission sets to the policy, then attach the policy to the application.

  4. Generate API Key

    Generate an API key for the application with expiration set to Never.

  5. Connect in Bastion

    Enter the Access Key, Secret Key, and Organization ID.

Required Credentials

FieldFormat
Access KeySCWXXXXXXXXXXXXXXXXX
Secret KeyUUID format
Organization IDUUID format

Required Permissions

Permission SetPurpose
AllProductsReadOnlyRead-only access to all Scaleway products
ProjectReadOnlyList and read projects
IAMReadOnlyUser access controls and MFA verification

Monitored Resources

ResourceChecks
RDBManaged database configurations
KubernetesCluster settings
InstancesCompute configurations
Security GroupsFirewall rules
Object StorageBucket settings

Digital Ocean

Prerequisites

  • DigitalOcean account with admin access

Setup Steps

  1. Authorize Bastion

    Click Allow Bastion to access your Digital Ocean account in Bastion. You will be redirected to DigitalOcean's OAuth consent screen.

  2. Grant Access

    Approve read-only access to your DigitalOcean infrastructure.

  3. Automatic Connection

    Bastion automatically exchanges the authorization for access tokens and begins resource discovery.

Connection Details

DigitalOcean uses OAuth 2.0 with automatic token refresh. Bastion requests read-only scope — no write access to your infrastructure. Tokens are refreshed automatically before expiration.

Monitored Resources

ResourceChecks
DropletsFirewall rules, SSH restrictions
AppsHTTPS enforcement, database encryption
DatabasesEncryption, trusted sources, backups
Load BalancersHTTPS redirect, health checks
AlertsCPU, memory, storage monitoring policies

Compliance Evidence

Cloud integrations provide evidence for:

ControlEvidence
Asset ManagementCloud resource inventory
Access ControlIAM policies and audit logs
Data ProtectionEncryption and storage configuration
Logging & MonitoringActivity logs and alerts

Troubleshooting

Connection Failed
  • Verify credentials or role configuration
  • Check network connectivity and firewall rules
  • Confirm API is enabled on the provider
  • Review permission grants
Resources Not Discovered
  • Verify account permissions cover target resources
  • Check region or project scope configuration
  • Review scan logs for errors
  • Confirm API quotas are not exceeded
Logs Not Syncing
  • Check audit logging is enabled on the provider
  • Verify log access permissions
  • Review sync schedule and history

Best Practices

Use Least Privilege

Only grant read-only permissions needed for monitoring. Avoid write access.

Connect All Environments

Include production, staging, and development accounts for full visibility.

Enable Provider Logging

Ensure audit logging (CloudTrail, Activity Logs, Audit Logs) is enabled before connecting.

Review Regularly

Check discovered assets frequently to catch shadow IT and unauthorized resources.

Next Steps