概要
今回は会社の後輩向けにAWS ソリューションアーキテクトアソシエイト向けの問題を作成したのでそちらの公開を。
元ネタは公式の問題、BlackBeltなどからとっております
今回はIAMをみようと思います。
IAM関係
- EC2インスタンス(AWSアカウントをAとする)上で実行されるアプリケーションで別のAWSアカウント(Bとする)のS3のバケットへアクセスする実行したところ、アクセスできない問題が発生している。AのアプリからBのS3バケットへアクセスできるように対応する方法を以下から2つ選択してください。EC2インスタンスからは自分のAWSアカウントのS3バケットにはアクセスできるとする。
- BのアカウントにAのアカウントのIAMロールと同名のロールを作成しS3FullAccessの権限を付与する。
- AのアカウントのS3にBのアカウントと同名のバケットを作成しバケットポリシーにBのアカウントのアカウントからのprincipalを指定する。
- BのアカウントのS3バケットポリシーにAのアカウントのIAMロールをprincipalに指定する。
- AのアカウントのIAMロールにS3へのアクセス権を付与するリソースとしてBアカウントのバケットにアクセスできるように指定する。
回答
-
正解は
- BのアカウントのS3バケットポリシーにAのアカウントのIAMロールをprincipalに指定する。
- AのアカウントのIAMロールにS3へのアクセス権を付与するリソースとしてBアカウントのバケットにアクセスできるように指定する。
- アクセス先のS3バケットのprincipalにアクセス元のアカウントのIAMを許可するように記述しますこれはS3以外でも同様です。
- アクセス元のユーザはアクセス先のバケットへのアクセスできるように設定が必要です。
-
以下不正解の理由
- 同名のロールを作成しても意味がありません。またS3FullAccessは権限が広すぎるので必要に応じて狭めるべきです。
- まったく意味がありません。
- IAMのベストプラクティスではないものを以下から選択してください。
- AWS アカウントのルートユーザーアクセスキーをロックする。
- 認証情報を定期的にローテーションする。
- インラインポリシーを使用して権限を制御する。
- プログラムでAWSの各サービスにアクセスする場合ロールを使用する。
- IPアドレスや日付、MFA使用などを条件に追加する。
回答
-
正解は
- インラインポリシーを使用して権限を制御する。
- インラインポリシーは個別に条件を設定できるが個別に設定することになるため管理ができなくなるのでカスタマー管理ポリシーを使用することが推奨されている。
- 個別に条件を設定したい場合(一次的に使わせるときなど)には有効
- インラインポリシーを使用して権限を制御する。
-
以下不正解の理由
- 他はすべてベストプラクティスとして推奨されています。