目次

  1. 1. はじめに
  2. 2. AssumeRole とは
  3. 3. Credential Store とは
  4. 4. 必要なIAMポリシー
  5. 5. ロールの作成
  6. 6. クレデンシャル登録と信頼ポリシーの更新
  7. 7. Web Site ConfigでのCredential Storeについて

1. はじめに

2023/03/23にWafCharmではCredential Store機能をリリースいたしました。
従来のアクセスキー・シークレットキーを利用した認証に加えて、AssumeRoleを使用してWafCharmへ権限を提供することが可能になりました。

本ブログでは、AssumeRoleでの設定手順を紹介します。

※今回のリリースをもってアクセスキー・シークレットキーの利用は非推奨となります。今後はAssumeRoleの利用を推奨いたしますので、これからWafCharmの利用を開始される場合などはAssumeRoleをご検討ください。

2. AssumeRole とは

AssumeRoleは、AWSリソースへのアクセス権限を付与するために、一時的にクレデンシャルを発行します。

アクセスキー・シークレットキーといった情報を提供することなくアクセス権限を付与できます。

AssumeRole – AWS Security Token Service

3. Credential Store とは

Credential Storeは、AssumeRoleを行うロールのARNや、アクセスキー・シークレットキーといったクレデンシャル情報を登録するためのWafCharm機能です。

WafCharmに登録されているクレデンシャル情報の一覧はもちろん、どのWeb ACL Config/Web Site Configがどのクレデンシャル情報を使用しているか確認することが可能です。

4. 必要なIAMポリシー

WafCharmを利用するためには、”AWSWAFFullAccess” 、 “AmazonS3ReadOnlyAccess” および “CloudWatchReadOnlyAccess” の付与をお願いしています。

設定操作を実施するIAMユーザーには、IAMFullAccess等、ロールの作成や信頼ポリシーの編集などを実施する権限が必要です。

参考:WafCharmご利用の際に必要となるIAMポリシー

5. ロールの作成

AssumeRoleを使用する場合は、AWSマネージメントコンソールにてロールを作成し、WafCharm管理画面にてそのロールのARNを登録した後に再度信頼ポリシーを更新する必要があります。

すべての手順を完了するまでの間、AWSマネージメントコンソールとWafCharm管理画面を行き来する必要がありますので、両方の画面をそれぞれ開いた状態にしておくことをおすすめします。

まずは、AWSマネージメントコンソールにてRoleを作成する部分の手順を説明します。

1. AWSマネージメントコンソールにログインします。
2. IAMダッシュボードを開きます。
3. 左のメニューからRolesをクリックします。

4. Rolesの画面を開いたら、右上のCreate roleボタンをクリックしロールを作成します。

5. Select trusted entityにて、AWS Accountを選択します。

An AWS Accountの箇所では、「This account (アカウントID)」を選択してください。
Optionは変更不要です。

※ロールの作成が完了後、WafCharmから発行された信頼ポリシーを使用する必要がありますので、後半の手順で信頼するアカウントは正しいものに変更されます。

6. Permissions policiesにて、”AWSWAFFullAccess” 、 “AmazonS3ReadOnlyAccess” と “CloudWatchReadOnlyAccess” を追加します。

※S3バケットに対する権限(”AmazonS3ReadOnlyAccess”)については、WafCharmからアクセスできるリソースも制限することを推奨しております。詳細についてはWafCharmご利用の際に必要となるIAMポリシーをご参考ください。
※AWS WAFに対する権限(”AWSWAFFullAccess”)は、システムの都合上、リソース指定はお控えください。


7. 次の確認画面で任意のRole nameを入力し、指定した内容を確認したらCreate roleボタンをクリックします。

※この後の手順で信頼ポリシーを更新します。「Step 1: Select trusted entities」以下の内容については、現時点ではご自身のAWSアカウントIDが記載されている状態で問題ありません。

