ヤマムギ

growing hard days.

*

cfn-signalの認証とネットワーク

   

AWS CloudFormationヘルパースクリプトのcfn-signalがCloudFormationへシグナルを送信する際の、認証とネットワークについてご質問がありましたので調べてみました。

結論

  • 認証は必要ありません。
  • CloudFormationのAPIエンドポイントへ到達できるネットワークが必要です。
    プライベートサブネットのEC2インスタンスからは、NAT Gateway→Internet Gatewayか、CloudFormationのVPCエンドポイントが必要です。

cfn-signalのユーザーガイドにも「cfn-signal は認証情報を必要としない」と記載があるのですが、一応試してみました。

検証した構成

テンプレート

共通のテンプレートを使用し、スタック作成時に指定するサブネットをパブリックサブネットとプライベートサブネットで分けました。
オートスケーリンググループのCreationPolicyでシグナルを1つ待っています。
EC2インスタンスのユーザーデータでcfn-signalを実行しています。
EC2インスタンスにはIAMロールを設定していませんので、認証情報は与えていません。

結果

パブリックサブネットを指定して作成したスタックは無事作成が完了しました。

プライベートサブネットを指定して作成したスタックは、タイムアウト10分後に次のエラーでオートスケーリンググループの作成がCREATE_FAILEDになりロールバックしました。
Received 0 SUCCESS signal(s) out of 1. Unable to satisfy 100% MinSuccessfulInstancesPercent requirement

結局のところ認証は?

CloudTrailで該当のログを見てみました。

  • eventname: SignalResource
  • sourceipaddress: EC2のパブリックIPアドレス
  • useragent: CfnTools/2.0-30 (Linux-6.1.97-104.177.amzn2023.x86_64-x86_64-with-glibc2.34) python/3.9.16
  • userIdentity: {type=Unknown, principalid=, arn=null, accountid=123456789012, invokedby=null, accesskeyid=null, username=, sessioncontext=null}
  • {“stackName”:”PublicTest”,”logicalResourceId”:”WebServerGroup”,”uniqueId”:”i-059e89e7746dd04c7″,”status”:”SUCCESS”}

アカウントは指定していますが、匿名ユーザーとしてSignalResourceアクションを許可しているようですね。


最後までお読みいただきましてありがとうございました!

「AWS認定資格試験テキスト&問題集 AWS認定ソリューションアーキテクト - プロフェッショナル 改訂第2版」という本を書きました。

「AWS認定資格試験テキスト AWS認定クラウドプラクティショナー 改訂第3版」という本を書きました。

「AWS認定資格試験テキスト AWS認定AIプラクティショナー」という本を書きました。

「AWS教科書 AWS認定デベロッパーアソシエイト テキスト&問題集 」という本を書きました。

「要点整理から攻略するAWS認定ソリューションアーキテクト-アソシエイト」という本を書きました。

「AWSではじめるLinux入門ガイド」という本を書きました。

 - AWS ,

  関連記事

LINE BOT AWARDS 2017に応募しました

LINEの友達追加QRです。 動作のご確認にどうぞ LINE BOT AWARD …

ユーザーガイドの方法でGithubからCodeCommitへリポジトリを移行する

GitリポジトリをAWS CodeCommitに移行するを参照しました。 環境 …

S3 VPCエンドポイント設定前と設定後を確認

S3のVPCエンドポイントを設定した際に、S3バケットのAPIエンドポイントへの …

CloudWatch Logs機密データ保護を設定しました

Amazon CloudWatch Logs を使用して機密データを保護するがリ …

Route 53サブドメインホストゾーンを作成したら、元のホストゾーンにNSレコードを作成する自動化

ハンズオン環境でRoute 53のホストゾーンを触ってほしい際に、サブドメインを …

AWS WAFの個別ルールを設定する

Web ACLを選択して、[Add my own rules and rule …

API Gateway 作成済REST APIの定義をSwaggerの形式でエクスポート

SAMで似たようなAPIを作りたくて、エクスポートしました。 Swaggerは、 …

AWS Systems Manager Session ManagerでLinuxインスタンスのRun Asサポートを有効にする

AWS Systems Manager Session Managerの設定画面 …

VPC環境でLambdaを100同時実行してプライベートIPアドレスを確認した

2019年9月発表のLambda 関数が VPC 環境で改善されます以降に、VP …

AWS Client VPNの接続ログを確認しました

AWS Client VPNを設定しましたで証明書とかせっかく作ったので、いろい …