published on Wednesday, Jul 22, 2026 by Pulumi
published on Wednesday, Jul 22, 2026 by Pulumi
Manages the AliCloud secrets engine in Vault. The AliCloud secrets engine dynamically generates AliCloud access credentials based on RAM policies. This allows Vault users to gain access to AliCloud resources without needing to create or manage AliCloud credentials manually.
Important All data provided in the resource configuration will be written in cleartext to state and plan files generated by Terraform, and will appear in the console output when Terraform runs. Protect these artifacts accordingly. See the main provider documentation for more details.
Example Usage
Recommended Configuration
import * as pulumi from "@pulumi/pulumi";
import * as vault from "@pulumi/vault";
const alicloud = new vault.Mount("alicloud", {
path: "alicloud",
type: "alicloud",
});
const config = new pulumi.Config();
// AliCloud Access Key ID
const alicloudAccessKey = config.require("alicloudAccessKey");
// AliCloud Secret Access Key
const alicloudSecretKey = config.require("alicloudSecretKey");
const alicloudSecretBackend = new vault.alicloud.SecretBackend("alicloud", {
mount: alicloud.path,
accessKey: alicloudAccessKey,
secretKeyWo: alicloudSecretKey,
secretKeyWoVersion: 1,
});
import pulumi
import pulumi_vault as vault
alicloud = vault.Mount("alicloud",
path="alicloud",
type="alicloud")
config = pulumi.Config()
# AliCloud Access Key ID
alicloud_access_key = config.require("alicloudAccessKey")
# AliCloud Secret Access Key
alicloud_secret_key = config.require("alicloudSecretKey")
alicloud_secret_backend = vault.alicloud.SecretBackend("alicloud",
mount=alicloud.path,
access_key=alicloud_access_key,
secret_key_wo=alicloud_secret_key,
secret_key_wo_version=1)
package main
import (
"github.com/pulumi/pulumi-vault/sdk/v7/go/vault"
"github.com/pulumi/pulumi-vault/sdk/v7/go/vault/alicloud"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
alicloud2, err := vault.NewMount(ctx, "alicloud", &vault.MountArgs{
Path: pulumi.String("alicloud"),
Type: pulumi.String("alicloud"),
})
if err != nil {
return err
}
cfg := config.New(ctx, "")
// AliCloud Access Key ID
alicloudAccessKey := cfg.Require("alicloudAccessKey")
// AliCloud Secret Access Key
alicloudSecretKey := cfg.Require("alicloudSecretKey")
_, err = alicloud.NewSecretBackend(ctx, "alicloud", &alicloud.SecretBackendArgs{
Mount: alicloud2.Path,
AccessKey: pulumi.String(alicloudAccessKey),
SecretKeyWo: pulumi.String(alicloudSecretKey),
SecretKeyWoVersion: pulumi.Int(1),
})
if err != nil {
return err
}
return nil
})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Vault = Pulumi.Vault;
return await Deployment.RunAsync(() =>
{
var alicloud = new Vault.Mount("alicloud", new()
{
Path = "alicloud",
Type = "alicloud",
});
var config = new Config();
// AliCloud Access Key ID
var alicloudAccessKey = config.Require("alicloudAccessKey");
// AliCloud Secret Access Key
var alicloudSecretKey = config.Require("alicloudSecretKey");
var alicloudSecretBackend = new Vault.AliCloud.SecretBackend("alicloud", new()
{
Mount = alicloud.Path,
AccessKey = alicloudAccessKey,
SecretKeyWo = alicloudSecretKey,
SecretKeyWoVersion = 1,
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.vault.Mount;
import com.pulumi.vault.MountArgs;
import com.pulumi.vault.alicloud.SecretBackend;
import com.pulumi.vault.alicloud.SecretBackendArgs;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
final var config = ctx.config();
var alicloud = new Mount("alicloud", MountArgs.builder()
.path("alicloud")
.type("alicloud")
.build());
final var alicloudAccessKey = config.require("alicloudAccessKey");
final var alicloudSecretKey = config.require("alicloudSecretKey");
var alicloudSecretBackend = new SecretBackend("alicloudSecretBackend", SecretBackendArgs.builder()
.mount(alicloud.path())
.accessKey(alicloudAccessKey)
.secretKeyWo(alicloudSecretKey)
.secretKeyWoVersion(1)
.build());
}
}
configuration:
alicloudAccessKey:
type: string
alicloudSecretKey:
type: string
resources:
alicloud:
type: vault:Mount
properties:
path: alicloud
type: alicloud
alicloudSecretBackend:
type: vault:alicloud:SecretBackend
name: alicloud
properties:
mount: ${alicloud.path}
accessKey: ${alicloudAccessKey}
secretKeyWo: ${alicloudSecretKey}
secretKeyWoVersion: 1
pulumi {
required_providers {
vault = {
source = "pulumi/vault"
}
}
}
resource "vault_mount" "alicloud" {
path = "alicloud"
type = "alicloud"
}
resource "vault_alicloud_secretbackend" "alicloud" {
mount = vault_mount.alicloud.path
access_key = var.alicloudAccessKey
secret_key_wo = var.alicloudSecretKey
secret_key_wo_version = 1
}
variable "alicloudAccessKey" {
type = string
description = "AliCloud Access Key ID"
}
variable "alicloudSecretKey" {
type = string
description = "AliCloud Secret Access Key"
}
Ephemeral Attributes Reference
The following attributes are write-only and will never be read back from Vault or stored in Terraform state:
secretKeyWo- (Write-Only) The AliCloud Secret Access Key. This value is only written to Vault and never read back.
Understanding the Write-Only Pattern
The secretKeyWo field is write-only and required. It will not be stored in Terraform state or read back from Vault.
Recommended Policy
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ram:CreateUser",
"ram:DeleteUser",
"ram:AttachPolicyToUser",
"ram:DetachPolicyFromUser",
"ram:CreateAccessKey",
"ram:DeleteAccessKey",
"ram:GetUser",
"ram:ListAccessKeys"
],
"Resource": "*"
}
]
}
References
Create SecretBackend Resource
Resources are created with functions called constructors. To learn more about declaring and configuring resources, see Resources.
Constructor syntax
new SecretBackend(name: string, args: SecretBackendArgs, opts?: CustomResourceOptions);@overload
def SecretBackend(resource_name: str,
args: SecretBackendArgs,
opts: Optional[ResourceOptions] = None)
@overload
def SecretBackend(resource_name: str,
opts: Optional[ResourceOptions] = None,
access_key: Optional[str] = None,
mount: Optional[str] = None,
secret_key_wo: Optional[str] = None,
secret_key_wo_version: Optional[int] = None,
namespace: Optional[str] = None)func NewSecretBackend(ctx *Context, name string, args SecretBackendArgs, opts ...ResourceOption) (*SecretBackend, error)public SecretBackend(string name, SecretBackendArgs args, CustomResourceOptions? opts = null)
public SecretBackend(String name, SecretBackendArgs args)
public SecretBackend(String name, SecretBackendArgs args, CustomResourceOptions options)
type: vault:alicloud:SecretBackend
properties: # The arguments to resource properties.
options: # Bag of options to control resource's behavior.
resource "vault_alicloud_secret_backend" "name" {
# resource properties
}Parameters
- name string
- The unique name of the resource.
- args SecretBackendArgs
- The arguments to resource properties.
- opts CustomResourceOptions
- Bag of options to control resource's behavior.
- resource_name str
- The unique name of the resource.
- args SecretBackendArgs
- The arguments to resource properties.
- opts ResourceOptions
- Bag of options to control resource's behavior.
- ctx Context
- Context object for the current deployment.
- name string
- The unique name of the resource.
- args SecretBackendArgs
- The arguments to resource properties.
- opts ResourceOption
- Bag of options to control resource's behavior.
- name string
- The unique name of the resource.
- args SecretBackendArgs
- The arguments to resource properties.
- opts CustomResourceOptions
- Bag of options to control resource's behavior.
- name String
- The unique name of the resource.
- args SecretBackendArgs
- The arguments to resource properties.
- options CustomResourceOptions
- Bag of options to control resource's behavior.
Constructor example
The following reference example uses placeholder values for all input properties.
var vaultSecretBackendResource = new Vault.AliCloud.SecretBackend("vaultSecretBackendResource", new()
{
AccessKey = "string",
Mount = "string",
SecretKeyWo = "string",
SecretKeyWoVersion = 0,
Namespace = "string",
});
example, err := alicloud.NewSecretBackend(ctx, "vaultSecretBackendResource", &alicloud.SecretBackendArgs{
AccessKey: pulumi.String("string"),
Mount: pulumi.String("string"),
SecretKeyWo: pulumi.String("string"),
SecretKeyWoVersion: pulumi.Int(0),
Namespace: pulumi.String("string"),
})
resource "vault_alicloud_secret_backend" "vaultSecretBackendResource" {
lifecycle {
create_before_destroy = true
}
access_key = "string"
mount = "string"
secret_key_wo = "string"
secret_key_wo_version = 0
namespace = "string"
}
var vaultSecretBackendResource = new com.pulumi.vault.alicloud.SecretBackend("vaultSecretBackendResource", com.pulumi.vault.alicloud.SecretBackendArgs.builder()
.accessKey("string")
.mount("string")
.secretKeyWo("string")
.secretKeyWoVersion(0)
.namespace("string")
.build());
vault_secret_backend_resource = vault.alicloud.SecretBackend("vaultSecretBackendResource",
access_key="string",
mount="string",
secret_key_wo="string",
secret_key_wo_version=0,
namespace="string")
const vaultSecretBackendResource = new vault.alicloud.SecretBackend("vaultSecretBackendResource", {
accessKey: "string",
mount: "string",
secretKeyWo: "string",
secretKeyWoVersion: 0,
namespace: "string",
});
type: vault:alicloud:SecretBackend
properties:
accessKey: string
mount: string
namespace: string
secretKeyWo: string
secretKeyWoVersion: 0
SecretBackend Resource Properties
To learn more about resource properties and how to use them, see Inputs and Outputs in the Architecture and Concepts docs.
Inputs
In Python, inputs that are objects can be passed either as argument classes or as dictionary literals.
The SecretBackend resource accepts the following input properties:
- Access
Key string - The AliCloud Access Key ID with permissions to manage RAM users and policies. This credential is used by Vault to create and manage dynamic AliCloud credentials.
- Mount string
- Path of the AliCloud secrets engine mount. Must match the
pathof avault.Mountresource withtype = "alicloud". Usevault_mount.alicloud.pathhere. Cannot be changed after creation (forces replacement). - Secret
Key stringWo - NOTE: This field is write-only and its value will not be updated in state as part of read operations. Write-only AliCloud Secret Access Key. This value will never be read back from Vault.
- Secret
Key intWo Version - A version counter for the write-only
secretKeyWofield. Incrementing this value will trigger an update to the secret key in Vault. This is required to enable Terraform to detect changes to the write-only field. - Namespace string
- Target namespace. (requires Enterprise)
- Access
Key string - The AliCloud Access Key ID with permissions to manage RAM users and policies. This credential is used by Vault to create and manage dynamic AliCloud credentials.
- Mount string
- Path of the AliCloud secrets engine mount. Must match the
pathof avault.Mountresource withtype = "alicloud". Usevault_mount.alicloud.pathhere. Cannot be changed after creation (forces replacement). - Secret
Key stringWo - NOTE: This field is write-only and its value will not be updated in state as part of read operations. Write-only AliCloud Secret Access Key. This value will never be read back from Vault.
- Secret
Key intWo Version - A version counter for the write-only
secretKeyWofield. Incrementing this value will trigger an update to the secret key in Vault. This is required to enable Terraform to detect changes to the write-only field. - Namespace string
- Target namespace. (requires Enterprise)
- access_
key string - The AliCloud Access Key ID with permissions to manage RAM users and policies. This credential is used by Vault to create and manage dynamic AliCloud credentials.
- mount string
- Path of the AliCloud secrets engine mount. Must match the
pathof avault.Mountresource withtype = "alicloud". Usevault_mount.alicloud.pathhere. Cannot be changed after creation (forces replacement). - secret_
key_ stringwo - NOTE: This field is write-only and its value will not be updated in state as part of read operations. Write-only AliCloud Secret Access Key. This value will never be read back from Vault.
- secret_
key_ numberwo_ version - A version counter for the write-only
secretKeyWofield. Incrementing this value will trigger an update to the secret key in Vault. This is required to enable Terraform to detect changes to the write-only field. - namespace string
- Target namespace. (requires Enterprise)
- access
Key String - The AliCloud Access Key ID with permissions to manage RAM users and policies. This credential is used by Vault to create and manage dynamic AliCloud credentials.
- mount String
- Path of the AliCloud secrets engine mount. Must match the
pathof avault.Mountresource withtype = "alicloud". Usevault_mount.alicloud.pathhere. Cannot be changed after creation (forces replacement). - secret
Key StringWo - NOTE: This field is write-only and its value will not be updated in state as part of read operations. Write-only AliCloud Secret Access Key. This value will never be read back from Vault.
- secret
Key IntegerWo Version - A version counter for the write-only
secretKeyWofield. Incrementing this value will trigger an update to the secret key in Vault. This is required to enable Terraform to detect changes to the write-only field. - namespace String
- Target namespace. (requires Enterprise)
- access
Key string - The AliCloud Access Key ID with permissions to manage RAM users and policies. This credential is used by Vault to create and manage dynamic AliCloud credentials.
- mount string
- Path of the AliCloud secrets engine mount. Must match the
pathof avault.Mountresource withtype = "alicloud". Usevault_mount.alicloud.pathhere. Cannot be changed after creation (forces replacement). - secret
Key stringWo - NOTE: This field is write-only and its value will not be updated in state as part of read operations. Write-only AliCloud Secret Access Key. This value will never be read back from Vault.
- secret
Key numberWo Version - A version counter for the write-only
secretKeyWofield. Incrementing this value will trigger an update to the secret key in Vault. This is required to enable Terraform to detect changes to the write-only field. - namespace string
- Target namespace. (requires Enterprise)
- access_
key str - The AliCloud Access Key ID with permissions to manage RAM users and policies. This credential is used by Vault to create and manage dynamic AliCloud credentials.
- mount str
- Path of the AliCloud secrets engine mount. Must match the
pathof avault.Mountresource withtype = "alicloud". Usevault_mount.alicloud.pathhere. Cannot be changed after creation (forces replacement). - secret_
key_ strwo - NOTE: This field is write-only and its value will not be updated in state as part of read operations. Write-only AliCloud Secret Access Key. This value will never be read back from Vault.
- secret_
key_ intwo_ version - A version counter for the write-only
secretKeyWofield. Incrementing this value will trigger an update to the secret key in Vault. This is required to enable Terraform to detect changes to the write-only field. - namespace str
- Target namespace. (requires Enterprise)
- access
Key String - The AliCloud Access Key ID with permissions to manage RAM users and policies. This credential is used by Vault to create and manage dynamic AliCloud credentials.
- mount String
- Path of the AliCloud secrets engine mount. Must match the
pathof avault.Mountresource withtype = "alicloud". Usevault_mount.alicloud.pathhere. Cannot be changed after creation (forces replacement). - secret
Key StringWo - NOTE: This field is write-only and its value will not be updated in state as part of read operations. Write-only AliCloud Secret Access Key. This value will never be read back from Vault.
- secret
Key NumberWo Version - A version counter for the write-only
secretKeyWofield. Incrementing this value will trigger an update to the secret key in Vault. This is required to enable Terraform to detect changes to the write-only field. - namespace String
- Target namespace. (requires Enterprise)
Outputs
All input properties are implicitly available as output properties. Additionally, the SecretBackend resource produces the following output properties:
- Id string
- The provider-assigned unique ID for this managed resource.
- Id string
- The provider-assigned unique ID for this managed resource.
- id string
- The provider-assigned unique ID for this managed resource.
- id String
- The provider-assigned unique ID for this managed resource.
- id string
- The provider-assigned unique ID for this managed resource.
- id str
- The provider-assigned unique ID for this managed resource.
- id String
- The provider-assigned unique ID for this managed resource.
Look up Existing SecretBackend Resource
Get an existing SecretBackend resource’s state with the given name, ID, and optional extra properties used to qualify the lookup.
public static get(name: string, id: Input<ID>, state?: SecretBackendState, opts?: CustomResourceOptions): SecretBackend@staticmethod
def get(resource_name: str,
id: str,
opts: Optional[ResourceOptions] = None,
access_key: Optional[str] = None,
mount: Optional[str] = None,
namespace: Optional[str] = None,
secret_key_wo: Optional[str] = None,
secret_key_wo_version: Optional[int] = None) -> SecretBackendfunc GetSecretBackend(ctx *Context, name string, id IDInput, state *SecretBackendState, opts ...ResourceOption) (*SecretBackend, error)public static SecretBackend Get(string name, Input<string> id, SecretBackendState? state, CustomResourceOptions? opts = null)public static SecretBackend get(String name, Output<String> id, SecretBackendState state, CustomResourceOptions options)resources: _: type: vault:alicloud:SecretBackend get: id: ${id}import {
to = vault_alicloud_secret_backend.example
id = "${id}"
}
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- resource_name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- Access
Key string - The AliCloud Access Key ID with permissions to manage RAM users and policies. This credential is used by Vault to create and manage dynamic AliCloud credentials.
- Mount string
- Path of the AliCloud secrets engine mount. Must match the
pathof avault.Mountresource withtype = "alicloud". Usevault_mount.alicloud.pathhere. Cannot be changed after creation (forces replacement). - Namespace string
- Target namespace. (requires Enterprise)
- Secret
Key stringWo - NOTE: This field is write-only and its value will not be updated in state as part of read operations. Write-only AliCloud Secret Access Key. This value will never be read back from Vault.
- Secret
Key intWo Version - A version counter for the write-only
secretKeyWofield. Incrementing this value will trigger an update to the secret key in Vault. This is required to enable Terraform to detect changes to the write-only field.
- Access
Key string - The AliCloud Access Key ID with permissions to manage RAM users and policies. This credential is used by Vault to create and manage dynamic AliCloud credentials.
- Mount string
- Path of the AliCloud secrets engine mount. Must match the
pathof avault.Mountresource withtype = "alicloud". Usevault_mount.alicloud.pathhere. Cannot be changed after creation (forces replacement). - Namespace string
- Target namespace. (requires Enterprise)
- Secret
Key stringWo - NOTE: This field is write-only and its value will not be updated in state as part of read operations. Write-only AliCloud Secret Access Key. This value will never be read back from Vault.
- Secret
Key intWo Version - A version counter for the write-only
secretKeyWofield. Incrementing this value will trigger an update to the secret key in Vault. This is required to enable Terraform to detect changes to the write-only field.
- access_
key string - The AliCloud Access Key ID with permissions to manage RAM users and policies. This credential is used by Vault to create and manage dynamic AliCloud credentials.
- mount string
- Path of the AliCloud secrets engine mount. Must match the
pathof avault.Mountresource withtype = "alicloud". Usevault_mount.alicloud.pathhere. Cannot be changed after creation (forces replacement). - namespace string
- Target namespace. (requires Enterprise)
- secret_
key_ stringwo - NOTE: This field is write-only and its value will not be updated in state as part of read operations. Write-only AliCloud Secret Access Key. This value will never be read back from Vault.
- secret_
key_ numberwo_ version - A version counter for the write-only
secretKeyWofield. Incrementing this value will trigger an update to the secret key in Vault. This is required to enable Terraform to detect changes to the write-only field.
- access
Key String - The AliCloud Access Key ID with permissions to manage RAM users and policies. This credential is used by Vault to create and manage dynamic AliCloud credentials.
- mount String
- Path of the AliCloud secrets engine mount. Must match the
pathof avault.Mountresource withtype = "alicloud". Usevault_mount.alicloud.pathhere. Cannot be changed after creation (forces replacement). - namespace String
- Target namespace. (requires Enterprise)
- secret
Key StringWo - NOTE: This field is write-only and its value will not be updated in state as part of read operations. Write-only AliCloud Secret Access Key. This value will never be read back from Vault.
- secret
Key IntegerWo Version - A version counter for the write-only
secretKeyWofield. Incrementing this value will trigger an update to the secret key in Vault. This is required to enable Terraform to detect changes to the write-only field.
- access
Key string - The AliCloud Access Key ID with permissions to manage RAM users and policies. This credential is used by Vault to create and manage dynamic AliCloud credentials.
- mount string
- Path of the AliCloud secrets engine mount. Must match the
pathof avault.Mountresource withtype = "alicloud". Usevault_mount.alicloud.pathhere. Cannot be changed after creation (forces replacement). - namespace string
- Target namespace. (requires Enterprise)
- secret
Key stringWo - NOTE: This field is write-only and its value will not be updated in state as part of read operations. Write-only AliCloud Secret Access Key. This value will never be read back from Vault.
- secret
Key numberWo Version - A version counter for the write-only
secretKeyWofield. Incrementing this value will trigger an update to the secret key in Vault. This is required to enable Terraform to detect changes to the write-only field.
- access_
key str - The AliCloud Access Key ID with permissions to manage RAM users and policies. This credential is used by Vault to create and manage dynamic AliCloud credentials.
- mount str
- Path of the AliCloud secrets engine mount. Must match the
pathof avault.Mountresource withtype = "alicloud". Usevault_mount.alicloud.pathhere. Cannot be changed after creation (forces replacement). - namespace str
- Target namespace. (requires Enterprise)
- secret_
key_ strwo - NOTE: This field is write-only and its value will not be updated in state as part of read operations. Write-only AliCloud Secret Access Key. This value will never be read back from Vault.
- secret_
key_ intwo_ version - A version counter for the write-only
secretKeyWofield. Incrementing this value will trigger an update to the secret key in Vault. This is required to enable Terraform to detect changes to the write-only field.
- access
Key String - The AliCloud Access Key ID with permissions to manage RAM users and policies. This credential is used by Vault to create and manage dynamic AliCloud credentials.
- mount String
- Path of the AliCloud secrets engine mount. Must match the
pathof avault.Mountresource withtype = "alicloud". Usevault_mount.alicloud.pathhere. Cannot be changed after creation (forces replacement). - namespace String
- Target namespace. (requires Enterprise)
- secret
Key StringWo - NOTE: This field is write-only and its value will not be updated in state as part of read operations. Write-only AliCloud Secret Access Key. This value will never be read back from Vault.
- secret
Key NumberWo Version - A version counter for the write-only
secretKeyWofield. Incrementing this value will trigger an update to the secret key in Vault. This is required to enable Terraform to detect changes to the write-only field.
Import
AliCloud secrets engines can be imported using the mount path, e.g.
$ pulumi import vault:alicloud/secretBackend:SecretBackend alicloud alicloud
Note: When importing, the
secretKeyWofield will not be populated as it is write-only and not returned by the Vault API. You will need to provide this value in your configuration after import.
To learn more about importing existing cloud resources, see Importing resources.
Package Details
- Repository
- Vault pulumi/pulumi-vault
- License
- Apache-2.0
- Notes
- This Pulumi package is based on the
vaultTerraform Provider.
published on Wednesday, Jul 22, 2026 by Pulumi