この記事について
本手順は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
- 準備
=======
まず変数の確認をします。
変数の確認
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"
]