これは非常に単純な使用例のようですが、 最近追加されたいくつかに依存します機能 私はまだ理解していないかもしれません:
pythonスクリプトは、特定のIP範囲内のいくつかの監視サーバーの構成管理によって入力されます。
def main():
args = get_args()
user, password = args.redis_credentials
... store creds in a local file owned by root, do stuff with this...
これは次のように変わるはずです。
def main():
args = get_args()
vault_token = args.approle_token_for_vault
user, password = get_creds_from_vault(token=vault_token, path="/secrets/redis/redis_credentials")
... store creds in a local file owned by root, do stuff with this...
このスクリプトには、データストアへのユーザー/パス認証が必要です。
スクリプトに渡されたものはすべて、多数のマシンで共有されているファイル(アクセストークンなど)に入るとします。特定のサブネットまたはIPアドレス範囲を除いて、プロビジョニングは予測できません。
とにかく、Vaultを使用して、MACアドレスやIPアドレスなどのある種のネットワーク識別子に基づいて、これらの共有資格情報へのアクセスを制限できますか?
はい、わかっています。IPアドレスの制限は "多層防御"のアプローチであり、IPアドレスが偽装される可能性があります。しかし、そのアイデアは、既存のセキュリティ状況を段階的に改善することです。
オープンソースバージョンのHashiCorp Vaultの0.6.4以降、CIDR範囲に基づいてAppRolesへのアクセスを制限できることがわかりました。ただし、他の認証方法ではこれを行うことができませんでした。
HashiCorp Vaultの以降のバージョンでは、CIDR範囲バインディング機能がますます多くの認証方法に追加されています。 HashiCorpは、Vault AuthメソッドをCIDR範囲にバインドするだけでなく、生成された任意のVaultトークンを構成可能なCIDR範囲にバインドする機能も追加しました。
機能が有効になったとき:
https://github.com/hashicorp/vault/blob/master/CHANGELOG.md#0103-june-20th-2018
魔法が起こる場所:
CIDRとは何ですか?
CIDR(クラスレスドメイン間ルーティング、スーパーネットと呼ばれることもあります)は、IPアドレスクラスの元のシステムで可能だったよりも柔軟にインターネットプロトコル(IP)アドレスを割り当てることができる方法です。
IPv4では、CIDRネットワークアドレスは次のようになります:192.30.250.00/18
IPアドレス範囲を指定するのはビット単位の方法であるため、192.30.250.00/18は192.30.192.0〜192.30.255.255のIPアドレス範囲に対応します。
CIDRに関するリンク
https://www.ipaddressguide.com/cidr
https://searchnetworking.techtarget.com/definition/CIDR