8. Rolesの画面に戻りますので、先ほど作成したロールの名前をクリックして詳細画面を表示したら、ARNをコピーします。

このARNはWafCharm管理画面にてCredential Storeの登録を行う際に使用します。

6. クレデンシャル登録と信頼ポリシーの更新

ロールの作成が完了したら、WafCharm管理画面にてクレデンシャルの登録を行います。
その後WafCharmよりExternal IDが発行されますので、それを用いて再度AWSマネージメントコンソールで信頼ポリシーの更新が必要です。

本セクションでは、Web ACL Configの新規作成を行う想定でクレデンシャル登録の手順を紹介します。
Web ACL ConfigおよびWeb Site Configの新規作成に関する詳細は、WafCharmご利用手順をご確認ください。

なお、クレデンシャル情報のみ新規追加したい場合はCredential Store画面から登録可能です。
参考:Credential Storeについて

1. WafCharm管理画面にログインします。

2. Web ACL Configの新規作成画面を開きます。
詳細はWafCharmご利用手順を参照してください。

3. Credential Storeの項目の右側にあるAddボタンをクリックします。

4. ポップアップが表示されますので、以下の項目を入力し、Saveボタンをクリックします。

  • Name: クレデンシャル情報の名前を入力(管理用の名前です)
  • Type: Assume Roleを選択
  • Assume Role ARN: 「5. ロールの作成」の手順8でコピーしたARNを貼り付ける

5. 信頼ポリシーが表示されるので、内容をコピーします。

6. AWSマネージメントコンソールにて先ほど作成したロールの詳細画面を開いたら、Trust relationshipsタブをクリックします。

7. Edit trust policyボタンをクリックします。

8. Edit trust policy以下に、先ほどクレデンシャルを登録した際に表示された信頼ポリシーを貼り付けてからUpdate policyボタンをクリックします。

WafCharmからのルール更新等を行うことができなくなるため、信頼ポリシーはWafCharm管理画面にて提示されたものに必ず更新してください。

また、信頼ポリシーを先に更新しないとこの後の検証時に失敗します。
信頼ポリシー発行後は、先にAWSマネージメントコンソール上での更新を行ってください。

なお、信頼ポリシーを更新していても、タイミングによっては検証に失敗してしまう場合がありますのでその場合には少し時間を置いてから再度お試しください。

9. WafCharm管理画面に戻り、Validateボタンをクリックします。

10. Validateボタンをクリックすると、検証が行われます。
検証が成功した場合、「Credential Store was successfully created.」と表示されますので、OKボタンをクリックします。

なお、AWS側の信頼ポリシーを更新していても、反映タイミング等によって検証に失敗してしまう場合があります。その場合には少し時間を置いてから再度お試しください。

検証に失敗した場合も、ここまでの手順で作成したクレデンシャル情報はCredential Storeに登録されています。
エラー時には、画面上部のメニューよりCredential Storeを開き、対象のクレデンシャル情報の詳細画面にてValidateボタンを押すと再度検証が行えます。

11. 登録したCredential Storeの名前がプルダウンに表示されたことを確認したら、AssumeRoleを使用したクレデンシャルの登録は完了です。

以降は、WafCharmご利用手順に記載の内容に沿ってWeb ACL Configの登録を完了します。

7. Web Site ConfigでのCredential Storeについて

Web Site Configの設定時にも、クレデンシャルの登録が必要です。

Web ACL Configと同じクレデンシャル情報を用いる場合には、「Reuse Web ACL Credential Store」にチェックを入れた状態でSaveボタンを押してください。

Web ACL Configとは異なるクレデンシャル情報を用いる場合は、「Reuse Web ACL Credential Store」のチェックを外してから、プルダウンより使用したいCredential Storeの名前を選択します。

Web Site Config用にクレデンシャル情報を新規追加する場合には、「Reuse Web ACL Credential Store」のチェックを外してから、プルダウン右側のAddボタンから上記と同じ手順で登録が可能です。