aws-nukeの実行するためのステップファンクションワークフローを手動で開始方法

0

https://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/automate-deletion-of-aws-resources-by-using-aws-nuke.html AWS リソースの削除を実施するため上記URLの実行をしてます。 その中で「ステップファンクションワークフローを手動で開始します」という手順がありますが、ステップファンクションワークフローを手動で開始するにはどの様な手順を踏めば良いのでしょうか?AWSの操作に余り詳しくないので詳しくお教え下さい。

また、スタックを作成するため下記コマンドを実行後、スタックのstatusを見ると「ROLLBACK_COMPLETE」と表示されています。 こちらは問題ありませんでしょうか?問題がある場合対応方法をお教え下さい。

aws cloudformation create-stack
--stack-name NukeCleanser
--template-body file://nuke-cfn-stack.yaml
--region ap-northeast-1
--capabilities CAPABILITY_NAMED_IAM \

どうぞよろしくお願い致します。

9 Antworten
1

ROLLBACK_COMPLETEはスタックの作成に失敗しています。
CloudFormationの画面からスタックの「イベント」タブを確認してどのリソースの作成に失敗しているか (どのような原因で失敗しているか) 確認する必要があります。

ステップファンクションワークフローを手動で開始します

こちらはStepFunctionの画面から対象のステートマシンを開いて「実行を開始」をクリックしたときに入力するJSONだと思います。

profile picture
EXPERTE
beantwortet vor 6 Monaten
  • 内容を見た限り、S3バケットの作成で問題があるようです。 S3バケット名の文字数を確認していただけますでしょうか?

1

内容を見た限り、S3バケットの作成で問題があるようです。
S3バケット名の文字数を確認していただけますでしょうか?

profile picture
EXPERTE
beantwortet vor 6 Monaten
1

エラーの内容を読むとわかるのですが、「Bucket name should be between 3 and 63 characters long」と記載されています。
S3バケット名の長さは3文字から63文字以内に収まるように設定する必要があります。

profile picture
EXPERTE
beantwortet vor 6 Monaten
1

問題があるのはCloudFormationテンプレートによって作成されるS3バケットの名前です。
手動で作成したものは関係ありません。
CloudFormationテンプレートの中身を確認しました。
474~502行目でエラーが出ているS3バケットを作成しています。
おそらく"BucketName"で結合したりしている内容が長くなっていて作成時にエラーが出ているのだと思います。

  NukeS3Bucket:
    Type: AWS::S3::Bucket
    DeletionPolicy: Retain # should empty the S3 bucket contents if you want to delete the S3 when the stack is deleted
    UpdateReplacePolicy: Retain
    Properties:
      BucketName: !Join
        - '-'
        - - !Ref BucketName
          - !Ref AWS::AccountId
          - !Ref AWS::Region
          - !Select
            - 0
            - !Split
              - '-'
              - !Select
                - 2
                - !Split
                  - /
                  - !Ref AWS::StackId
      PublicAccessBlockConfiguration:
        BlockPublicAcls: true
        IgnorePublicAcls: true
        BlockPublicPolicy: true
        RestrictPublicBuckets: true
      Tags:
        - Key: DoNotNuke
          Value: 'True'
        - Key: owner
          Value: !Ref Owner

CloudFormation実行時にAWS CLIのオプションにパラメータを追加してみてください。
デフォルトだとバケット名の接頭辞が"nuke-account-cleanser-config"になるようなのでそれを"nuke-conf"にして短くすることで対応する感じです。

aws cloudformation create-stack \
  --stack-name NukeCleanser \
  --template-body file://nuke-cfn-stack.yaml \
  --region <Region> \
  --capabilities CAPABILITY_NAMED_IAM \
  --parameters ParameterKey=BucketName,ParameterValue=nuke-conf
profile picture
EXPERTE
beantwortet vor 6 Monaten
0

スタックの「イベント」タブ 回答有難うございます。

スタックの「イベント」タブを確認したところ添付の通りでした。 ”ステートマシンを開いて「実行を開始」”については確認します。

どうぞよろしくお願い致します。

su-
beantwortet vor 6 Monaten
0

お返事有難うございます。

S3バケットは作成してません。

なんという名のバケットを作成すればよろしいでしょうか? nuke-account-cleanser-config-{AWS::AccountId}-ap-northeast-1というバケットを作成しましたが結果はかわりませんでした。

どうぞよろしくお願いいたします

su-
beantwortet vor 6 Monaten
0

再度のお返事有難うございました。

また、下記の回答ですが、少し言葉が足りなかったと思ったので訂正させて頂きます。 https://repost.aws/questions/QUtbD9t9ooSq-D_PQR9dJhHw/aws-nukeの実行するためのステップファンクションワークフローを手動で開始方法#AN2L_9H7urTVG7C0ovZIYwEw

=======訂正前======== S3バケットは作成してません。

なんという名のバケットを作成すればよろしいでしょうか? nuke-account-cleanser-config-{AWS::AccountId}-ap-northeast-1というバケットを作成しましたが結果はかわりませんでした。 =======訂正前========

********訂正後******** S3バケットは作成してませんでした。

そのため、 https://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/automate-deletion-of-aws-resources-by-using-aws-nuke.htmlの 「S3 バケットを準備します。」の手順を参考にnuke-account-cleanser-config-{AWS::AccountId}-ap-northeast-1というバケットを作成後、 スタックを再作成ましたが出力されたイベント内容含め結果は変わりませんでした。

nuke-account-cleanser-config-{AWS::AccountId}-ap-northeast-1は私のIDに置き換えると56文字で3~63文字の間に納まってます。

なんという名のバケットを作成すればよろしいでしょうか?

********訂正後********

どうぞよろしくお願いします。

su-
beantwortet vor 6 Monaten
0

回答有難うございました。

スタック作成できました。

”ステートマシンを開いて「実行を開始」”は別途確認します。

どうぞよろしくお願いします。

su-
beantwortet vor 6 Monaten
0

お世話になっております。

他の事例や私の検証用環境をテストして、「ステップファンクションワークフロー」を利用しないで、 環境の削除が可能なことが分かりましたのでaws-nukeとcloudshellのみで実行しようと思います。

色々回答頂いたり、一部ですがCloudFormationなどの経験ができ勉強になりました。

どうもありがとうございました

su-
beantwortet vor 5 Monaten

Du bist nicht angemeldet. Anmelden um eine Antwort zu veröffentlichen.

Eine gute Antwort beantwortet die Frage klar, gibt konstruktives Feedback und fördert die berufliche Weiterentwicklung des Fragenstellers.

Richtlinien für die Beantwortung von Fragen