Prerequisites
- An Astro Private Cloud 2.x installation that you can upgrade with Helm.
- Access to the Helm values file used by the installation.
kubectlconfigured against the target cluster.- Permissions to create or modify cloud resources for the sink you choose:
- CloudWatch on EKS: permissions to create IAM policies and roles, and a CloudWatch log group.
- GCP Cloud Logging on GKE: permissions to create Google service accounts and grant IAM bindings in the target project.
- Elasticsearch: a reachable endpoint and, if required, credentials and a CA certificate.
Choose a sink
Use the AWS CloudWatch Logs sink when the Astro Private Cloud control plane runs on Amazon EKS. Use the GCP Cloud Logging sink when it runs on Google Kubernetes Engine (GKE). Use the Elasticsearch sink on Amazon EKS, GKE, or Azure Kubernetes Service (AKS).- AWS CloudWatch Logs
- GCP Cloud Logging
- Elasticsearch
Prerequisites
- The Astro Private Cloud control plane runs on Amazon EKS.
- The AWS CLI is installed and authenticated against the target account.
- For the IRSA path, the EKS cluster has, or can be associated with, an OIDC identity provider.
- For the static-credentials path, an IAM principal with permission to write to the target CloudWatch log group.
Environment variables
The following variables are referenced throughout this section. Set them to match your installation before running the commands.Configure IRSA (recommended)
Create the CloudWatch log group
Associate the EKS cluster OIDC provider
Create the IAM policy
Create the IRSA role and attach the policy
aws iam update-assume-role-policy against the existing role instead of aws iam create-role.Apply the Helm values override
helm upgrade:Configure static AWS credentials (fallback)
Use this configuration on EKS when IRSA isn’t in use.Create the CloudWatch log group
Create a Kubernetes secret with AWS credentials
Apply the Helm values override
Verify
After the upgrade completes, confirm that the Vector sidecar is running and that audit events are reaching CloudWatch:Disable audit log shipping
To stop shipping audit events, set the sidecar to disabled and runhelm upgrade:
helm upgrade removes the Vector sidecar from the next Pod restart. The APC API continues to emit audit events to standard output, so you can still inspect recent events with kubectl logs on the APC API and APC Worker Pods.
Common issues
Helm reports 'supports exactly one sink at a time'
Helm reports 'supports exactly one sink at a time'
cloudwatch.enabled, gcpCloudLogging.enabled, or elasticsearch.enabled is true, then run helm upgrade again.Helm reports 'requires at least one supported sink'
Helm reports 'requires at least one supported sink'
cloudwatch.enabled, gcpCloudLogging.enabled, or elasticsearch.enabled to true, or set loggingSidecar.enabled to false.Helm reports a required GCP Cloud Logging value is missing
Helm reports a required GCP Cloud Logging value is missing
gcpCloudLogging.projectId, gcpCloudLogging.resource.location, and gcpCloudLogging.resource.clusterName are required when GCP Cloud Logging is enabled. Whitespace-only values are also rejected. Set all three to concrete values and run helm upgrade again.Vector reports AccessDenied errors on CloudWatch
Vector reports AccessDenied errors on CloudWatch
- For IRSA, check that the IRSA role trust policy names the correct OIDC provider, namespace, and service account, and that
HoustonCloudWatchLogsPolicyis attached to the role. Also verify that theeks.amazonaws.com/role-arnannotation onhouston.serviceAccount.annotationspoints to the same role ARN. - For static credentials, check that
houston-cloudwatch-credscontains validaws_access_key_idandaws_secret_access_keyvalues and that the corresponding IAM user or role is allowed to write to the target log group.
GCP Cloud Logging rejects entries with HTTP 400
GCP Cloud Logging rejects entries with HTTP 400
resource.type is k8s_container, and that resource.location and resource.clusterName match the GKE cluster as it appears in Cloud Logging.Vector can't connect to Elasticsearch
Vector can't connect to Elasticsearch
endpoint is reachable from within the cluster and that, if TLS is in use, the CA certificate in caSecretName signs the server certificate presented by the endpoint. If basic auth is enabled, verify that the username and password in houston-elasticsearch-creds are correct.Next steps
- For a field-by-field description of each value under
houston.logging.loggingSidecar, see Audit logging configuration reference. - For the shape of each audit event and the list of audited operations, see Audit log schema and operations.