1Password サービス アカウントのセキュリティ

1Passwordマニュアル|サービスアカウントのセキュリティーを強化し、アプリやシステム内でのシークレット管理を自動化する方法をご紹介します。

1Password Service Accountsのセキュリティー

1Password Service Accountsを使うと、アプリやシステム内のシークレットの管理を自動化できます。追加のサービスは必要ありません。このページの各セクションを参照して、サービスアカウントのセキュリティーについて詳しく学んでください。1Passwordのセキュリティー活動の詳細については、1Password Securityホームページをご覧ください。

アクセス制御

サービスアカウントをCreateするときに、アクセスできる保管庫とアクセスレベルを選択します。サービスアカウントは、アクセスできる保管庫からの情報のみを返します。また、サービスアカウントに保管庫のCreateと管理の権限を付与することもできます。

サービスアカウントとトークンの生Create

サービスアカウントは、プログラムによるアクセスを目的としたユーザーアカウントの一種です。サービスアカウントは、メールアドレスやアカウントのパスワードを入力する必要がない点で、通常の1Passwordアカウントとは異なります。

通常のユーザーアカウントが主鍵をCreateする場合、ユーザーはeメール、秘密鍵、アカウントのパスワードを提供する必要があります。サービスアカウントユーザーが主鍵をCreateする場合、1Passwordが全ての入力を生Createします。

要素

定期ユーザー

サービスアカウント

秘密鍵

生Create

生Create

パスワード

ユーザー提供

生Create

1Passwordは、2つの秘密鍵導出(2SKD)プロセスの一部として秘密鍵とパスワードを使って、次のものをCreateします。

  • Account Unlock Key (AUK)

  • Secure Remote Password (SRP)

これら2つのアイテムを導出した後、1PasswordはそれらのCreateに使われたパスワードを破棄します。

通常のユーザーでもサービスアカウントユーザーでも、各ユーザーには、ユーザーアカウントのCreate時に1Passwordによって生Createされる個人鍵セットがあります。AUKは個人鍵セットを暗号化し、1Passwordは個人鍵セットを使って保管庫を暗号化および復号化します。

サービスアカウントトークンは、シリアル化され、Base64 URLエンコードされたSRPxオブジェクトを表す認証文字列です。サービスアカウントトークンにより、サービスアカウントは1Password CLIで認証できます。

1Passwordは、AUK、SRP、個人鍵セットをJSON WebToken(JWT)にシリアル化することでサービスアカウントトークンをCreateし、それをBase64でエンコードします。

エンコードおよびデコードされたサービスアカウントトークンの次の例を参照してください。

  • エンコード

エンコードされたサービスアカウントトークン:

ops_eyJlbWFpbCI6ImVqd2U2NHFtbHhocmlAMXBhc3N3b3Jkc2VydmljZWFjY291bnRzLmxjbCIsIm11ayI6eyJhbGciOiJBMjU2R0NNIiwiZXh0Ijp0cnVlLCJrIjoiTThWUGZJYzhWRWZUaGNNWExhS0NLRjhzTWg1Sk1ac1BBdHU5MmZRTmItbyIsImtleV9vcHMiOlsiZW5jcnlwdCIsImRlY3J5cHQiXSwia3R5Ijoib2N0Iiwia2lkIjoibXAifSwic2VjcmV0S2V5IjoiQTMtQzRaSk1OLVBRVFpUTC1IR0w4NC1HNjRNNy1LVlpSTi00WlZQNiIsInNycFgiOiI4NzBkNjdhOWU2MjY2MjVkOWUzNjg1MDc4MDRjOWMzMmU2NjFjNTdlN2U1NTg3NzgyOTFiZjI5ZDVhMjc5YWUxIiwic2lnbkluQWRkcmVzcyI6ImdvdGhhbS5iNWxvY2FsLmNvbTo0MDAwIiwidXNlckF1dGgiOnsibWV0aG9kIjoiU1JQZy00MDk2IiwiYWxnIjoiUEJFUzJnLUhTMjU2IiwiaXRlcmF0aW9ucyI6MTAwMDAwLCJzYWx0IjoiRk1SVVBpeXJONFhmXzhIb2g2WVJYUSJ9fQ

  • デコード

デコードされたサービスアカウントトークン:

