AWS
aws-cli
EC2SystemsManager

[JAWS-UG CLI] Amazon EC2 Systems Manager 入門 (5) パラメータストア

More than 1 year has passed since last update.


この記事について

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": []
}

以上