Amazon Web Services
This page describes the authentication options for Amazon Web Services (AWS).
For AWS, we currently support the following authentication methods:
AWS Credentials
Section titled “AWS Credentials”AWS Credentials are defined in the .spec.aws field of the Credentials resource.
It can be used in combination with the following resources:
Configuring Access Key Authentication
Section titled “Configuring Access Key Authentication”To use access key authentication,
configure the accessKeyIdFrom and secretAccessKeyFrom fields in AWS Credentials.
The accessKeyIdFrom and secretAccessKeyFrom fields can be set to a
SecretKeySelector
that references a
Kubernetes Secret .
apiVersion: kannika.io/v1alphakind: Credentialsmetadata: name: aws-credsspec: aws: description: "Access key authentication for AWS" # Optional description accessKeyIdFrom: secretKeyRef: name: aws-creds # Name of the secret below key: accessKeyId # References the access key id in the secret secretAccessKeyFrom: secretKeyRef: name: aws-creds # Name of the secret below key: secretAccessKey # References the secret access key in the secretAnd here is the corresponding secret:
apiVersion: v1kind: Secrettype: Opaquemetadata: name: aws-credsdata: accessKeyId: dGhla2V5aWQ= # thekeyid secretAccessKey: dGhlU2VjcmV0S2V5 # theSecretKeyIAM Service Account Authentication
Section titled “IAM Service Account Authentication”A Kubernetes ServiceAccount (SA) can be attached to provide a specific identity to the processes running within the pods.
This configuration is primarily used to enable Workload Identity, where the Kubernetes ServiceAccount is mapped to a cloud provider IAM role. This mechanism allows pods to securely access external systems, such as cloud storage, without the need for managing static secrets or credentials.
apiVersion: v1kind: ServiceAccountmetadata: name: my-service-accountThen on the Armory resource, configure the service account.
apiVersion: io.kannika/v1alphakind: Backupmetadata: name: backupspec: source: "kafka" sink: "storage" serviceAccountName: "my-service-account"apiVersion: io.kannika/v1alphakind: Restoremetadata: name: restorespec: source: "storage" sink: "kafka" serviceAccountName: "my-service-account"apiVersion: io.kannika/v1alphakind: SchemaRegistryBackupmetadata: name: backupspec: storage: "storage" registry: "schema-registry" serviceAccountName: "my-service-account"apiVersion: io.kannika/v1alphakind: SchemaRegistryRestoremetadata: name: restorespec: storage: "storage" registry: "schema-registry" serviceAccountName: "my-service-account"