無限ノック › SCS 練習問題一覧 › 問題
SCSアイデンティティとアクセス管理

ある金融企業では、AWS KMS のカスタマーマネージドキー(CMK)を使って AWS Systems Manager Parameter Store に保存された機密設定値(SecureString パラメータ)を暗号化しています。 要件として「この CMK を使った復号(kms:Decrypt)操作は AWS CloudFormation のデプロイ処理を経由した場合のみ許可し、開発者が AWS CLI や SDK から直接呼び出すことを防ぎたい」とします。 KMS キーポリシーに追加すべき最も適切な条件はどれですか?

A
"aws:CalledVia": ["cloudformation.amazonaws.com"] 条件を追加することで、CloudFormation 経由の呼び出しのみを許可する
✓ 正解
aws:CalledVia 条件キーは、リクエストが指定した AWS サービスを経由して行われた場合のみアクセスを許可します。"aws:CalledVia": ["cloudformation.amazonaws.com"] を KMS キーポリシーの条件に追加することで、開発者が直接 kms:Decrypt を呼び出すことを防ぎ、CloudFormation デプロイ処理を通じた呼び出しのみを許可できます。どの IAM プリンシパルが使われていても正確に判定できる点が強みです。
B
"aws:PrincipalIsAWSService": "true" 条件を追加することで、AWS サービスからの呼び出しのみを許可する
aws:PrincipalIsAWSService: true は呼び出し元が AWS サービスかどうかのみを判定し、特定のサービスを指定できません。Systems Manager や Lambda など他サービスからの呼び出しも許可されてしまいます。
C
"aws:PrincipalServiceName": "cloudformation.amazonaws.com" 条件を追加して CloudFormation サービスからの呼び出しのみを許可する
aws:PrincipalServiceName は IAM に存在しない条件キーです。AWS サービスプリンシパルを特定するには aws:CalledVia を使用します。
D
KMS キーポリシーで開発者の IAM ロールの kms:Decrypt を明示的に Deny し、CloudFormation サービスロールには kms:Decrypt を許可する別のステートメントを追加する
開発者の IAM ロールを明示的に Deny は、開発者が専用サービスロールなしに自身の IAM ロールで CloudFormation をデプロイする場合、その Deny が CloudFormation 経由の復号も拒否してしまいます。

解説

aws:CalledVia 条件キーは、リクエストが指定した AWS サービスを経由して行われた場合のみアクセスを許可します。"aws:CalledVia": ["cloudformation.amazonaws.com"] を KMS キーポリシーの条件に追加することで、開発者が直接 kms:Decrypt を呼び出すことを防ぎ、CloudFormation デプロイ処理を通じた呼び出しのみを許可できます。どの IAM プリンシパルが使われていても正確に判定できる点が強みです。 選択肢B の aws:PrincipalIsAWSService: true は呼び出し元が AWS サービスかどうかのみを判定し、特定のサービスを指定できません。Systems Manager や Lambda など他サービスからの呼び出しも許可されてしまいます。 選択肢C の aws:PrincipalServiceName は IAM に存在しない条件キーです。AWS サービスプリンシパルを特定するには aws:CalledVia を使用します。 選択肢D の 開発者の IAM ロールを明示的に Deny は、開発者が専用サービスロールなしに自身の IAM ロールで CloudFormation をデプロイする場合、その Deny が CloudFormation 経由の復号も拒否してしまいます。

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

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

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