【概要】
WafCharmを利用するにはIAMによるWAFのフルアクセスの権限とS3の読み込み権限を付与することを推奨しています。今回はAWS側で用意されているManaged Policyをアタッチする方法と「セキュリティ上、WAFのフルアクセスは許可したくない」といった方向けに必要なCustom Policyをピックアップしました。
目次
- 1. WafCharmの利用に必要な権限(Managed Policy)
- 2. AWS WAFにCustom Policyをアタッチしたい場合
- 3. S3にCustom Policyをアタッチしたい場合
- 4. まとめ
1. WafCharmの利用に必要な権限(Managed Policy)
1-1. まず IAM のサービスページを開きます。
1-2. IAMのサービスページに遷移したら、サブメニューバーから Users を選択します。
1-3. WafCharmに登録しているAWS WAFのユーザーをクリックします。
1-4. 表示されるアタッチ済みのPolicyに “AWSWAFFullAccess” と “AmazonS3ReadOnlyAccess” があるか確認してください。
この2つの Managed Policy がアタッチされていれば問題なくWafCharmを利用できます。
また、S3の読み込み権限を特定のBucket, Prefix配下に対してのみ許可したい場合は以下のJSONを環境に応じて変更し、S3のCustom Policyとして使用することもできます。※2019/01 現在
{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "s3:List*", "s3:Get*" ], "Resource": [ "arn:aws:s3:::<任意のBucket>", "arn:aws:s3:::<任意のBucket>/<folder_name>/*" ] } ] }
Marketplace 版を利用する場合は、さらに IAMのポリシー "CloudWatchReadOnlyAccess" も付与してください。
権限をさらに絞り込みたい場合は以下の JSON をCustom Policy としてご利用ください。
※ CloudWatch には、ポリシーのリソースを使用して制御するためのリソースがないため、IAM ポリシーではワイルドカード文字 (*) を使用します。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": "cloudwatch:GetMetricData", "Resource": "*" } ] }
2. AWS WAFにCustom Policyをアタッチしたい場合
WAFのフルアクセスをアタッチしたくない方はWafCharmに登録しているAWS WAFのユーザーに以下のPolicyをアタッチしてください。
CreateByteMatchSet |
CreateIPSet |
CreateRule |
CreateRateBasedRule |
CreateRegexMatchSet |
CreateRegexPatternSet |
CreateSizeConstraintSet |
CreateSqlInjectionMatchSet |
CreateXssMatchSet |
DeleteByteMatchSet |
DeleteIPSet |
DeleteRule |
DeleteRateBasedRule |
DeleteRegexMatchSet |
DeleteRegexPatternSet |
DeleteSizeConstraintSet |
DeleteSqlInjectionMatchSet |
DeleteXssMatchSet |
GetByteMatchSet |
GetChangeToken |
GetChangeTokenStatus |
GetIPSet |
GetRule |
GetRateBasedRule |
GetRateBasedRuleManagedKeys |
GetRegexMatchSet |
GetRegexPatternSet |
GetSampledRequests |
GetSizeConstraintSet |
GetSqlInjectionMatchSet |
GetWebACL |
GetXssMatchSet |
ListByteMatchSets |
ListIPSets |
ListRules |
ListRateBasedRules |
ListRegexMatchSets |
ListRegexPatternSets |
ListSizeConstraintSets |
ListSqlInjectionMatchSets |
ListWebACLs |
ListXssMatchSets |
UpdateByteMatchSet |
UpdateIPSet |
UpdateRule |
UpdateRateBasedRule |
UpdateRegexMatchSet |
UpdateRegexPatternSet |
UpdateSizeConstraintSet |
UpdateSqlInjectionMatchSet |
UpdateWebACL |
UpdateXssMatchSet |
※2019/01 時点の内容です。
※AWS WAF Classicが対象です。
ご覧の通り、Custom Policyと言いつつも大半のPolicyが必要です。
3. S3にCustom Policyをアタッチしたい場合
S3の読み込み権限をアタッチしたくない方はWafCharmに登録しているAWS WAFのユーザーに以下のPolicyをアタッチしてください。
S3のPolicyで使用しているものは以下になります。
GetObject |
ListBucket |
※2019/01 現在
4. まとめ
今回はWafCharmをご利用の際に必要となる AWS WAF と S3 の権限について紹介しました。
今後もAWS WAFの機能追加に伴い、WafCharmの機能を更新していきます。
必要なPolicyが増える可能性もあるので、Managed Policyをアタッチすることをオススメします。