コネクション認証情報のSecrets management
コネクション認証情報の管理を簡素化するために、外部シークレットマネージャーを使用して、パスワードやAPIトークンなどの機密情報を安全に保存および取得できます。
Workatoの外部Secrets management機能では、ハードコードされたコネクション認証情報の代わりにシークレットを使用できます。 認証情報管理を一元化すると、認証情報が使用されている場所で手動更新することなく、パスワードローテーションなどのセキュリティベストプラクティスを採用できます。
このガイドでは、次のトピックについて説明します。
- Secrets managementの仕組み
- Workatoがサポートするシークレットマネージャー
- シークレットを使用したコネクションの設定
- ワークスペースレベルとプロジェクトレベルのSecrets management
機能の提供状況
外部Secrets managementは特定の料金プランで利用できます。 詳細については、ご利用の料金プランおよび契約を参照してください。
Secret managementの仕組み
シークレットマネージャーを使用すると、Workatoに情報を直接入力する代わりにシークレットを使用できます。 シークレットには、パスワードなどの機密情報が含まれます。
コネクションを設定するときは、認証情報を手動で取得して入力する必要があります。 これらの認証情報が変更されるたびに、たとえばパスワードをリセットした場合、そのパスワードを使用するすべてのアプリケーションでパスワードを更新する必要があります。
ただし、代わりに外部シークレットマネージャーを使用する場合は、シークレットマネージャーでパスワードを更新し、Workatoでコネクションを更新するだけで済みます。 参照を使用するアプリケーションは、シークレットの更新された値を取得するため、手作業、中断、そして最も重要なセキュリティリスクを最小限に抑えられます。
WORKATOでコネクションを更新
Workato APIにリクエストを送信してSecrets managementキャッシュをクリアし、コネクションを更新します。 これにより、シークレットマネージャー内の最新の認証情報でコネクションが更新されます。 コネクションを切断して再接続する必要はありません。
概略として、シークレットマネージャーをWorkatoでコネクション認証情報管理に使用する仕組みは次のとおりです。
外部シークレットマネージャーにボールトとシークレットを作成します。 シークレットマネージャーが認証情報を暗号化します。
Workatoにシークレットマネージャーへのアクセス権を付与します。
Workatoで、認証情報の代わりにシークレットを使用してコネクションを設定します。
次の画像は、Amazon Web Services(AWS)Secrets Managerのシークレットで設定されたJiraコネクションを示しています。

Workatoがコネクションを使用するとき、次のタスクを順番に実行します。

