はじめに
AWS ソリューションアーキテクト - アソシエイト(SAA-C03)を受験するにあたって、S3のアクセス制御についての選択肢を間違えがちだったので軽く整理をしてみました。
バケットポリシー
・バケット単位でアクセス権限を設定するリソースベースのポリシー
・自AWSアカウントのIAMユーザーや他のAWSアカウントのユーザーにS3やそのオブジェクトへのアクセス権限を設定することが可能
・アクセス元のIPアドレスやドメイン単位でのアクセス制御が可能
IAMポリシー
・IAMユーザー単位でアクセス権限を設定するIDベースのポリシー
・自AWSアカウントのIAMユーザーやグループ、ロールにS3リソースへのアクセス権限を設定することが可能
・他AWSアカウントにはアクセス制限を設定できない
・アクセス元のIPアドレスやドメイン単位でのアクセス制御が可能
ACL(アクセスコントロールリスト)
・AWSアカウント単位でアクセス権限を設定する
・基本的な読み取り/書き込み許可を他のAWSアカウントに付与できる(自アカウントのユーザーには付与できない)
まとめ
ソリューションアーキテクトの練習問題を解いている際は自分の中でアクセス制御についての理解が進んでいませんでした。しかし、自分なりに表に落とし込んでみたことで思ったより単純で、権限の設定単位をもとにどのアクセス制御方法が適切か選択できることが分かりました。
バケットポリシー | IAMポリシー | ACL | |
---|---|---|---|
権限の設定単位 | バケット | IAMユーザー | AWSアカウント |
アクセス元のIPアドレスやドメイン単位でのアクセス制御 | 〇 | 〇 | ✕ |
他のAWSアカウントのアクセス権限設定 | 〇 | ✕ | 〇 |
参考