[アップデート] AWS AppSync の新規 API キャッシュ設定で暗号化が自動的に有効化になります
いわさです。
今朝次のアップデートがアナウンスされました。
AWS AppSync にはオプションでキャッシュの機能があり、さらにそのキャッシュデータに関する暗号化設定もあります。
従来は転送中の暗号化および保管データの暗号化はオプションで有効化できる設定だったのですが、今回のアップデートで自動で有効化されるようです。
以前までは次のようにキャッシュ設定の中で転送時の暗号化と保管時の暗号化を設定する形でした。
デフォルトは無効化されており、キャッシュ機能を有効化した後は設定内容の更新が出来ません。
AWS AppSyncのリゾルバーキャッシュがキャッシュキーで削除できるようになりました | DevelopersIO より引用
マネジメントコンソールからの確認
アップデート後の AppSync コンソールを確認してみると、キャッシュ作成画面では次のように各暗号化設定のチェックがデフォルトで ON になっており、さらに OFF に出来ないようになっています。
このまま作成を行うと、次のように各暗号化設定が有効化された状態で作成が開始されました。
マネジメントコンソールから、無効状態での作成ができなくなっていますね。
以下は本日時点の日本語版ドキュメントの記述です。AppSync キャッシュの暗号化設定オプションは公式ドキュメント上でもパフォーマンスへの影響可能性が言及されていました。
AWS AppSync でのサーバー側のキャッシュと API ペイロード圧縮の設定 - AWS AppSync GraphQL より
ただし、Security Hub としては重要度 Medium で有効化すべきとも言われている項目です。
可能であれば有効化すべきだがパフォーマンス影響だけ気をつけよう。みたいな位置づけだったと思います。
なお、アップデートアナウンスによると、この設定は新規 API キャッシュではデフォルト有効化になりますが、既存の API キャッシュ設定については従来の設定が維持されるとのことです。
API からの確認
このアップデートアナウンスの数日前に AWS CLI のドキュメントも更新されていました。
AppSync のアップデートで「Deprecate atRestEncryptionEnabled
and transitEncryptionEnabled
attributes in CreateApiCache
action. Encryption is always enabled for new caches.」という変更履歴のコメントが残されています。
先ほどのマネジメントコンソール上のキャッシュ作成操作は、内部的には CreateApiCache アクションが実行されています。
その中で暗号化を設定するためのatRestEncryptionEnabled
とtransitEncryptionEnabled
というパラメータがあるのですが、これらが非推奨になったと言われています。
このパラメータを指定するとどういう挙動になるのでしょうか。確認してみましょう。
% cat hoge.json
{
"apiId": "3plvvwt7nvbonm6d6lnogm5mmm",
"ttl": 300,
"transitEncryptionEnabled": false,
"atRestEncryptionEnabled": false,
"apiCachingBehavior": "FULL_REQUEST_CACHING",
"type": "T2_SMALL",
"healthMetricsConfig": "ENABLED"
}
% aws appsync create-api-cache --cli-input-json file://hoge.json --profile hoge
{
"apiCache": {
"ttl": 300,
"apiCachingBehavior": "FULL_REQUEST_CACHING",
"transitEncryptionEnabled": false,
"atRestEncryptionEnabled": false,
"type": "T2_SMALL",
"status": "CREATING",
"healthMetricsConfig": "ENABLED"
}
}
設定してみたところ、普通に暗号化設定が無効状態でキャッシュを作成することが出来ました。
また、暗号化オプションを指定せずに作成したところ、その場合でもデフォルトは無効状態で作成されました。
API の変更がどのタイミングで発生するかわかりませんが、この変更履歴のコメントからいずれはatRestEncryptionEnabled
とtransitEncryptionEnabled
が廃止され、デフォルトの挙動として暗号化が強制される可能性もあるかもしれません。
さいごに
本日は AWS AppSync の新規 API キャッシュ設定で暗号化が自動的に有効化になったので色々と確認してみました。
少なくともマネジメントコンソール上では、新規有作成時は強制的に暗号化されるようになります。
また API 上での無効化もいつまで可能かわかりません。可能であれば早いうちに暗号化を有効にした場合のワークロードへのパフォーマンス影響だけでも評価しておきたいですね。