This is the new AWS CloudFormation Template Reference Guide. Please update your bookmarks and links. For help getting started with CloudFormation, see the AWS CloudFormation User Guide.
AWS::Lambda::LayerVersionPermission
The AWS::Lambda::LayerVersionPermission resource adds permissions to the resource-based policy of
      a version of an Lambda
        layer. Use this action to grant layer usage permission to other accounts. You can grant permission to a
      single account, all AWS accounts, or all accounts in an organization.
Important
Since the release of the UpdateReplacePolicy both UpdateReplacePolicy and DeletionPolicy are required to protect your Resources/LayerPermissions from deletion.
Syntax
To declare this entity in your AWS CloudFormation template, use the following syntax:
JSON
{ "Type" : "AWS::Lambda::LayerVersionPermission", "Properties" : { "Action" :String, "LayerVersionArn" :String, "OrganizationId" :String, "Principal" :String} }
YAML
Type: AWS::Lambda::LayerVersionPermission Properties: Action:StringLayerVersionArn:StringOrganizationId:StringPrincipal:String
Properties
- Action
- 
                    The API action that grants access to the layer. For example, lambda:GetLayerVersion.Required: Yes Type: String Pattern: lambda:GetLayerVersionMinimum: 0Maximum: 22Update requires: Replacement 
- LayerVersionArn
- 
                    The name or Amazon Resource Name (ARN) of the layer. Required: Yes Type: String Pattern: (arn:[a-zA-Z0-9-]+:lambda:[a-zA-Z0-9-]+:\d{12}:layer:[a-zA-Z0-9-_]+)|[a-zA-Z0-9-_]+Minimum: 1Maximum: 140Update requires: Replacement 
- OrganizationId
- 
                    With the principal set to *, grant permission to all accounts in the specified organization.Required: No Type: String Pattern: o-[a-z0-9]{10,32}Minimum: 0Maximum: 34Update requires: Replacement 
- Principal
- 
                    An account ID, or *to grant layer usage permission to all accounts in an organization, or all AWS accounts (iforganizationIdis not specified). For the last case, make sure that you really do want all AWS accounts to have usage permission to this layer.Required: Yes Type: String Pattern: \d{12}|\*|arn:(aws[a-zA-Z-]*):iam::\d{12}:rootUpdate requires: Replacement 
Return values
Ref
When you pass the logical ID of this resource to the intrinsic Ref function, Ref returns the layer version ARN and statement ID, such as
        arn:aws:lambda:us-east-2:123456789012:layer:my-layer:1#engineering-org.
For more information about using the Ref function, see Ref.
Fn::GetAtt
Examples
Layer Version Permission
Grant layer use permission to accounts in organization o-t194hfs8cz.
JSON
"MyLayerPermission": { "Type": "AWS::Lambda::LayerVersionPermission", "Properties": { "Action": "lambda:GetLayerVersion", "LayerVersionArn": "arn:aws:lambda:us-east-2:123456789012:layer:my-layer:1", "OrganizationId": "o-t194hfs8cz", "Principal": "*" } }
YAML
MyLayerPermission: Type: AWS::Lambda::LayerVersionPermission Properties: Action: lambda:GetLayerVersion LayerVersionArn: arn:aws:lambda:us-east-2:123456789012:layer:my-layer:1 OrganizationId: o-t194hfs8cz Principal: *