PHPでSSMパラメータストアを読み書きする
AWS Systems Manager(SSM)パラメータストアを使うとAWS上のキーバリューストアに文字列データや暗号化したデータを保存できます。
DynamoDBやS3を使うより手軽にシステムパラメータを管理することができます。
このSSMパラメータストアをAWS SDKを使って読み書きしてみます。
SDKのリファレンスはこちら。
ComposerでSDKをインストールします。
実行するとこんな感じでパラメータの読み書きができます。

DynamoDBやS3を使うより手軽にシステムパラメータを管理することができます。
このSSMパラメータストアをAWS SDKを使って読み書きしてみます。
SDKのリファレンスはこちら。
ComposerでSDKをインストールします。
>composer require aws/aws-sdk-php
インストールしたフォルダにindex.phpを作成します。
<?php
require 'vendor/autoload.php';
use Aws\Ssm\SsmClient;
use Aws\Ssm\Exception\SsmException;
$access_key = '********************';
$secret_access_key = '*******************************';
$client = new SsmClient([
'credentials' => [
'key' => $access_key,
'secret' => $secret_access_key,
],
'region' => 'ap-northeast-1',
'version' => '2014-11-06',
]);
$key = "";
$value = "";
if(!empty($_POST)){
// get parameter
if(isset($_POST['get'])){
$key = $_POST['key'];
try {
$result = $client->getParameter([
'Name' => $key,
'WithDecryption' => false,
]);
$value = $result['Parameter']['Value'];
} catch (SsmException $e) {
echo $e->getMessage();
}
// put parameter
}elseif(isset($_POST['put'])){
$key = $_POST['key'];
$value = $_POST['value'];
try {
$result = $client->putParameter([
'Name' => $key,
'Overwrite' => true,
'Tier' => 'Standard',
'Type' => 'String',
'Value' => $value,
]);
} catch (SsmException $e) {
echo $e->getMessage();
}
}
}
?>
<html>
<body>
<form method="post">
<p><input name="key" type="text" value="<?= $key ?>" placeholder="key"/></p>
<p><textarea rows="5" cols="100" name="value" placeholder="value"><?= $value ?></textarea></p>
<input name="get" type="submit" value="get parameter"/>
<input name="put" type="submit" value="put parameter"/>
</form>
</body>
</html>
アクセスキーとシークレットアクセスキーには、SSMへのアクセス権をもったクレデンシャルを設定しましょう。実行するとこんな感じでパラメータの読み書きができます。







