Skip to content
GitHubXDiscord

Permission

The Permission resource allows you to manage AWS ACMPCA Permissions for certificate authorities, enabling you to specify actions that can be performed by specific principals.

Create a basic permission for a certificate authority allowing a specific action for a principal:

import AWS from "alchemy/aws/control";
const acmPermission = await AWS.ACMPCA.Permission("basicPermission", {
CertificateAuthorityArn: "arn:aws:acm-pca:us-east-1:123456789012:certificate-authority/abcd1234-efgh-5678-ijkl-90mnopqrst",
Actions: ["acm-pca:IssueCertificate"],
Principal: "arn:aws:iam::123456789012:role/MyRole"
});

Specify additional permissions including the optional SourceAccount to restrict the actions to a specific AWS account:

const advancedPermission = await AWS.ACMPCA.Permission("advancedPermission", {
CertificateAuthorityArn: "arn:aws:acm-pca:us-east-1:123456789012:certificate-authority/abcd1234-efgh-5678-ijkl-90mnopqrst",
Actions: [
"acm-pca:IssueCertificate",
"acm-pca:GetCertificate"
],
Principal: "arn:aws:iam::123456789012:role/MyRole",
SourceAccount: "123456789012"
});

Demonstrate granting multiple actions to a principal for a certificate authority:

const multipleActionsPermission = await AWS.ACMPCA.Permission("multipleActionsPermission", {
CertificateAuthorityArn: "arn:aws:acm-pca:us-east-1:123456789012:certificate-authority/abcd1234-efgh-5678-ijkl-90mnopqrst",
Actions: [
"acm-pca:IssueCertificate",
"acm-pca:RevokeCertificate",
"acm-pca:GetCertificate"
],
Principal: "arn:aws:iam::123456789012:role/MyRole"
});

Show how to adopt an existing permission instead of failing when the permission already exists:

const adoptExistingPermission = await AWS.ACMPCA.Permission("adoptExistingPermission", {
CertificateAuthorityArn: "arn:aws:acm-pca:us-east-1:123456789012:certificate-authority/abcd1234-efgh-5678-ijkl-90mnopqrst",
Actions: ["acm-pca:IssueCertificate"],
Principal: "arn:aws:iam::123456789012:role/MyRole",
adopt: true
});