DOP構成管理と Infrastructure as Code (IaC)

Terraformのstateファイルをチームで安全に共有するAWSのベストプラクティスはどれですか?

A
stateファイルをGitリポジトリにコミットする
Gitリポジトリへのコミットはstateファイルにパスワードやアクセスキーなどのシークレットが平文で含まれる可能性があり、漏洩リスクが高くセキュリティ上厳禁です。state lockingも実現できません。
B
S3バケットをリモートバックエンドとして使用し、DynamoDBテーブルでstate lockingを実装する
✓ 正解
リモートバックエンドにS3を使うことでチームでstateを共有でき、バージョニングと暗号化でセキュアに管理できます。DynamoDBによるstate lockingで複数人同時実行時の競合を防止できるため最適です。
C
stateファイルを各開発者のローカルマシンに保管する
各開発者のローカルマシンへの保管はチームでのstate共有が困難で、state lockingも実現できません。さらにマシン障害時にstateファイルが消失するリスクもあり不適切です。
D
CodeCommitにstateファイルを保存してバージョン管理する
CodeCommitもGitベースのバージョン管理システムであるため、stateに含まれるパスワードやアクセスキーがリポジトリに残存・漏洩するリスクがあります。state lockingも実現できず不適切です。

解説

TerraformのリモートバックエンドとしてS3を使用することでチームでstateを共有し、バージョニングと暗号化を有効にしてセキュアに管理できます。DynamoDBによるstate lockingにより、複数人が同時に`terraform apply`を実行した際の競合状態を防止できます。 選択肢AのGitリポジトリへのコミットはセキュリティ上厳禁です。stateファイルにはパスワードやアクセスキーなどのシークレットが含まれる可能性があります。 選択肢Cの各開発者のローカルマシンへの保管はチームでのstate共有が困難で、state lockingも実現できず、マシン障害時のデータ消失リスクもあります。 選択肢DのCodeCommitもGitベースのバージョン管理システムであるため、stateに含まれるシークレットがリポジトリに残存・漏洩するリスクがあり、state lockingも実現できないため不適切です。

ドメイン別正答率・予想スコアでリアルタイムに実力把握

無限ノックでDOPを徹底対策。全問AI生成のオリジナル問題。

無料で演習を始める →
DOP の問題一覧に戻る