オンプレミスエージェントに向けて AWS Secrets Manager を設定する

このガイドでは、Amazon Web Services Secrets ManagerWorkato のオンプレミスエージェント (OPA) を併せて使用して、データベースの認証情報を保存する方法を解説します。

設定が済んでいると、OPA はデフォルトの認証情報プロバイダチェーンを使用して自身から AWS へのリクエストを認証するようになり、OPA の設定ファイルに認証情報を保存する必要がなくなります。Amazon Web Services (AWS) Secrets Manager のページを参照してください。

もう1つの方法として、プロジェクトレベルでアクセスを管理することも選択できます。その場合は、シークレットマネージャーの設定を変更して、プロジェクト内のコネクションがプロジェクト設定内で指定されたロールを使用できるようにします。つまり、お客様はプロジェクト固有の IAM ロールを作成し、シークレットの使用をプロジェクト内のコネクションに制限することが可能です。各プロジェクトのための Amazon Web Services (AWS) Secrets Manager のページを参照してください。


前提条件

AWS Secrets Manager を OPA と連動するように設定するには、以下が必要となります。


ステップ1: AWS 内でシークレットを作成する

1

AWS コンソールにログインします。

2

ページ上部の 検索バー を使って、AWS Secrets Manager を開きます。

3

[Store a new secret] ボタンをクリックします。

4

Step 1 - Choose secret type のページで以下を実行します。

1

[Secret type] セクションで、 [Other type of secret] をクリックします。

2

[Key/value pairs] セクションで、 [Plaintext] オプションをクリックします。

3

[Plaintext] フィールドにパスワードを入力します。OPA はこの値を取得し、そのまま渡します。

設定は以下の画面のようになるはずです。

AWS Secrets Manager で設定済みのシークレットタイプのページAWS Secrets Manager で設定済みのシークレットタイプのページ

4

[Next] をクリックします。

5

Step 2 - Configure secret のページで以下を実行します。

1

以下のフィールドに入力します。

  • Secret name : シークレットに名前を付けます。この値は、次のセクションで OPA 設定ファイル内に追加することになります。それにより、OPA は正しいパスワードを取得できるようになります。
  • Description (任意) : このシークレットの簡単な説明を入力します。

AWS Secrets Manager のシークレット設定ページAWS Secrets Manager のシークレット設定ページ

2

完了したら [Next] をクリックします。

6

任意 : Step 3 - Configure rotation のページで、必要に応じてシークレットのローテーションを設定します。完了したら [Next] をクリックします。

7

Step 4 - Review のページで以下を実行します。

1

シークレットの詳細を再確認します。

2

何も問題がないようであれば、 [Store] をクリックしてシークレットを作成および保存します。


ステップ2: OPA 設定ファイルを設定する

このステップでは、シークレットマネージャーに関する情報を OPA 設定ファイルに追加します。

認証情報が不要

設定が済んでいると、OPA はデフォルトの認証情報プロバイダチェーンを使用して自身から AWS へのリクエストを認証するようになります。これにより、OPA の設定ファイルに認証情報 (AWS Secrets Manager 用またはデータベース用) を保存する必要がなくなります。

1

OPA 設定ファイル内で、secrets セクションと provider キーおよび region キーを追加します。

yaml
secrets:
  provider: aws
  region: <YOUR_REGION>
2

provider としては、aws を入力します。

3

region としては、ご使用の AWS インスタンスが置かれているリージョンを入力します。

yaml
secrets:
  provider: aws
  region: us-east-1

この情報は、AWS コンソールから見つけることができます。ページ上部の リージョンメニュー (ユーザーメニューの隣に配置されています) をクリックしてください。

AWS Secrets Manager のシークレット設定ページAWS Secrets Manager のシークレット設定ページ

この例では、リージョンは us-east-1 となっています。

4

ファイルを保存します。


ステップ3: データベースのプロファイルを設定する

仕上げとして、どのシークレットを使用するかをデータベースのプロファイル内で指定します。

1

設定ファイル内で、データベースのプロファイルに移動します。

2

password キー内で、{ secret: '<SECRET_NAME>'} を使用してシークレットを指定します。<SECRET_NAME> は、ステップ1で作成したシークレットの名前に一致している必要があります。

yaml
database:
  sales_database:
    adapter: sqlserver
    host: localhost
    port: 1433
    database: test
    username: sales_user
    password: { secret: 'sales-db-password-password' }
3

ファイルを保存します。

Last updated: