1. Packages
  2. Google Cloud (GCP) Classic
  3. API Docs
  4. serviceaccount
  5. getAccountKey
Google Cloud v8.25.0 published on Thursday, Apr 3, 2025 by Pulumi

gcp.serviceaccount.getAccountKey

Explore with Pulumi AI

Google Cloud v8.25.0 published on Thursday, Apr 3, 2025 by Pulumi

Get service account public key. For more information, see the official documentation and API.

Example Usage

import * as pulumi from "@pulumi/pulumi";
import * as gcp from "@pulumi/gcp";

const myaccount = new gcp.serviceaccount.Account("myaccount", {accountId: "dev-foo-account"});
const mykeyKey = new gcp.serviceaccount.Key("mykey", {serviceAccountId: myaccount.name});
const mykey = gcp.serviceaccount.getAccountKeyOutput({
    name: mykeyKey.name,
    publicKeyType: "TYPE_X509_PEM_FILE",
});
Copy
import pulumi
import pulumi_gcp as gcp

myaccount = gcp.serviceaccount.Account("myaccount", account_id="dev-foo-account")
mykey_key = gcp.serviceaccount.Key("mykey", service_account_id=myaccount.name)
mykey = gcp.serviceaccount.get_account_key_output(name=mykey_key.name,
    public_key_type="TYPE_X509_PEM_FILE")
Copy
package main

import (
	"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/serviceaccount"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		myaccount, err := serviceaccount.NewAccount(ctx, "myaccount", &serviceaccount.AccountArgs{
			AccountId: pulumi.String("dev-foo-account"),
		})
		if err != nil {
			return err
		}
		mykeyKey, err := serviceaccount.NewKey(ctx, "mykey", &serviceaccount.KeyArgs{
			ServiceAccountId: myaccount.Name,
		})
		if err != nil {
			return err
		}
		_ = serviceaccount.GetAccountKeyOutput(ctx, serviceaccount.GetAccountKeyOutputArgs{
			Name:          mykeyKey.Name,
			PublicKeyType: pulumi.String("TYPE_X509_PEM_FILE"),
		}, nil)
		return nil
	})
}
Copy
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Gcp = Pulumi.Gcp;

return await Deployment.RunAsync(() => 
{
    var myaccount = new Gcp.ServiceAccount.Account("myaccount", new()
    {
        AccountId = "dev-foo-account",
    });

    var mykeyKey = new Gcp.ServiceAccount.Key("mykey", new()
    {
        ServiceAccountId = myaccount.Name,
    });

    var mykey = Gcp.ServiceAccount.GetAccountKey.Invoke(new()
    {
        Name = mykeyKey.Name,
        PublicKeyType = "TYPE_X509_PEM_FILE",
    });

});
Copy
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.serviceaccount.Account;
import com.pulumi.gcp.serviceaccount.AccountArgs;
import com.pulumi.gcp.serviceaccount.Key;
import com.pulumi.gcp.serviceaccount.KeyArgs;
import com.pulumi.gcp.serviceaccount.ServiceaccountFunctions;
import com.pulumi.gcp.serviceaccount.inputs.GetAccountKeyArgs;
import java.util.List;
import java.util.ArrayList;
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) {
        var myaccount = new Account("myaccount", AccountArgs.builder()
            .accountId("dev-foo-account")
            .build());

        var mykeyKey = new Key("mykeyKey", KeyArgs.builder()
            .serviceAccountId(myaccount.name())
            .build());

        final var mykey = ServiceaccountFunctions.getAccountKey(GetAccountKeyArgs.builder()
            .name(mykeyKey.name())
            .publicKeyType("TYPE_X509_PEM_FILE")
            .build());

    }
}
Copy
resources:
  myaccount:
    type: gcp:serviceaccount:Account
    properties:
      accountId: dev-foo-account
  mykeyKey:
    type: gcp:serviceaccount:Key
    name: mykey
    properties:
      serviceAccountId: ${myaccount.name}
variables:
  mykey:
    fn::invoke:
      function: gcp:serviceaccount:getAccountKey
      arguments:
        name: ${mykeyKey.name}
        publicKeyType: TYPE_X509_PEM_FILE
Copy

Using getAccountKey

Two invocation forms are available. The direct form accepts plain arguments and either blocks until the result value is available, or returns a Promise-wrapped result. The output form accepts Input-wrapped arguments and returns an Output-wrapped result.

function getAccountKey(args: GetAccountKeyArgs, opts?: InvokeOptions): Promise<GetAccountKeyResult>
function getAccountKeyOutput(args: GetAccountKeyOutputArgs, opts?: InvokeOptions): Output<GetAccountKeyResult>
Copy
def get_account_key(name: Optional[str] = None,
                    project: Optional[str] = None,
                    public_key_type: Optional[str] = None,
                    opts: Optional[InvokeOptions] = None) -> GetAccountKeyResult
