Skip to main content

What IAM permissions does Cado use?

The Cado platform requires specific IAM permissions to operate effectively, depending on the tasks you need it to perform. Below is a clear breakdown of the different permission groups and their purposes:

Permission GroupPurpose
Core Platform and Worker Operations
RequiredForStartupEssential for core platform operation and starting/stopping workers.
RequiredForStartup2Additional permissions for core platform and worker management.
EC2 and Core Platform Permissions
RequiredForEC2ImportAndCorePlatformRequired to start/stop workers and acquire EC2 volumes.
Health Checks
RequiredToCheckPolicyNeeded for health checks to ensure safe operation of the core platform.
Health Check Operations
RequiredForHealthChecksNeeded for performing health checks to ensure core platform safety.
Native Updates with ALB
Cross-Account Operations
RequiredForCrossAccountAccessRequired for cross-account operations between AWS accounts.
Accessing Cado S3 Bucket
RequiredToAccessCadoS3BucketAllows access to the Cado S3 bucket for storing and retrieving forensic data.
S3 Bucket and Forensic Preservation
RequiredForAcquireToS3Permissions for forensic preservation to S3 buckets and maintaining the chain of custody (can be scoped to "CadoS3BucketAlt").
S3 Readiness Checks
RequiredForS3ReadinessEnsures the platform is ready by verifying safe S3 operations.
Memory Forensics via SSM
RequiredForMemoryForensicsEnables triage acquisitions that include memory acquisition using SSM.
KMS Encrypted EC2 Imports
RequiredForKmsEncryptedEc2ImportAllows acquisition of KMS-encrypted EBS volumes for EC2 systems.
RequiredForCrossAccountDefaultKmsEncryptedEc2ImportNeeded to acquire KMS-encrypted EBS volumes from other AWS accounts.
Temporary KMS Resource Operations
RequiredForOperationsOnTemporaryKMSResourcesduringDefaultEncryptedEc2ImportRequired to handle temporary KMS resources by generating keys for re-encryption during encrypted EC2 volume acquisitions.
Lambda Function Imports
RequiredForLambdaImportPermissions for importing Lambda functions, CloudWatch logs, and container images if applicable.
ECS Imports
RequiredForEcsImportAllows importing ECS clusters, services, and tasks. ExecuteCommand is needed to run commands on ECS tasks.
EKS Imports
RequiredForEKSImportRequired for acquiring EKS clusters.
EC2 and AMI Imports
RequiredForEc2ImportAndAmiImportPermissions for acquiring EC2 instances, volumes, snapshots, CloudTrail logs, IAM roles, policies, and SSM documents.
RequiredForEc2ImportAndAmiImport2Scoped permissions for handling copied volumes created by Cado during EC2 and AMI imports.
EC2 Isolation
RequiredForResponseActionIsolateEc2Required to isolate EC2 instances (optional if isolation is not needed).
AMI Imports
RequiredForAmiImportsPermissions scoped to the Cado copy of the AMI during import.
RequiredForNativeUpdatesWithALBRequired for performing native updates using an Application Load Balancer (ALB), optional if ALB is not used.
GuardDuty Monitoring
RequiredForGuardDutyMonitoringNeeded for GuardDuty monitoring, optional if not using GuardDuty automation.
Automated Error Reporting
RequiredForAutomatedErrorReportingAllows automated error logs to be sent to Cado (optional if logs are shared manually).
One-Time KMS Key Creation
RequiredForFirstTimeKMSDefaultencryptedImportCanBeDeletedAfterUsed once to create a Cado-specific KMS key for default encrypted EBS volumes, can be deleted afterward.
AWS Organizations Account Discovery
RequiredForAWSOrganizationsDiscoverAccountsRequired to discover accounts in AWS Organizations, optional if AWS Organizations is not being used.

Customizing the Cado Cross-Account Policy

The Cado Cross-Account Policy includes permissions to acquire various AWS resources. You can customize it by removing permissions that are not needed for your use case:

  • EC2 permissions are required to acquire EC2 systems.
  • KMS permissions are needed for acquiring KMS-encrypted volumes.
  • SSM permissions are necessary for triage captures.
  • S3 permissions allow importing from S3 buckets in other accounts.
  • CloudTrail permissions enable importing CloudTrail logs from other accounts.
  • ECS permissions are required to import ECS containers.
  • EC2 de-register permissions are needed for importing AMI images cross-account.

If you modify the Maximum session duration, note that the minimum currently supported by Cado is 1 hour.

Using an Existing IAM Role

If you prefer using an existing IAM role with proper resource access, update the trust relationship with the following JSON, replacing 111111111111 with the ID of your primary AWS account:

{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "111111111111"
},
"Action": "sts:AssumeRole",
"Condition": {}
}
]
}

You can further restrict this by specifying a specific Cado role rather than trusting the entire account. For more details, see the AWS documentation on IAM policy elements.