DOP構成管理と Infrastructure as Code (IaC)
Terraformのstateファイルをチームで安全に共有するAWSのベストプラクティスはどれですか?
AstateファイルをGitリポジトリにコミットする
Gitリポジトリへのコミットはstateファイルにパスワードやアクセスキーなどのシークレットが平文で含まれる可能性があり、漏洩リスクが高くセキュリティ上厳禁です。state lockingも実現できません。
BS3バケットをリモートバックエンドとして使用し、DynamoDBテーブルでstate lockingを実装する
✓ 正解
リモートバックエンドにS3を使うことでチームでstateを共有でき、バージョニングと暗号化でセキュアに管理できます。DynamoDBによるstate lockingで複数人同時実行時の競合を防止できるため最適です。
Cstateファイルを各開発者のローカルマシンに保管する
各開発者のローカルマシンへの保管はチームでのstate共有が困難で、state lockingも実現できません。さらにマシン障害時にstateファイルが消失するリスクもあり不適切です。
DCodeCommitに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生成のオリジナル問題。
無料で演習を始める →