AWS WAFのAPI一覧 #reinvent
こんにちは、せーのです。突如として現れた新サービス「AWS WAF」。re:Inventのセッション内容もこれでまた変わるのではないでしょうか。 せーのからはAPIの一覧をお届けいたします。
AWS WAF API一覧
アクション
CreateByteMatchSet
ByteMatchSetを作成する。
CreateIPSet
IPSetを作成する。例えば一つまたはいくつかのIPからDOS、またはDDOS攻撃を受けた場合などにその対象IPSetを作成する。
CreateRule
ByteMatchSetやIPSet等のWAFで監視する制限をまとめたRuleを作成する。
CreateSqlInjectionMatchSet
SqlInjectionMatchSetを作成する。
CreateWebACL
RuleをPriority属性で優先順位を付け、RuleがALLOWかBLOCKかを設定したWebACLを作成する。
DeleteByteMatchSet
ByteMatchSetを削除する。 ※Ruleの中から特定のByteMatchSetを取り除きたいだけの場合はUpdateRuleを使う。
DeleteIPSet
IPSetを削除する。 ※Ruleの中から特定のIPSetを取り除きたいだけの場合はUpdateRuleを使う。
DeleteRule
Ruleを削除する。 ※WebACLの中から特定のRuleを取り除きたいだけの場合はUpdateWebACLを使う。
DeleteSqlInjectionMatchSet
SqlInjectionMatchSetを削除する。 ※Ruleの中から特定のSqlInjectionMatchSetを取り除きたいだけの場合はUpdateRuleを使う。
DeleteWebACL
WebACLを削除する。Ruleが対象となるWebACLに残っている場合は削除できない。
GetByteMatchSet
ByteMatchSetIdよりByteMatchSetを取得する。
GetChangeToken
AWS WAFのオブジェクトを作成、更新、削除する際にコンフリクトを避けるためChangeTokenというオブジェクトをつける。GetChangeTokenはそのChangeTokenを取得する。 AWS WAFのオブジェクトを作成、更新、削除するとChangeTokenのステータスがPENDINGとなる。この状態を取得するためにはGetChangeTokenStatusを使う。
GetChangeTokenStatus
ChangeTokenのステータスを取得する。PROVISIONED | PENDING | IN_SYNCの三種類。
GetIPSet
IPSetIdからIPSetを取得する。
GetRule
RuleIDからRuleを取得する。
GetSampledRequests
SampledHTTPRequestを配列の形で取得する。またタイムレンジを取得する。
GetSqlInjectionMatchSet
SqlInjectionMatchSetIdからSqlInjectionMatchSetを取得する。
GetWebACL
WebACLIdからWebACLを取得する。
ListByteMatchSets
ByteMatchSetSummaryの配列を返す。
ListIPSets
IPSetSummaryの配列を返す。
ListRules
RuleSummaryの配列を返す。
ListSqlInjectionMatchSets
SqlInjectionMatchSetの配列を返す。
ListWebACLs
WebACLSummaryの配列を返す。
UpdateByteMatchSet
ByteMatchTupleを追加、または削除することによってByteMatchSetを更新する。
UpdateIPSet
IPSetDescriptorを追加、または削除することによってIPSetを更新する。
UpdateRule
Predicateを追加、または削除することによってRuleを更新する。
UpdateSqlInjectionMatchSet
SqlInjectionMatchTupleを追加、または削除することによってSqlInjectionMatchSetを更新する。
UpdateWebACL
ActivatedRuleを追加、または削除することによってWebACLを更新する。
データ型
ActivatedRule
RuleをPriority属性で優先順位を付け、RuleがALLOW、BLOCK、COUNTを設定したオブジェクト。
ByteMatchSet
ByteMatchSetIdとName, ByteMatchTupleの配列を一組としたオブジェクト。
ByteMatchSetSummary
ByteMatchSetIdとNameを一対としたByteMatchSetをリスト化したもの。
ByteMatchSetUpdate
ByteMatchTupleとINSERT | DELETEするかのActionを一対としたオブジェクト。
ByteMatchTuple
WAFが検索する対象となるASCII文字列によって指定された文字列が含まれたオブジェクト。
FieldToMatch
URI | QUERY_STRING | HEADER | METHODのタイプとその中身を一対としたオブジェクト。
HTTPHeader
ヘッダのタイプとその中身を一対としたオブジェクト。
HTTPRequest
ClientIPや国、ヘッダタイプ、HTTPのバージョン等が一対としたオブジェクト。
IPSet
IPSetIDとIPV4のアドレス等が一対としたオブジェクト。
IPSetDescriptor
IPV4のIPアドレス群とタイプ(と言ってもIPV4しか書かれていない)
IPSetSummary
IPSetIdとNameが一対となったオブジェクト。
IPSetUpdate
IPSetDescriptorとINSERT | DELETEが一対となったオブジェクト。
Predicate
ByteMatchSet, IPSet, または SqlInjectionMatchSetとDataId, IPMatch | ByteMatch | SqlInjectionMatchの選択をしたものが一対となったオブジェクト。
Rule
ByteMatchSet, IPSet, and/or SqlInjectionMatchSetが入っているRule。
RuleSummary
RuleIdとNameが一対となったオブジェクト。
RuleUpdate
PredicateとINSERT | DELETEが一対となったオブジェクト。
SampledHTTPRequest
SampledHTTPRequestsとALLOW, BLOCK, COUNTのアクションが一対となったオブジェクト。
SqlInjectionMatchSet
SqlInjectionMatchSetIdとName, SqlInjectionMatchTuplesの配列が一組となったオブジェクト。
SqlInjectionMatchSetSummary
SqlInjectionMatchSetIdとNameが一対となったオブジェクト。
SqlInjectionMatchSetUpdate
SqlInjectionMatchTupleとINSERT | DELETEのアクションが一対となったオブジェクト。
SqlInjectionMatchTuple
WAFで監視対象となるSQLコードとFieldToMatchが一対となったオブジェクト。
TimeWindow
StartTimeとEndTimeが一対となったオブジェクト。
WafAction
BLOCK | ALLOW | COUNTのアクションを記したオブジェクト。
WebACL
WebACLIdとActivatedRuleの配列が一組となったオブジェクト。
WebACLSummary
WebACLIdとNameが一対となったオブジェクト。
WebACLUpdate
ActivatedRuleとINSERT | DELETEが一対となったオブジェクト。
共通パラメータ
共通のアルゴリズムやセキュリティトークン等、共通で使用するパラメータ
共通エラー
HTTP Status Codeが返ってきた時に共通のdescription
まとめ
いかがでしたでしょうか。こちらのAPI一覧を元にAWS WAFがどのような動きを行うのかを俯瞰で理解していただければと思います。