mirror of
https://github.com/hanzokms/terraform-provider.git
synced 2026-10-30 20:29:45 +00:00
4.3 KiB
4.3 KiB
page_title, subcategory, description
| page_title | subcategory | description |
|---|---|---|
| kms_identity Resource - terraform-provider | Identities | Create and manage identity in Hanzo KMS. |
kms_identity (Resource)
Create and manage identity in Hanzo KMS.
Example Usage
terraform {
required_providers {
kms = {
# version = <latest version>
source = "hanzokms/kms"
}
}
}
provider "kms" {
host = "https://kms.hanzo.ai" # Only required if using self hosted instance of Hanzo KMS, default is https://kms.hanzo.ai
auth = {
universal = {
client_id = "<machine-identity-client-id>"
client_secret = "<machine-identity-client-secret>"
}
}
}
# universal authentication identity
resource "kms_identity" "universal-auth" {
name = "universal-auth"
role = "member"
org_id = "<org_id>"
metadata = [
{
key = "key1",
value = "value1"
},
{
key = "key2",
value = "value2"
}
]
}
resource "kms_identity_universal_auth" "ua-auth" {
identity_id = kms_identity.universal-auth.id
access_token_ttl = 2592000
access_token_max_ttl = 2592000 * 2
access_token_num_uses_limit = 3
}
resource "kms_identity_universal_auth_client_secret" "client-secret" {
identity_id = kms_identity.universal-auth.id
depends_on = [kms_identity_universal_auth.ua-auth]
}
output "client_secret" {
sensitive = true
value = kms_identity_universal_auth_client_secret.client-secret.client_secret
}
resource "kms_identity" "aws-auth" {
name = "aws-auth"
role = "member"
org_id = "<org_id>"
}
resource "kms_identity_aws_auth" "aws-auth" {
identity_id = kms_identity.aws-auth.id
access_token_ttl = 2592000
access_token_max_ttl = 2592000 * 2
access_token_num_uses_limit = 3
allowed_principal_arns = ["arn:aws:iam::123456789012:user/MyUserName"]
allowed_account_ids = ["123456789012", "123456789013"]
}
resource "kms_identity" "azure-auth" {
name = "azure-auth"
role = "member"
org_id = "<org_id>"
}
resource "kms_identity_azure_auth" "azure-auth" {
identity_id = kms_identity.azure-auth.id
tenant_id = "TENANT_ID"
}
resource "kms_identity" "gcp-auth" {
name = "gcp-auth"
role = "member"
org_id = "<org_id>"
}
resource "kms_identity_gcp_auth" "gcp-auth" {
identity_id = kms_identity.gcp-auth.id
type = "gce"
}
resource "kms_identity" "k8-auth" {
name = "k8-auth"
role = "member"
org_id = "<org_id>"
}
resource "kms_identity_kubernetes_auth" "k8-auth" {
identity_id = kms_identity.k8-auth.id
kubernetes_host = "http://example.com"
token_reviewer_jwt = "ey<example>"
allowed_namespaces = ["namespace-a", "namespace-b"]
}
resource "kms_identity" "token-auth" {
name = "token-auth"
role = "member"
org_id = "<org_id>"
}
resource "kms_identity_token_auth" "token-auth" {
identity_id = kms_identity.token-auth.id
}
resource "kms_identity_token_auth_token" "token-auth-token" {
identity_id = kms_identity.token-auth.id
name = "token-auth-token"
depends_on = [kms_identity_token_auth.token-auth]
}
output "token-auth-token" {
sensitive = true
value = kms_identity_token_auth_token.token-auth-token.token
}
Schema
Required
name(String) The name for the identityorg_id(String) The ID of the organization for the identityrole(String) The role for the identity. Available default role options are 'admin', 'member', and 'no-access'. If you've created custom roles, you can use their slugs as well.
Optional
has_delete_protection(Boolean) Whether the identity has delete protection, defaults to falsemetadata(Attributes Set) The metadata associated with this identity (see below for nested schema)
Read-Only
auth_modes(List of String) The authentication types of the identityid(String) The ID of the identity
Nested Schema for metadata
Required:
key(String) The key of the metadata objectvalue(String) The value of the metadata object
Import
Import is supported using the following syntax:
# This will import the resource by its identity ID
terraform import kms_identity.example <identity_id>