{

"email": "[email protected]",

"muk": {

"alg": "A256GCM",

"ext": true,

"k": "M8VPfIc8VEfThcMXLaKCKF8sMh5JMZsPAtu92fQNb-o",

"key_ops": [

"encrypt",

"decrypt"

],

"kty": "oct",

"kid": "mp"

},

"secretKey": "A3-C4ZJMN-PQTZTL-HGL84-G64M7-KVZRN-4ZVP6",

"srpX": "870d67a9e626625d9e368507804c9c32e661c57e7e558778291bf29d5a279ae1",

"signInAddress": "gotham.b5local.com:4000",

"userAuth": {

"method": "SRPg-4096",

"alg": "PBES2g-HS256",

"iterations": 100000,

"salt": "FMRUPiyrN4Xf_8Hoh6YRXQ"

},

"throttleSecret": {

"seed": "ddc20da89d71ff640f36bb6c446c64d56a2123eb4e7bd9c89ce303075eea5780",

"uuid": "TP4Z5ZB7IJABDPGIVSUZLY4T5A"

},

"deviceUuid": "ay5shynibdyqisjz3j63b7uygy"

}

ℹ️情報

1Passwordは、コードアナライザーが誤って資格情報が漏洩したことを検出できるように、独自の文字列形式を使います。この形式では、トークンのプレフィックスとして"ops_ "が使われます。

トークンをCreateする手順はデバイス(クライアント側)で実行されます。機密情報が1Passwordのサーバーに送られることはありません。サービスアカウントトークンをSaveして保護するのはユーザーの責任です。

トークンのローテーションと失効

サービスアカウントトークンをローテーションまたは取り消すことができます。サービスアカウントトークンが窃取された場合や、定期的なトークンのローテーションを要求するセキュリティーポリシーに準拠する必要がある場合は、サービスアカウントトークンを取り消したり、ローテートしたりする必要があります。

  • こちらでサービスアカウントトークンを取り消す方法について説明します。

  • こちらでサービスアカウントトークンをローテーションする方法を学んでください。

セキュリティーモデル

1Password Service Accountsのセキュリティーモデルには、次の保証があります。

  • サービスアカウントは、読み取りアクセス権を持つ保管庫からのみアイテムを読み取ることができます。

  • サービスアカウントは、書き込みアクセス権を持つ保管庫に対してのみ、アイテムを更新、削除、Createできます。

  • サービスアカウントのCreate者は、CreateCreate者がアクセス権を持つ保管庫へのアクセス権のみをサービスアカウントに付与できます。

  • サービスアカウントのCreate者に保管庫を管理する権限がある場合でも、サービスアカウントが無効になっている保管庫へのアクセス権をサービスアカウントに付与することはできません。

  • 保管庫のサービスアカウントを無効にすると、保存済みの全てのサービスアカウントからその保管庫へのアクセスが削除されます。

  • デフォルトでは、アカウント所有者管理者がサービスアカウントをCreateできます。

    • 全ての所有者と管理者はサービスアカウントの詳細を表示したり、サービスアカウントを削除したりできますが、生Createされたサービスアカウントトークンを表示することはできません。

    • 所有者と管理者は、他のチームメンバーに独自のサービスアカウントをCreateし管理するアクセス権を付与できます。

    • チームメンバーは、その保管庫に対するManage Vault権限を持っている場合にのみ、サービスアカウントに保管庫へのアクセスを許可できます。

  • 削除されたサービスアカウントに関連付けられたサービスアカウントトークンは認証できません。

  • 生CreateされたサービスアカウントのCreate後に、保管庫へのアクセスを追加することはできません。

  • サービスアカウントは別のサービスアカウントをCreateすることはできません。

  • サービスアカウントではユーザーを管理できません。

Account Unlock Key Account Unlock Key(AUK) は、2SKDプロセスから導出された鍵です。ユーザーの個人鍵セットを復号化するために使われます。ユーザーのアカウント パスワードと秘密鍵から導出します。以前は “Master Unlock Key”と呼ばれていました。

個人鍵セット 各ユーザーアカウント(通常のユーザーまたはサービスアカウント)は、保管庫の暗号化と復号化に使用される公開鍵と秘密鍵のペアで構成される個人鍵セットを持ちます。

Secure Remote Password Secure Remote Password(SRP)は、2SKDプロセスから導出された鍵です。これは、クライアントとサーバーの両方が秘密を漏らすことなく相互に認証する方法であるSecure Remote Passwordプロトコルに使われます。

サービスアカウントトークン

サービスアカウントトークンは、サービスアカウントに1つ以上の1Password保管庫へのアクセスを許可する認証文字列です。サービスアカウントトークンを使って、1Password CLIなどのサービスやツールを認証できます。

2SKD(Two-secret key derivation) 2SKDは、2つのユーザーシークレット(アカウントパスワードと秘密鍵)を使って2つの独立した鍵(Account Unlock KeyとSecure Remote Password)を導出するキー導出関数の一種です。

「責任ある開示」のお願い

1Passwordでは、脆弱性を発見した場合には「責任ある開示」をお願いしています。脆弱性を発見した場合は、BugCrowdを通じてリクエストを提出してください。