This guide is based on analysis of the real Nullify death-star-dast repository and provides production-ready templates for AWS integration.
- Nullify AWS Account ID:
NULLIFY-ACCOUNT-ID(provided by Nullify support) - Cross-account Role:
NULLIFY-ROLE-NAME(provided by Nullify support) - External IDs:
- CloudFormation:
YOUR-CLOUDFORMATION-EXTERNAL-ID(provided by Nullify support) - Terraform:
YOUR-TERRAFORM-EXTERNAL-ID(provided by Nullify support)
- CloudFormation:
- Role Naming Convention:
AWSIntegration-{CustomerName}-NullifyReadOnlyRole - S3 Bucket:
NULLIFY-S3-BUCKET(provided by Nullify support)
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ Your AWS │ │ Nullify AWS │ │ Kubernetes │
│ Account │ │ Account │ │ Cluster │
│ │ │ │ │ │
│ ┌─────────────┐ │ │ ┌─────────────┐ │ │ ┌─────────────┐ │
│ │ IAM Role │◄┼────┼─┤ Cross-Acc │ │ │ │ CronJob │ │
│ │ (ReadOnly) │ │ │ │ Role │ │ │ │ k8s- │ │
│ └─────────────┘ │ │ └─────────────┘ │ │ │ collector │ │
│ │ │ │ │ └─────────────┘ │
│ ┌─────────────┐ │ │ │ │ ┌─────────────┐ │
│ │ S3 Bucket │ │ │ │ │ │ IRSA │ │
│ │ (Optional) │ │ │ │ │ │ ServiceAcc │ │
│ └─────────────┘ │ │ │ │ └─────────────┘ │
└─────────────────┘ └─────────────────┘ └─────────────────┘
Use the exact Terraform template that Nullify provides:
cd terraform/
terraform init
terraform apply \
-var="customer_name=mycompany" \
-var="external_id=your-external-id-from-nullify"Features:
- ✅ Exact Nullify implementation - matches their production setup
- ✅ Comprehensive AWS service permissions (500+ actions)
- ✅ Generic configuration (contact Nullify support for actual values)
- ✅ Production-ready security settings
Use the enhanced Terraform templates for additional enterprise features:
cd terraform/
terraform apply \
-var="customer_name=mycompany" \
-var="external_id=your-external-id-from-nullify" \
-var="create_s3_bucket=true"Features:
- ✅ All official Nullify features
- ✅ Optional S3 bucket for integration artifacts
- ✅ Multi-environment support
- ✅ IRSA support for EKS
- ✅ Additional enterprise configurations
Use the basic Terraform templates for a minimal setup:
cd terraform/
terraform apply -var="customer_name=mycompany" -var="external_id=your-external-id-from-nullify"Deploy using the exact Nullify CloudFormation template:
cd cloudformation/
aws cloudformation deploy \
--template-file nullify-integration-role.yaml \
--stack-name nullify-aws-integration \
--parameter-overrides \
CustomerName=mycompany \
ExternalID=your-external-id-from-nullify \
--capabilities CAPABILITY_NAMED_IAMThe Helm chart deploys a CronJob-based collector similar to the real k8s-collector:
# Add the repository
helm repo add nullify https://your-github-username.github.io/aws-integration-setup
# Install with real configuration
helm install nullify-aws-integration nullify/nullify-aws-integration \
--set aws.roleArn="arn:aws:iam::YOUR-ACCOUNT:role/AWSIntegration-mycompany-NullifyReadOnlyRole" \
--set aws.externalId="your-external-id" \
--set nullify.apiToken="your-api-token" \
--set nullify.organizationId="your-org-id" \
--namespace nullify \
--create-namespaceFor EKS clusters, configure IAM Roles for Service Accounts:
# values-eks.yaml
serviceAccount:
annotations:
eks.amazonaws.com/role-arn: arn:aws:iam::YOUR-ACCOUNT:role/AWSIntegration-mycompany-NullifyReadOnlyRole
aws:
region: "us-east-1"
s3Bucket: "mycompany-nullify-k8s-collector"
collector:
schedule: "0 0 * * *" # Daily at midnight
dataCollection:
excludeNamespaces: "kube-system,kube-public"
metadataOnly: true- Obtain external ID from Nullify support
- Verify customer name matches Nullify's records
- Choose appropriate AWS region
- Review IAM permissions with security team
- Deploy IAM role using enhanced templates
- Verify cross-account trust relationship
- Test role assumption from Nullify account
- (Optional) Create S3 bucket for artifacts
- Configure IRSA for EKS clusters
- Deploy Helm chart with production values
- Verify CronJob scheduling and execution
- Monitor logs for successful data collection
- Verify data appears in Nullify dashboard
- Set up monitoring for failed jobs
- Configure alerting for permission issues
- Document role ARN for Nullify team
# terraform/terraform.tfvars
customer_name = "acmecorp"
environment = "prod"
aws_region = "us-east-1"
create_s3_bucket = true
external_id = "provided-by-nullify"
tags = {
Owner = "SecurityTeam"
CostCenter = "Infrastructure"
Compliance = "SOC2"
}