0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【AWS】手動設定されたNACLエントリーをスタック管理下にする

Last updated at Posted at 2022-10-21

はじめに

仕事でstackからNACL作成しているが、エントリーの一部が手動作成されている場面に遭遇。
手動作成されたエントリーをstack管理と出来るのかを確認したく、検証したもの。
備忘の意味も込めて検証結果を記載する。

◼️検証シナリオ

スタックで作成したNACLエントリーと手動作成したNACLエントリーが混在している状態。
この手動作成されたエントリーをスタック管理化とする。

・検証説明図

以下エントリー2をスタック管理に変更する。
状況.png

・Stackテンプレート(抜粋)

スタックで作成したNACLエントリー 

SET_NACL
  InboundNetworkAclEntry10001:
    Type: 'AWS::EC2::NetworkAclEntry'
    Properties:
      NetworkAclId: !Ref NetworkAcl
      RuleNumber: '10001'
      Protocol: '6'
      RuleAction: allow
      Egress: 'false'
      CidrBlock: 0.0.0.0/0
      PortRange:
        From: '80'
        To: '80'
  OutBoundNetworkAclEntry10001:
    Type: 'AWS::EC2::NetworkAclEntry'
    Properties:
      NetworkAclId: !Ref NetworkAcl
      RuleNumber: '10001'
      Protocol: '6'
      RuleAction: allow
      Egress: 'true'
      CidrBlock: 0.0.0.0/0
      PortRange:
        From: '80'
        To: '80'

・MCから現状設定を確認

10001がスタックで作成されたエントリー
10002が手動作成されたエントリー
 ※デフォルトのエントリーは、画像からは割愛
image.png
image.png

◼️検証

1.Stackテンプレート修正

 手動作成したエントリーと同じ情報をStackテンプレートと同じになるように10002を追加
以下修正後のStackテンプレート(抜粋)

SET_NACL 
  InboundNetworkAclEntry10001:
    Type: 'AWS::EC2::NetworkAclEntry'
    Properties:
      NetworkAclId: !Ref NetworkAcl
      RuleNumber: '10001'
      Protocol: '6'
      RuleAction: allow
      Egress: 'false'
      CidrBlock: 0.0.0.0/0
      PortRange:
        From: '80'
        To: '80'
  InboundNetworkAclEntry10002:
    Type: 'AWS::EC2::NetworkAclEntry'
    Properties:
      NetworkAclId: !Ref NetworkAcl
      RuleNumber: '10002'
      Protocol: '6'
      RuleAction: allow
      Egress: 'false'
      CidrBlock: 0.0.0.0/0
      PortRange:
        From: '22'
        To: '22'
  OutBoundNetworkAclEntry10001:
    Type: 'AWS::EC2::NetworkAclEntry'
    Properties:
      NetworkAclId: !Ref NetworkAcl
      RuleNumber: '10001'
      Protocol: '6'
      RuleAction: allow
      Egress: 'true'
      CidrBlock: 0.0.0.0/0
      PortRange:
        From: '80'
        To: '80'
  OutBoundNetworkAclEntry10002:
    Type: 'AWS::EC2::NetworkAclEntry'
    Properties:
      NetworkAclId: !Ref NetworkAcl
      RuleNumber: '10002'
      Protocol: '6'
      RuleAction: allow
      Egress: 'true'
      CidrBlock: 0.0.0.0/0
      PortRange:
        From: '443'
        To: '443'

2.スタック更新

 作成したテンプレートを使ってStack更新すると、スタック上は新規追加となる為、add扱いとなった。
image.png
Stack更新のイベント上は既存設定が削除されたり、エラーは表示されない。
image.png

3.マネージメントコンソールから設定確認

手動作成したエントリーが残っていることを確認。
 ※デフォルトのエントリーは、画像からは割愛
image.png
image.png

■検証結果

手動作成したエントリーをStackから上書きするように更新しても、一時的に既存設定が削除されたり、エラーで更新できないとはならず、更新可能であることが分かった。
自身の検証だけでは不安であった為、AWSサポートにも聞いてみると、処理としては手動設定したエントリーとStackが紐づくのみと回答あり。

さいごに

サービスによってStackの挙動は変わる為、都度検証は必要だと思う。
また検証する機会があれば、検証結果を記載したいと思う。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?