シークレットをリクエスト:Workatoはシークレットマネージャーからシークレットをリクエストします。
取得と復号化:シークレットマネージャーはシークレットを取得し、復号化されたシークレット値をWorkatoに返します。
認証:Workatoは復号化された値を使用してアプリケーションに認証します。
アクセス:認証に成功すると、アプリケーションはWorkatoにアクセス権を付与します。
サポートされているシークレットマネージャー
Workatoの機能は現在、次のシークレットマネージャーをサポートしています。
- AWS Secrets Manager
- Azure Key Vault
- CyberArk Conjur Secrets Manager
- Google Secret Manager
- HashiCorp Vault
シークレットを使用したコネクションの設定
Workatoコネクションでシークレットを使用する方法は、使用しているシークレットマネージャーの種類によって異なります。 詳細については、お使いのシークレットマネージャーのガイドを参照してください。
- Amazon Web Services(AWS)Secrets Manager
- Azure Key Vault
- CyberArk Conjur Secrets Manager
- Google Secret Manager
- HashiCorp Vault
ワークスペースとプロジェクトのSecrets management
通常、Secrets managementはワークスペース全体に対して設定します。 組織でよりきめ細かなアクセス制御が必要な場合は、個別のプロジェクトレベルで設定できます。 これにより、プロジェクト内でシークレットを指定できるため、プロジェクト内のコネクションはプロジェクト設定で指定されたロールを引き受けることができます。
たとえば、組織がDevOpsプロジェクトでのみ使用するS3コネクションを設定している場合、S3コネクション認証情報にアクセスできるプロジェクト固有のIAMロールを作成できます。 これにより、複数のプロジェクトで使用できる汎用IAMロールが置き換えられます。
INFO
Workatoでは、Secrets managementはワークスペースレベルまたはプロジェクトレベルのいずれかで使用できます。 混在アプローチはサポートしていません。 たとえば、DevOpsプロジェクトにプロジェクトレベルのSecrets managementを実装する場合、ワークスペース内のすべてのプロジェクトについて、Secrets managementプロトコルをプロジェクトレベルに変更する必要があります。
シークレットの形式設定
特定の種類のシークレットは、Workatoで使用するために正しく形式設定する必要があります。 シークレットマネージャーにシークレットを追加する際は、正しい形式を使用していることを確認してください。
X.509証明書
シークレットマネージャーでX.509証明書を形式設定する方法の例については、次のX.509証明書を参照してください。
-----BEGIN PRIVATE KEY-----\nMIIEvQIBADANBgkqhkiG9w0BA\nQEFAASCBKcwggSjAg\nxxxxxxxxxxxxxx\n-----END PRIVATE KEY-----\nシークレットマネージャーコネクションのトラブルシューティング
シークレットマネージャーを使用するようにコネクションを設定したが、コネクションがPermission deniedエラーを返す場合は、次の手順を実行してコネクションのトラブルシューティングを行います。
認証情報の有効性の確認
シークレットマネージャーへの接続に使用する認証情報が有効かどうかを確認するには、次の手順を実行します。
AWS SECRETS MANAGER
AWSアカウントにログインします。
IAM > Rolesに移動し、WorkatoのSecrets Management機能に割り当てたIAMロールを選択します。
Permissionsタブを選択します。
ロールにアタッチされているIAMポリシーに次の権限があることを確認します。
ListSecretsGetSecretValue
HASHICORP VAULT
HashiCorp Vault CLIを使用して次のcommandを実行し、AppRoleにアタッチされているACLポリシーを確認します。 {approle-name}と{role-name}を独自の値に置き換えます。
vault read auth/{approle-name}/role/{role-name}例:
vault read auth/workato_approle/role/workatoCLI出力には、AppRoleにアタッチされているトークンポリシーの名前が含まれます。
HashiCorp Vault UIにログインします。
ACL Policiesに移動し、HashiCorp Vault CLIが返したポリシー名を選択します。
選択したポリシーに、Vaultクラスターに保存されている適切なシークレットエンジンに対するreadおよびlist機能があることを確認します。
Vault UIでシークレットエンジンを選択し、Configurationタブに移動します。
エンジンのPathがCLI出力のpathと一致していることを確認します。
AZURE KEY VAULT
Azure Portalにログインします。
Key Vault > Access control (IAM) > Role assignmentsに移動します。
clientSecretを生成したService PrincipalにKey Vault Secrets Userロールが付与されていることを確認します。
Microsoft Entra ID > App Registrationsに移動し、Key Vault Secrets Userロールを割り当てたアプリを選択します。
Certificates & Secretsに移動し、Azure Key Vaultコネクションで使用されているシークレットの有効期限が切れていないことを確認します。
GOOGLE SECRET MANAGER
Google Cloud Consoleにログインし、プロジェクトを選択します。
IAM & Admin > IAMに移動します。
Workatoで使用されるサービスアカウントを見つけ、Secret Manager Secret Accessor(roles/secretmanager.secretAccessor)ロールが割り当てられていることを確認します。
IAM & Admin > Service Accountsに移動し、サービスアカウントを選択します。
Keysタブを開き、Workatoコネクションで使用されるキーが存在し、削除または無効化されていないことを確認します。
プロバイダーAPIを使用したシークレット取得のテスト
Step 1で確認した権限がまだ有効な場合は、PostmanやcurlなどのAPIクライアントを使用してシークレットマネージャーにAPIコールを行い、任意のシークレットを取得します。 これにより、シークレットマネージャーのコネクションが失敗する理由について、より多くのInsightsが得られるはずです。
シークレットマネージャーにAPIコールを行うには、次のドキュメントを参照してください。
Last updated: