keenauth_management_client
keenauth_management_client kaynağı, app_type = "management" olan bir uygulamanın yönetim API erişimini ayarlar: uygulamanın makineden makineye istemcisinin yönetim API'sini çağırabileceği izinler ve IP izin listesi. Bir uygulamanın en fazla bir kaydı vardır ve kayıt uygulama kimliğiyle tanımlanır.
En az ayrıcalık
Bu kaynak yönetim API'sine erişim verir. Erişimi dar tutun:
- Yalnızca otomasyonun ihtiyaç duyduğu izinleri listeleyin; örneğin tüm
users:*izinleri yerineusers:read. allowed_cidrsdeğerini, istemcinin çalıştığı ağlarla sınırlayın.- Her otomasyon için ayrı bir yönetim uygulaması kullanın; böylece her biri bağımsız olarak daraltılabilir veya kaldırılabilir.
Yapılandırmayı uygulayan API anahtarı, yalnızca kendisinde bulunan izinleri ve ağları verebilir.
resource "keenauth_application" "ops" {
key = "ops-automation"
name = "Ops automation"
app_type = "management"
party = "first_party"
}
resource "keenauth_management_client" "ops" {
application_id = keenauth_application.ops.id
permissions = ["users:read", "applications:read"]
allowed_cidrs = ["203.0.113.0/24"]
}
İmzalama anahtarları
Bu kaynak hiçbir gizli bilgi veya anahtar tutmaz. Uygulamanın genel anahtarını CLI'da veya kontrol panelinde POST /v1/applications/{application_id}/credentials (type: public_key) ile kaydedin. API, bu kaynakta jwks_uri ve public_keys değerlerini reddeder.
Plandaki allowed_cidrs
- Kayıt oluşturulurken
allowed_cidrsdeğerini atlarsanız API, çağıran API anahtarının kendi listesini yazar. Anahtarın bir listesi yoksa istemcinin IP kısıtlaması olmaz. Plan(known after apply)gösterir. - Kayıt var olduktan sonra özniteliği atlamak mevcut değeri korur. Yapılandırmadan kaldırmak listeyi sıfırlamaz ve yapılandırma dışında yapılan bir değişiklik fark oluşturmadan kabul edilir. Yönetmek için listeyi açıkça yazın.
- Boş liste plan aşamasında reddedilir, çünkü API
[]değerini çağıran anahtarın listesine dönüştürür. Bunun yerine özniteliği atlayın. - Her bloğu kanonik biçimde yazın: ağ adresi ve küçük harfli IPv6. Örneğin
10.0.0.5/24yerine10.0.0.0/24yazın.
Hatalar
| Hata | Anlamı |
|---|---|
403 insufficient_permissions |
Bu kayıtları yalnızca bir API anahtarı yönetebilir; client_id + private_key yerine api_key ile yapılandırılmış bir sağlayıcı kullanın. API anahtarıyla, kısıtlı bir anahtarda management-clients:read veya management-clients:write eksiktir. |
403 permission_escalation |
Kayıt, API anahtarında bulunmayan izinlere veya ağlara sahip olurdu. |
Oluşturmada 404 |
Uygulama, API anahtarının ortamında yok. |
409 |
Uygulamanın zaten bir kaydı var. Bunu içe aktarın. |
application_id üzerinde 422 |
Uygulama management türünde değil. |
412 |
Kayıt plandan sonra değişti. Hiçbir şey değiştirilmedi; plan komutunu yeniden çalıştırın. |
İçe aktarma
Uygulama kimliğiyle içe aktarın:
tofu import keenauth_management_client.ops app_01j9zq3v8c5m2x7k4t6r1n0b3d