ps/Modules/Alkami.DevOps.SystemEngineering/Private/Get-ServerlessServiceAccountIamPolicyString.ps1

38 lines
1.2 KiB
PowerShell
Raw Normal View History

2023-05-30 22:51:22 -07:00
function Get-ServerlessServiceAccountIamPolicyString {
<#
.SYNOPSIS
Returns the string for an AWS IAM policy for serverless service accounts.
.PARAMETER SecretArns
[string[]] The AWS ARNs for the secrets associated with the serverless service account.
.EXAMPLE
Get-ServerlessServiceAccountIamPolicyString -SecretArns @( 'example' )
{"Version":"2012-10-17","Statement":[{"Effect":"Allow","Sid":"AllowSecretsManagerAccess","Resource":["example"],"Action":["secretsmanager:DescribeSecret","secretsmanager:GetSecretValue"]}]}
#>
[CmdletBinding()]
[OutputType([string])]
param(
[Parameter(Mandatory = $true)]
[ValidateNotNullOrEmpty()]
[string[]] $SecretArns
)
$policyObj = @{
Version = "2012-10-17"
Statement = @(
@{
Sid = "AllowSecretsManagerAccess"
Effect = "Allow"
Action = @(
"secretsmanager:DescribeSecret",
"secretsmanager:GetSecretValue"
)
Resource = $SecretArns
}
)
}
return (ConvertTo-Json -InputObject $policyObj -Compress -Depth 10)
}