このハンズオンについて
この手順は、JAWS-UG CLI専門支部 #58 KMS入門で実施したものです。
前提条件
必要な権限
作業にあたっては、以下の権限を有したIAMユーザもしくはIAMロールを利用してください。
- KMSに対するフルコントロール権限
- S3に関するフルコントロール権限
- STSに関するフルコントロール権限
- IAMに関するフルコントロール権限
0. 準備
0.1. リージョンを指定
コマンド
export AWS_DEFAULT_REGION='ap-northeast-1'
0.2. 資格情報を確認
コマンド
aws configure list
インスタンスプロファイルを設定したEC2インスタンスでアクセスキーを設定せずに実行した場合、以下のようになります。
結果
Name Value Type Location
---- ----- ---- --------
profile <not set> None None
access_key ****************RDPA iam-role
secret_key ****************9GA8 iam-role
region ap-northeast-1 env AWS_DEFAULT_REGION
0.3. バージョン確認
コマンド
aws --version
結果
aws-cli/1.10.56 Python/2.7.10 Linux/4.4.15-25.57.amzn1.x86_64 botocore/1.4.46
0.4. バージョンアップ(必要に応じて)
コマンド
sudo pip install -U awscli
0.5. 変数の設定
コマンド
ADMIN_NAME='jawsug-cli-admin'
USER_NAME='jawsug-cli-user'
ARN_S3='arn:aws:iam::aws:policy/AmazonS3FullAccess'
AWS_ID=$(aws sts get-caller-identity \
--query Account \
--output text) \
&& echo ${AWS_ID}
BUCKET_NAME="kms-test-${AWS_ID}" \
&& echo ${BUCKET_NAME}
ALIAS="alias/cli-handson0815"
KEY_ID=$(aws kms list-aliases \
--query "Aliases[?AliasName == \`${ALIAS}\`].TargetKeyId" \
--output text) \
&& echo ${KEY_ID}
1. S3バケットの削除
1.0 ユーザの切り替え
ここで、最初に利用していた認証情報に切り替えます。
インスタンスプロファイルを利用していた場合は、環境変数をリセットしてください。
コマンド
unset AWS_DEFAULT_PROFILE
コマンド
aws configure list
結果
Name Value Type Location
---- ----- ---- --------
profile <not set> None None
access_key ****************EPRQ iam-role
secret_key ****************RQyb iam-role
region ap-northeast-1 env AWS_DEFAULT_REGION
別のプロファイルを利用していた場合には、プロファイルを切り替えてください。
コマンド
export AWS_DEFAULT_PROFILE='(切り替え前のプロファイル名)'
コマンド
aws configure list
1.1. S3バケットの削除(パラメータの確認)
コマンド
cat << ETX
BUCKET_NAME: ${BUCKET_NAME}
ETX
結果
BUCKET_NAME: kms-test-************
1.2. S3バケットの削除
コマンド
aws s3 rb s3://${BUCKET_NAME} \
--force
結果
delete: s3://kms-test-************/test.txt
remove_bucket: s3://kms-test-************/
2. カスタマーマスターキーの削除
2.1. カスタマーマスターキーの削除(パラメータの確認)
コマンド
cat << ETX
KEY_ID: ${KEY_ID}
ETX
結果
KEY_ID: ********-****-****-****-************
2.2. カスタマーマスターキーの削除
削除保留期間は7日が最小値です。
コマンド
aws kms schedule-key-deletion \
--key-id ${KEY_ID} \
--pending-window-in-days 7
結果
{
"KeyId": "arn:aws:kms:ap-northeast-1:************:key/********-****-****-****-************",
"DeletionDate": 1471219200.0
}
2.3. カスタマーマスターキーの削除(確認)
KeyStateが変わるまでに少々時間がかかるようです。
PendingDeletionになっていれば成功です。
コマンド
aws kms describe-key \
--key-id ${KEY_ID}
結果
{
"KeyMetadata": {
"KeyId": "********-****-****-****-************",
"Description": "JAWS-UG CLI 58 KMS at Co-Edo",
"DeletionDate": 1471219200.0,
"Enabled": false,
"KeyUsage": "ENCRYPT_DECRYPT",
"KeyState": "PendingDeletion",
"CreationDate": 1470540911.677,
"Arn": "arn:aws:kms:ap-northeast-1:************:key/********-****-****-****-************",
"AWSAccountId": "************"
}
}
3. IAMユーザの削除
3.1. 変数の確認
コマンド
cat << ETX
ADMIN_NAME: ${ADMIN_NAME}
USER_NAME: ${USER_NAME}
ETX
結果
ADMIN_NAME: jawsug-cli-admin
USER_NAME: jawsug-cli-user
3.2. アクセスキーの削除
コマンド
aws iam delete-access-key \
--user-name ${ADMIN_NAME} \
--access-key-id "$(cat ${ADMIN_NAME}.json | jq -r .AccessKey.AccessKeyId)"
結果
(戻り値無し)
コマンド
aws iam delete-access-key \
--user-name ${USER_NAME} \
--access-key-id "$(cat ${USER_NAME}.json | jq -r .AccessKey.AccessKeyId)"
結果
(戻り値無し)
3.3. Managed Policyのデタッチ
コマンド
aws iam detach-user-policy \
--user-name ${USER_NAME} \
--policy-arn ${ARN_S3}
結果
(戻り値無し)
3.4. IAMユーザの削除
コマンド
aws iam delete-user \
--user-name ${ADMIN_NAME}
結果
(戻り値無し)
コマンド
aws iam delete-user \
--user-name ${USER_NAME}
結果
(戻り値無し)
3.5. 確認
コマンド
aws iam get-user \
--user-name ${ADMIN_NAME}
結果
An error occurred (NoSuchEntity) when calling the GetUser operation: The user with name jawsug-cli-admin cannot be found.
コマンド
aws iam get-user \
--user-name ${USER_NAME}
結果
An error occurred (NoSuchEntity) when calling the GetUser operation: The user with name jawsug-cli-user cannot be found.
以上
お疲れ様でした。