Q41 — AWS SAP-C02 第1章

第 41/75 問 | ← 第1章

Q116. ある企業は、AWS Cloud 上でマルチアカウント構成を実現するために AWS Organizations を使用しています。また、ガバナンスのために AWS Control Tower を、アカウント間の VPC 接続のために AWS Transit Gateway を使用しています。AWS アプリケーションアカウント内では、アプリケーションチームが AWS Lambda および Amazon RDS を利用した Web アプリケーションをデプロイしています。データベース管理者(DBA)チームは専用の DBA アカウントを保有し、組織全体のすべてのデータベースを中央管理しています。DBA チームは、DBA アカウント内にデプロイされた Amazon EC2 インスタンスを使用して、アプリケーションアカウント内にデプロイされた RDS データベースにアクセスしています。アプリケーションチームは、アプリケーションアカウント内の AWS Secrets Manager にデータベース認証情報をシークレットとして保存しており、現在は手動で DBA チームと共有しています。これらのシークレットは、アプリケーションアカウント内の Secrets Manager 向けのデフォルト AWS 管理キーで暗号化されています。ソリューションアーキテクトは、DBA チームがデータベースにアクセスできるようにしつつ、シークレットの手動共有を不要とするソリューションを実装する必要があります。この要件を満たすソリューションはどれですか?

正解: B. アプリケーションアカウント内で「DBA-Secret」という名前の IAM ロールを作成し、Secrets Manager 内のシークレットにアクセスするための必要な権限を付与します。DBA アカウント内で「DBA-Admin」という名前の IAM ロールを作成し、アプリケーションアカウント内の DBA-Secret ロールを引き受けるために必要な権限を DBA-Admin ロールに付与します。EC2 インスタンスに DBA-Admin ロールをアタッチして、クロスアカウントのシークレットにアクセス可能にします。

解説

DBA チームがデータベースにアクセスでき、かつシークレットの手動共有を不要とするソリューションを実装するには、以下の手順が必要です。 B:アプリケーションアカウント内で「DBA-Secret」という名前の IAM ロールを作成し、アプリケーションアカウント内の AWS Secrets Manager に格納されたシークレットへのアクセスに必要な権限を付与します。DBA アカウント内で「DBA-Admin」という名前の IAM ロールを作成し、アプリケーションアカウント内の DBA-Secret ロールを引き受けるために必要な権限を DBA-Admin ロールに付与します。DBA アカウント内の EC2 インスタンスに DBA-Admin ロールをアタッチして、クロスアカウントのシークレットにアクセス可能にします。 解説: 選択肢 A は不適切です。AWS Resource Access Manager(AWS RAM)を用いてシークレットを共有しても、手動共有の廃止という要件を満たしません。また、DBA チームがシークレットにアクセスするための仕組みを提供していません。 選択肢 C は不適切です。DBA アカウント内で IAM ロールを作成し、アプリケーションアカウント内のシークレットおよびデフォルト AWS 管理キーへのアクセス権限を付与しても、DBA チームがそのロールを引き受けてシークレットにアクセスするメカニズムがありません。 選択肢 D は不適切です。DBA アカウント内で IAM ロールを作成し、アプリケーションアカウント内のシークレットへのアクセス権限を付与し、さらに SCP を適用しても、DBA チームがロールを引き受けてシークレットにアクセスする仕組みが提供されていません。 したがって、正しいソリューションは B です:アプリケーションアカウント内で「DBA-Secret」ロールを作成し、シークレットへのアクセス権限を付与します。DBA アカウント内で「DBA-Admin」ロールを作成し、アプリケーションアカウント内の DBA-Secret ロールを引き受ける権限を付与します。そして、EC2 インスタンスに DBA-Admin ロールをアタッチすることで、クロスアカウントのシークレットに安全にアクセスできます。