Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We鈥檒l occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improve the documentation for the configuration of KMS etcd encryption for an AKS cluster #3203

Open
ArtunSubasiStihl opened this issue Apr 5, 2024 · 2 comments
Labels
area/docs Improvements or additions to documentation kind/enhancement Improvements or new features

Comments

@ArtunSubasiStihl
Copy link

ArtunSubasiStihl commented Apr 5, 2024

Hello!

  • Vote on this issue by adding a 馃憤 reaction
  • If you want to implement this feature, comment to let us know (we'll work with you on design, scheduling, etc.)

Issue details

Per default, Kubernetes secrets resources are not encrypted at rest. The values within the secrets are encoded with base64 which is not an encryption. AKS supports an KMS etcd encryption which is disabled by default. More information about this can be found in the official Azure documentation here.

The Azure classic provider seems to support the KMS etcd encryption using the keyManagementService attribute as documented here.

If I am not mistaken, the ManagedCluster resource in the azure-native provider does not support to configure the KMS etcd encryption and I would really love to have this feature.
Update: It is indeed supported as suggested in @danielrbradley comment below.

If it is supported, it would be great to have documentation and examples about this feature.

Affected area/feature

@ArtunSubasiStihl ArtunSubasiStihl added kind/enhancement Improvements or new features needs-triage Needs attention from the triage team labels Apr 5, 2024
@danielrbradley
Copy link
Member

Hi @ArtunSubasiStihl thanks for reaching out.

I'm not very familiar with this particual integration. The Azure Native documentation link you sent looks like the right setting - SecurityProfile.AzureKeyVaultKms looks equivilent to the classic KeyManagementService properties. Both contain an identifier for the key vault and the key.

Have you tried using this setting and run into issues?

On adding further examples, these are currently auto-generated from the Azure specification, but it might be possible to add additional hand-written examples in the future too if that's the remaining ask here.

@danielrbradley danielrbradley added area/docs Improvements or additions to documentation and removed needs-triage Needs attention from the triage team labels Apr 9, 2024
@ArtunSubasiStihl
Copy link
Author

ArtunSubasiStihl commented Apr 10, 2024

Thanks @danielrbradley ,

using the SecurityProfile with the azureKeyVaultKms was exactly what I was searching for. I could activate the etcd encryption by adding this block to the ManagedCluster resource:

securityProfile: {
   azureKeyVaultKms: { 
     enabled: true,
     keyId: encryptionKey.keyUriWithVersion,
   },
},

The encryptionKey references a keyvault.Key.

I find the following description in the documentation misleading because I thought this was about a general KMS configuration for the security profile whatever that means:

Azure Key Vault key management service settings for the security profile.

But the link in the description actually leads to a k8s documentation with the titel "Using a KMS provider for data encryption".

Anyway the feature is there. The docs (description and examples) can be improved. I'll update the description to avoid confusion.

@ArtunSubasiStihl ArtunSubasiStihl changed the title Support the configuration of KMS etcd encryption for an AKS cluster Improve the documentation for the configuration of KMS etcd encryption for an AKS cluster Apr 10, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/docs Improvements or additions to documentation kind/enhancement Improvements or new features
Projects
None yet
Development

No branches or pull requests

2 participants