ProfilePermission
The ProfilePermission resource allows you to manage permissions for AWS Signer profiles, enabling access controls for signing operations. For more details, refer to the AWS Signer ProfilePermissions documentation.
Minimal Example
Create a basic ProfilePermission with required properties and one optional property.
ts
import AWS from "alchemy/aws/control";
const profilePermission = await AWS.Signer.ProfilePermission("basicProfilePermission", {
Action: "signer:StartSigningJob",
StatementId: "AllowSigningJobs",
ProfileName: "MySigningProfile",
Principal: "arn:aws:iam::123456789012:role/MySigningRole",
ProfileVersion: "1" // Optional
});
Advanced Configuration
Configure a ProfilePermission with additional properties and a custom action.
ts
const advancedProfilePermission = await AWS.Signer.ProfilePermission("advancedProfilePermission", {
Action: "signer:PutSigningProfile",
StatementId: "AllowPutSigningProfile",
ProfileName: "AdvancedSigningProfile",
Principal: "arn:aws:iam::123456789012:role/MyAdvancedSigningRole",
ProfileVersion: "2", // Optional
adopt: true // Adopt existing resource if it already exists
});
Granting Permissions to Multiple Principals
You can create a ProfilePermission that grants access to multiple IAM roles or users for signing operations.
ts
const multiPrincipalProfilePermission = await AWS.Signer.ProfilePermission("multiPrincipalProfilePermission", {
Action: "signer:StartSigningJob",
StatementId: "AllowMultiSigningJobs",
ProfileName: "MultiPrincipalSigningProfile",
Principal: "arn:aws:iam::123456789012:role/MyFirstSigningRole,arn:aws:iam::123456789012:role/MySecondSigningRole"
});
Using IAM Policy Document Format
You can specify the Action
using a more detailed IAM policy JSON structure.
ts
const iamPolicyProfilePermission = await AWS.Signer.ProfilePermission("iamPolicyProfilePermission", {
Action: JSON.stringify({
Version: "2012-10-17",
Statement: [
{
Effect: "Allow",
Action: [
"signer:StartSigningJob",
"signer:GetSigningProfile"
],
Resource: "*"
}
]
}),
StatementId: "AllowSigningActions",
ProfileName: "IamPolicySigningProfile",
Principal: "arn:aws:iam::123456789012:role/MyPolicySigningRole"
});