All Products
Search
Document Center

Key Management Service:Create an application access point

Last Updated:Mar 31, 2026

To connect a self-managed application to KMS using KMS Instance SDK or a secret SDK, create an application access point (AAP) and generate a client key. The client key authenticates your application and controls which KMS resources it can access.

Prerequisites

Before you begin, ensure that you have:

Choose a creation mode

The KMS console offers two modes. Use the following table to pick the right one before you start.

Quick creationStandard creation
Endpoint accessKMS instance endpoint onlyKMS instance endpoint (keys and secrets) + KMS public or virtual private cloud (VPC) endpoint (secrets only)
Client key validityFixed at 5 yearsConfigurable — set to 1 year
Accessible resourcesAll keys and secrets in the KMS instance (you can modify the permission policy after creation)Configurable per permission policy
Network access controlNot availableConfigurable via network access rules
Best forQuick SDK integration with minimal setupProduction applications requiring fine-grained access control
Important

Change your client key before it expires to prevent access interruptions. For details, see Change a client key. Create one AAP per application so each application has independent access permissions.

Use the KMS console

Quick creation

Use quick creation to get an application connected to KMS with minimal configuration steps. All keys and secrets in the selected KMS instance are accessible by default.

  1. Log in to the KMS console. In the top navigation bar, select a region. In the left-side navigation pane, choose Application Access > AAPs.

  2. On the Application Access tab, click Create AAP.

  3. In the Create AAP panel, set the following parameters and click OK.

    ParameterDescription
    ModeSelect Quick Creation.
    Scope (KMS Instance)Select the KMS instance your application needs to access.
    Application Access Point NameEnter a name for the AAP.
    Authentication MethodFixed as ClientKey.
    Default Permission PolicyFixed as key/*secret/*. Your application can access all keys and secrets in the selected KMS instance.

The browser automatically downloads two files:

  • clientKey_****.json — contains the Application Access Secret (ClientKeyContent)

  • clientKey_****_Password.txt — contains the Password

Store both files securely.

Standard creation

Standard creation lets you define exactly which resources an application can access, from which networks, and for how long. Complete the following three steps in order.

Step 1: Create a network access rule

A network access rule defines which source IP addresses can reach your KMS instance.

Note

Skip this step if you do not need source IP filtering. For production environments, configure network access rules to restrict access.

  1. On the AAPs page, click the Network Access Rules tab, then click Create Network Access Rule.

  2. In the Create Network Access Rule panel, set the following parameters and click OK.

    ParameterDescription
    Rule NameA name for the network access rule.
    Network TypeSee the endpoint and network type reference below to choose the correct type.
    Allowed Source IP AddressesThe IP addresses from which access is allowed. If your application runs behind a proxy server, enter the proxy server's IP address. See details in the reference table below.
    Description(Optional) A description for the rule.

    Allowed source IP addresses by network type:

    Network typeAllowed source IP addresses
    PrivateIP addresses in the VPCs associated with your KMS instance
    PublicPublic IP addresses
    VPCVPC IDs and IP addresses within those VPCs

Endpoint and network type reference

Use this table to match your SDK and use case to the correct network type.

Use caseSDKNetwork typeRegions
Cryptographic operations (encrypt, decrypt, sign, verify)KMS Instance SDKPrivateAll regions
Secret retrieval — high throughput, high securityKMS Instance SDKPrivateAll regions
Secret retrieval via shared gatewaySecret SDKPrivate, Public, or VPCPrivate and Public: all regions; VPC: China (Hangzhou), China (Shanghai), China (Shenzhen), China (Zhangjiakou)
Note

Cryptographic operations require KMS Instance SDK with a KMS instance endpoint. Set the network type to Private and restrict allowed source IP addresses to VPC addresses associated with your KMS instance.

Step 2: Create a permission policy

A permission policy defines which keys or secrets an application can access and which operations it can perform.

  1. Click the Policies tab, then click Create Policy.

  2. In the Create Policy panel, set the following parameters and click OK.

    ParameterDescription
    Policy NameA name for the permission policy.
    ScopeIf the network type is Private, select the specific KMS instance. If the network type is Public or VPC, select Shared KMS Gateway.
    RBAC PermissionsSelect the role that matches your application's needs. See the RBAC roles reference below.
    Accessible ResourcesThe keys or secrets your application needs to access. To specify multiple secrets whose combined name length exceeds the limit, use wildcards. For example, secret/rds-ibm* matches all secrets with the prefix rds-ibm.
    Network Access RulesSelect the network access rule you created in step 1. Leave blank if you are not using source IP filtering.
    Description(Optional) A description for the policy.

RBAC roles reference

RoleScopeOperations allowed
CryptoServiceKeyUserSpecific KMS instanceUse keys for cryptographic operations. See Key-related operations.
CryptoServiceSecretUserSpecific KMS instanceUse secrets in the KMS instance. See Secret-related operations.
SecretUserShared KMS GatewayUse all secrets in the current account. Supports the GetSecretValue operation.

Assign the minimum role required for your application. If your application only retrieves secrets, assign CryptoServiceSecretUser (or SecretUser for Shared KMS Gateway) rather than CryptoServiceKeyUser.

Step 3: Create the AAP

  1. Click the Application Access tab, then click Create AAP.

  2. In the Create AAP panel, set the following parameters and click OK.

    ParameterDescription
    ModeSelect Standard Creation.
    Application Access Point NameEnter a name for the AAP.
    Authentication MethodSelect ClientKey or RAMRole. This example uses ClientKey.
    Encryption PasswordEnter a password for the client key. Must be 8–64 characters and contain at least two of the following types: digits, letters, and special characters (~ ! @ # $ % ^ & * ? _ -).
    Validity PeriodSet to 1 year. Change the client key before expiration to keep your application connected. See Change a client key.
    PoliciesSelect the permission policy you created in step 2.
    Description(Optional) A description for the AAP.

The browser automatically downloads two files:

  • clientKey_****.json — contains the Application Access Secret (ClientKeyContent)

  • clientKey_****_Password.txt — contains the Password

Store both files securely.

Call API operations

To create an AAP programmatically, call the following operations in order:

  1. Call CreateNetworkRule to create a network access rule. Specify the private IP addresses or private CIDR blocks from which access to KMS is allowed.

  2. Call CreatePolicy to create a permission policy. Specify the keys and secrets to allow and the network access rules to apply.

  3. Call CreateApplicationAccessPoint to create the AAP. Specify the authentication method and permission policies.

  4. Call CreateClientKey to generate a client key. Specify the encryption password, validity period, and AAP.

Use Terraform

For Terraform-based setup, see Create an AAP with Terraform.

Configure your SDK after creating an AAP

If the AAP scope is a specific KMS instance (not Shared KMS Gateway), configure the instance CA certificate and instance endpoint in your SDK before making API calls.

Get the instance CA certificate

The KMS instance uses HTTPS with a built-in SSL/TLS certificate. Download the instance CA certificate to verify the KMS instance's SSL/TLS certificate during SDK initialization.

Note

KMS instances support TLS 1.2 only.

  1. On the Instances page, click the Software Key Management or Hardware Key Management tab and find your instance.

  2. Click the instance ID or Details in the Actions column.

  3. On the instance details page, click Download next to Instance CA Certificate.

The downloaded file is named PrivateKmsCA_kst-******.pem by default. Store it securely alongside your client key files.

Get the instance endpoint

  1. On the Instances page, click the Software Key Management or Hardware Key Management tab and find your instance.

  2. Click the instance ID to open the details page.

  3. Copy the Instance VPC Endpoint value and remove the https:// prefix. The remaining string is the endpoint to pass to your SDK.

What's next

  • Manage an AAP — update accessible resources, delete unused AAPs

  • Change a client key — rotate keys before they expire (recommended: every year)

  • Alert events — KMS sends alerts when a client key is approaching expiration; act on them promptly