AWS
aws-cli
Inspector
CloudWatchEvents

[JAWS-UG CLI] #91 Amazon Inspector入門 (10) : Inspector関連リソース削除

この記事について

本手順はJAWS-UG CLI専門支部の実施したハンズオン手順です。
全工程については下記総合案内をご確認ください。
#91 Amazon Inspector 入門 (CloudWatch Eventで定期診断編)

課金が発生する項目のみ削除します。
IAMロールとIAMポリシーについてはマネコンか作成手順書を参考に削除してください。

前提条件

必要な権限

作業にあたっては、以下の権限を有したIAMユーザもしくはIAMロールを利用してください。

  • 以下のサービスに対するフルコントロール権限
    • IAM
    • EC2
    • CloudWatch Event
    • Inspector

AWS CLIのバージョン

以下のバージョンで動作確認済

  • AWS CLI 1.11.122
コマンド
aws --version

結果(例):

 aws-cli/1.11.122 Python/2.7.10 Linux/4.1.27-25.49.amzn1.x86_64 botocore/1.5.85

バージョンが古い場合は最新版に更新しましょう。

コマンド
sudo -H pip install -U awscli

0. 準備

まず変数の確認をします。

変数の確認
cat << ETX

        AWS_DEFAULT_PROFILE: (0.1) ${AWS_DEFAULT_PROFILE}

ETX

結果(例):

    AWS_DEFAULT_PROFILE: (0.1) xxxxxx

変数が入っていない、適切でない場合は、それぞれの手順番号について作業を
行います。

0.1. プロファイルの指定

プロファイルの一覧を確認します。

コマンド
cat ~/.aws/credentials \
       | grep '\[' \
       | sed 's/\[//g' | sed 's/\]//g'

結果(例):

  iamFull-prjz-mbpr13
  <IAMのフル権限を許可されたプロファイル>
変数の設定
export AWS_DEFAULT_PROFILE='<IAMのフル権限を許可されたプロファイル>'

最終確認

変数の確認
cat << ETX

        AWS_DEFAULT_PROFILE: (0.1) ${AWS_DEFAULT_PROFILE}

ETX

結果(例):

    AWS_DEFAULT_PROFILE: (0.1) xxxxxx

本作業

1.1.CloudWatch Events削除

コマンド
cat << ETX

  EVENTS_RULE_NAME:    ${EVENTS_RULE_NAME}
  EVENTS_TARGET_ID:    ${EVENTS_TARGET_ID}

ETX

結果:

  EVENTS_RULE_NAME:    inspector-event
  EVENTS_TARGET_ID:    AllowScheduledEvents

1.2.CloudWatch Eventsルール確認

コマンド
aws events describe-rule --name \
  ${EVENTS_RULE_NAME}

結果(例):

 {
     "ScheduleExpression": "rate(30 minutes)",
     "Name": "inspector-event",
     "State": "ENABLED",
     "Arn": "arn:aws:events:ap-northeast-1:xxxxx:rule/inspector-event",
     "Description": "Schedules a recurring Amazon Inspector assessment run"
 }

1.3.CloudWatch Eventsターゲット削除

コマンド
aws events remove-targets \
  --rule ${EVENTS_RULE_NAME} \
  --ids ${EVENTS_TARGET_ID}

結果(例):

 {
     "FailedEntries": [],
     "FailedEntryCount": 0
 }

1.4.CloudWatch Eventsルール削除

コマンド
aws events delete-rule --name \
  ${EVENTS_RULE_NAME}

結果(例):

 出力なし

1.5.CloudWatch Eventsルール削除確認

コマンド
aws events describe-rule --name \
  ${EVENTS_RULE_NAME}

結果(例):

 An error occurred (ResourceNotFoundException) when calling the DescribeRule operation: Rule inspector-event does not exist.

2.1.Inspector削除

コマンド
cat << ETX

  ASSESSMENT_TARGET_ARN:    ${ASSESSMENT_TARGET_ARN}

ETX

結果:

 ASSESSMENT_TARGET_ARN:    arn:aws:inspector:ap-northeast-1:969698055101:target/0-z0z4RqO8

2.2.InspectorのAssessment Target確認

コマンド
aws inspector describe-assessment-targets \
  --assessment-target-arns ${ASSESSMENT_TARGET_ARN}

結果(例):

 {
     "assessmentTargets": [
         {
             "resourceGroupArn": "arn:aws:inspector:ap-northeast-1:xxxxx:resourcegroup/0-0OAlSLLu",
             "createdAt": 1503037554.598,
             "name": "Inspector_target",
             "arn": "arn:aws:inspector:ap-northeast-1:xxxxx:target/0-wAZEOH5F",
             "updatedAt": 1503037554.598
         }
     ],
     "failedItems": {}
 }

2.3.InspectorのAssessment Target削除

assessment-targetを削除すると関連するテンプレートと結果が全て削除されます

コマンド
aws inspector delete-assessment-target \
  --assessment-target-arn ${ASSESSMENT_TARGET_ARN}

結果(例):

 出力なし

2.4.InspectorのAssessment Target確認

コマンド
aws inspector describe-assessment-targets \
  --assessment-target-arns ${ASSESSMENT_TARGET_ARN}

結果(例):

  {
      "assessmentTargets": [],
      "failedItems": {
          "arn:aws:inspector:ap-northeast-1:xxxxx:target/0-z0z4RqO8": {
              "retryable": false,
              "failureCode": "ITEM_DOES_NOT_EXIST"
          }
      }
  }

3.1.診断用IEC2インスタンス削除

コマンド
cat << ETX

  EC2_INSTANCE_ID:   ${EC2_INSTANCE_ID}

ETX

結果(例):

  EC2_INSTANCE_ID:   i-xxxxxxxxxxxx

3.2.診断用IEC2インスタンス確認

コマンド
aws ec2 describe-instances --instance-ids ${EC2_INSTANCE_ID} \
  --query 'Reservations[].Instances[].State.Name'

結果(例):

 [
     "running"
 ] 

3.3.診断用IEC2インスタンス削除

コマンド
aws ec2 terminate-instances --instance-ids ${EC2_INSTANCE_ID}

結果(例):

 {
     "TerminatingInstances": [
         {
             "InstanceId": "i-xxxxxxxxxxxx",
             "CurrentState": {
                 "Code": 32,
                 "Name": "shutting-down"
             },
             "PreviousState": {
                 "Code": 16,
                 "Name": "running"
             }
         }
     ]
 }

3.4.診断用IEC2インスタンス削除確認

コマンド
aws ec2 describe-instances --instance-ids ${EC2_INSTANCE_ID} \
  --query 'Reservations[].Instances[].State.Name'

結果(例):

 [
     "terminated"
 ] 

完了