def get_account_key_output(name: Optional[pulumi.Input[str]] = None,
                    project: Optional[pulumi.Input[str]] = None,
                    public_key_type: Optional[pulumi.Input[str]] = None,
                    opts: Optional[InvokeOptions] = None) -> Output[GetAccountKeyResult]
Copy
func GetAccountKey(ctx *Context, args *GetAccountKeyArgs, opts ...InvokeOption) (*GetAccountKeyResult, error)
func GetAccountKeyOutput(ctx *Context, args *GetAccountKeyOutputArgs, opts ...InvokeOption) GetAccountKeyResultOutput
Copy

> Note: This function is named GetAccountKey in the Go SDK.

public static class GetAccountKey 
{
    public static Task<GetAccountKeyResult> InvokeAsync(GetAccountKeyArgs args, InvokeOptions? opts = null)
    public static Output<GetAccountKeyResult> Invoke(GetAccountKeyInvokeArgs args, InvokeOptions? opts = null)
}
Copy
public static CompletableFuture<GetAccountKeyResult> getAccountKey(GetAccountKeyArgs args, InvokeOptions options)
public static Output<GetAccountKeyResult> getAccountKey(GetAccountKeyArgs args, InvokeOptions options)
Copy
fn::invoke:
  function: gcp:serviceaccount/getAccountKey:getAccountKey
  arguments:
    # arguments dictionary
Copy

The following arguments are supported:

Name This property is required. string
The name of the service account key. This must have format projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}/keys/{KEYID}, where {ACCOUNT} is the email address or unique id of the service account.
Project string
The ID of the project that the service account is present in. Defaults to the provider project configuration.
PublicKeyType string
The output format of the public key requested. TYPE_X509_PEM_FILE is the default output format.
Name This property is required. string
The name of the service account key. This must have format projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}/keys/{KEYID}, where {ACCOUNT} is the email address or unique id of the service account.
Project string
The ID of the project that the service account is present in. Defaults to the provider project configuration.
PublicKeyType string
The output format of the public key requested. TYPE_X509_PEM_FILE is the default output format.
name This property is required. String
The name of the service account key. This must have format projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}/keys/{KEYID}, where {ACCOUNT} is the email address or unique id of the service account.
project String
The ID of the project that the service account is present in. Defaults to the provider project configuration.
publicKeyType String
The output format of the public key requested. TYPE_X509_PEM_FILE is the default output format.
name This property is required. string
The name of the service account key. This must have format projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}/keys/{KEYID}, where {ACCOUNT} is the email address or unique id of the service account.
project string
The ID of the project that the service account is present in. Defaults to the provider project configuration.
publicKeyType string
The output format of the public key requested. TYPE_X509_PEM_FILE is the default output format.
name This property is required. str
The name of the service account key. This must have format projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}/keys/{KEYID}, where {ACCOUNT} is the email address or unique id of the service account.
project str
The ID of the project that the service account is present in. Defaults to the provider project configuration.
public_key_type str
The output format of the public key requested. TYPE_X509_PEM_FILE is the default output format.
name This property is required. String
The name of the service account key. This must have format projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}/keys/{KEYID}, where {ACCOUNT} is the email address or unique id of the service account.
project String
The ID of the project that the service account is present in. Defaults to the provider project configuration.
publicKeyType String
The output format of the public key requested. TYPE_X509_PEM_FILE is the default output format.

getAccountKey Result

The following output properties are available:

Id string
The provider-assigned unique ID for this managed resource.
KeyAlgorithm string
Name string
PublicKey string
The public key, base64 encoded
Project string
PublicKeyType string
Id string
The provider-assigned unique ID for this managed resource.
KeyAlgorithm string
Name string
PublicKey string
The public key, base64 encoded
Project string
PublicKeyType string
id String
The provider-assigned unique ID for this managed resource.
keyAlgorithm String
name String
publicKey String
The public key, base64 encoded
project String
publicKeyType String
id string
The provider-assigned unique ID for this managed resource.
keyAlgorithm string
name string
publicKey string
The public key, base64 encoded
project string
publicKeyType string
id str
The provider-assigned unique ID for this managed resource.
key_algorithm str
name str
public_key str
The public key, base64 encoded
project str
public_key_type str
id String
The provider-assigned unique ID for this managed resource.
keyAlgorithm String
name String
publicKey String
The public key, base64 encoded
project String
publicKeyType String

Package Details

Repository
Google Cloud (GCP) Classic pulumi/pulumi-gcp
License
Apache-2.0
Notes
This Pulumi package is based on the google-beta Terraform Provider.
Google Cloud v8.25.0 published on Thursday, Apr 3, 2025 by Pulumi