How to disable CloudFormation Input parameter for user

0

I am trying to use the following input parameter in my template:

AmiID:
    Type: AWS::SSM::Parameter::Value<AWS::EC2::Image::Id>
    Description: Only the following image is supported currently.
    Default: /aws/service/ami-amazon-linux-latest/amzn2-ami-hvm-x86_64-gp2
    ConstraintDescription: Must be a supported AMI ID.

And, i don't want the user to mess with this input parameter. Is it possible to restrict user from editing this particular field in stack creation process?

已提問 9 個月前檢視次數 484 次
3 個答案
2
已接受的答案

I assume you are using this for EC2 resource, e.g.

Parameters:
  LatestAmiId:
    Type: 'AWS::SSM::Parameter::Value<AWS::EC2::Image::Id>'
    Default: '/aws/service/ami-amazon-linux-latest/amzn2-ami-hvm-x86_64-gp2'

Resources:
 Instance:
    Type: 'AWS::EC2::Instance'
    Properties:
      ImageId: !Ref LatestAmiId

An option is not to specify it as a parameter. Instead use resolve:ssm function as per below

Resources:
 Instance:
    Type: 'AWS::EC2::Instance'
    Properties:
      ImageId: "{{resolve:ssm:/aws/service/ami-amazon-linux-latest/amzn2-ami-hvm-x86_64-gp2}}"
AWS
專家
Mike_L
已回答 9 個月前
1

Hi

You can probably use the AllowedValues in CloudFormation to create a list of allowed values. Only the values in this list can be used, so if you have a list with only one value the user must use that.

AmiID:
    Type: AWS::SSM::Parameter::Value<AWS::EC2::Image::Id>
    Description: Only the following image is supported currently.
    Default: /aws/service/ami-amazon-linux-latest/amzn2-ami-hvm-x86_64-gp2
    AllowedValues:
        -  /aws/service/ami-amazon-linux-latest/amzn2-ami-hvm-x86_64-gp2
    ConstraintDescription: Must be a supported AMI ID.
profile picture
專家
已回答 9 個月前
profile picture
專家
已審閱 9 個月前
0

Not sure if possible but one approach could be to look into the Cloudformation Conditions and apply to the input: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/conditions-section-structure.html

profile picture
專家
已回答 9 個月前

您尚未登入。 登入 去張貼答案。

一個好的回答可以清楚地回答問題並提供建設性的意見回饋,同時有助於提問者的專業成長。

回答問題指南