この記事について
JAWS-UG CLI専門支部 #81 Amazon EC2 Systems Manager 入門で実施するハンズオン用の手順書です。
前提条件
必要な権限
作業にあたっては、以下の権限を有したIAMユーザもしくはIAMロールを利用してください。
- EC2 Systems Manager(ssm)のフルコントロール権限
- EC2のフルコントロール権限
- CloudFormationの関するフルコントロール権限
- IAMの関するフルコントロール権限
- S3の関するフルコントロール権限
- SNSの関するフルコントロール権限
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 ****************QSAA iam-role
secret_key ****************c1xY iam-role
region us-west-2 env AWS_DEFAULT_REGION
0.3. バージョン確認
コマンド
aws --version
結果
(可能な限り最新版を利用しましょう)
0.4. バージョンアップ(必要に応じて)
コマンド
sudo pip install -U awscli
1. パラメータの設定
1.1. 文字列の設定
パラメータ名の指定
コマンド
PARAMETER_NAME="test-string"
PARAMETER_DESCRIPTION="JAWS-UG CLI Branch EC2 Systems Manager"
パラメータ名の指定
コマンド
PARAMETER_VALUE="test"
パラメータタイプの指定
コマンド
PARAMETER_TYPE="String"
同名パラメータの不存在を確認
コマンド
aws ssm describe-parameters \
--filters Key="Name",Values="${PARAMETER_NAME}"
結果
{
"Parameters": []
}
パラメータの確認
コマンド
cat << ETX
PARAMETER_NAME: ${PARAMETER_NAME}
PARAMETER_DESCRIPTION: ${PARAMETER_DESCRIPTION}
PARAMETER_VALUE: ${PARAMETER_VALUE}
PARAMETER_TYPE: ${PARAMETER_TYPE}
ETX
結果
PARAMETER_NAME: test-string
PARAMETER_DESCRIPTION: JAWS-UG CLI Branch EC2 Systems Manager
PARAMETER_VALUE: test
PARAMETER_TYPE: String
パラメータの設定
コマンド
aws ssm put-parameter \
--name ${PARAMETER_NAME} \
--description "${PARAMETER_DESCRIPTION}" \
--value ${PARAMETER_VALUE} \
--type ${PARAMETER_TYPE} \
--no-overwrite
パラメータの存在を確認
コマンド
aws ssm describe-parameters \
--filters Key="Name",Values="${PARAMETER_NAME}"
結果
{
"Parameters": [
{
"LastModifiedUser": "arn:aws:sts::************:assumed-role/CLI/i-*****************",
"LastModifiedDate": 1490529282.442,
"Type": "String",
"Name": "test-string",
"Description": "JAWS-UG CLI Branch EC2 Systems Manager"
}
]
}
1.2. 文字列のリストの設定
パラメータ名の指定
コマンド
PARAMETER_NAME="test-list"
PARAMETER_DESCRIPTION="JAWS-UG CLI Branch EC2 Systems Manager"
パラメータ名の指定
コマンド
PARAMETER_VALUE="test1,test2,test3,test4,test5,test6"
パラメータタイプの指定
コマンド
PARAMETER_TYPE="StringList"
同名パラメータの不存在を確認
コマンド
aws ssm describe-parameters \
--filters Key="Name",Values="${PARAMETER_NAME}"
結果
{
"Parameters": []
}
パラメータの確認
コマンド
cat << ETX
PARAMETER_NAME: ${PARAMETER_NAME}
PARAMETER_DESCRIPTION: ${PARAMETER_DESCRIPTION}
PARAMETER_VALUE: ${PARAMETER_VALUE}
PARAMETER_TYPE: ${PARAMETER_TYPE}
ETX
結果
PARAMETER_NAME: test-list
PARAMETER_DESCRIPTION: JAWS-UG CLI Branch EC2 Systems Manager
PARAMETER_VALUE: test1,test2,test3,test4,test5,test6
PARAMETER_TYPE: StringList
パラメータの設定
コマンド
aws ssm put-parameter \
--name ${PARAMETER_NAME} \
--description "${PARAMETER_DESCRIPTION}" \
--value ${PARAMETER_VALUE} \
--type ${PARAMETER_TYPE} \
--no-overwrite
パラメータの存在を確認
コマンド
aws ssm describe-parameters \
--filters Key="Name",Values="${PARAMETER_NAME}"
結果
{
"Parameters": [
{
"LastModifiedUser": "arn:aws:sts::************:assumed-role/CLI/i-*****************",
"LastModifiedDate": 1490529738.402,
"Type": "StringList",
"Name": "test-list",
"Description": "JAWS-UG CLI Branch EC2 Systems Manager"
}
]
}
1.3. 暗号化された文字列の設定
パラメータ名の指定
コマンド
PARAMETER_NAME="test-securestring"
PARAMETER_DESCRIPTION="JAWS-UG CLI Branch EC2 Systems Manager"
パラメータ名の指定
コマンド
PARAMETER_VALUE="test1"
パラメータタイプの指定
コマンド
PARAMETER_TYPE="SecureString"
同名パラメータの不存在を確認
コマンド
aws ssm describe-parameters \
--filters Key="Name",Values="${PARAMETER_NAME}"
結果
{
"Parameters": []
}
パラメータの確認
コマンド
cat << ETX
PARAMETER_NAME: ${PARAMETER_NAME}
PARAMETER_DESCRIPTION: ${PARAMETER_DESCRIPTION}
PARAMETER_VALUE: ${PARAMETER_VALUE}
PARAMETER_TYPE: ${PARAMETER_TYPE}
ETX
結果
PARAMETER_NAME: test-securestring
PARAMETER_DESCRIPTION: JAWS-UG CLI Branch EC2 Systems Manager
PARAMETER_VALUE: test1
PARAMETER_TYPE: SecureString
パラメータの設定
コマンド
aws ssm put-parameter \
--name ${PARAMETER_NAME} \
--description "${PARAMETER_DESCRIPTION}" \
--value ${PARAMETER_VALUE} \
--type ${PARAMETER_TYPE} \
--no-overwrite
パラメータの存在を確認
コマンド
aws ssm describe-parameters \
--filters Key="Name",Values="${PARAMETER_NAME}"
結果
{
"Parameters": [
{
"KeyId": "alias/aws/ssm",
"Name": "test-securestring",
"LastModifiedDate": 1490529907.779,
"LastModifiedUser": "arn:aws:sts::************:assumed-role/CLI/i-*****************",
"Type": "SecureString",
"Description": "JAWS-UG CLI Branch EC2 Systems Manager"
}
]
}
2. パラメータの取得
2.1. 文字列の取得
変更履歴の確認
バージョンが1つしか無いため、何も表示されません
コマンド
PARAMETER_NAME="test-string"
コマンド
aws ssm get-parameter-history \
--name ${PARAMETER_NAME}
結果
{
"Parameters": []
}
値の取得
コマンド
aws ssm get-parameters \
--names ${PARAMETER_NAME}
結果
{
"InvalidParameters": [],
"Parameters": [
{
"Type": "String",
"Name": "test-string",
"Value": "test"
}
]
}
2.2. 文字列リストの取得
変更履歴の確認
バージョンが1つしか無いため、何も表示されません
コマンド
PARAMETER_NAME="test-list"
コマンド
aws ssm get-parameter-history \
--name ${PARAMETER_NAME}
結果
{
"Parameters": []
}
値の取得
コマンド
aws ssm get-parameters \
--names ${PARAMETER_NAME}
結果
{
"InvalidParameters": [],
"Parameters": [
{
"Type": "StringList",
"Name": "test-stringlist",
"Value": "test1,test2,test3,test4,test5,test6"
}
]
}
2.3. 暗号化された文字列の取得
変更履歴の確認
バージョンが1つしか無いため、何も表示されません
コマンド
PARAMETER_NAME="test-securestring"
コマンド
aws ssm get-parameter-history \
--name ${PARAMETER_NAME}
結果
{
"Parameters": []
}
値の取得(復号化オプションなし)
コマンド
aws ssm get-parameters \
--names ${PARAMETER_NAME}
結果
{
"InvalidParameters": [],
"Parameters": [
{
"Type": "SecureString",
"Name": "test-securestring",
"Value": "AQECAHiUI/G7eV8mb0bhaItPG0LdDL5TjSku7AShFDfQANtscgAAAGMwYQYJKoZIhvcNAQcGoFQwUgIBADBNBgkqhkiG9w0BBwEwHgYJYIZIAWUDBAEuMBEEDIUxgYaIGOJ3D3gMBgIBEIAgq2xO6QEAGlDcjdXamiINWyr+P8Gld1wiBw4q9lKRv3k="
}
]
}
値の取得(復号化オプションあり)
コマンド
aws ssm get-parameters \
--names ${PARAMETER_NAME} \
--with-decryption
結果
{
"InvalidParameters": [],
"Parameters": [
{
"Type": "SecureString",
"Name": "test-securestring",
"Value": "test1"
}
]
}
3. パラメータの削除
3.1. パラメータの削除(文字列)
パラメータ名の指定
コマンド
PARAMETER_NAME="test-string"
パラメータの削除
コマンド
aws ssm delete-parameter \
--name ${PARAMETER_NAME}
パラメータの削除を確認
コマンド
aws ssm describe-parameters \
--filters Key="Name",Values="${PARAMETER_NAME}"
結果
{
"Parameters": []
}
3.2. パラメータの削除(文字列リスト)
パラメータ名の指定
コマンド
PARAMETER_NAME="test-list"
パラメータの削除
コマンド
aws ssm delete-parameter \
--name ${PARAMETER_NAME}
パラメータの削除を確認
コマンド
aws ssm describe-parameters \
--filters Key="Name",Values="${PARAMETER_NAME}"
結果
{
"Parameters": []
}
3.3. パラメータの削除(暗号化された文字列)
パラメータ名の指定
コマンド
PARAMETER_NAME="test-securestring"
パラメータの削除
コマンド
aws ssm delete-parameter \
--name ${PARAMETER_NAME}
パラメータの削除を確認
コマンド
aws ssm describe-parameters \
--filters Key="Name",Values="${PARAMETER_NAME}"
結果
{
"Parameters": []
}
以上