JEA Oturum Yapılandırmaları
JEA uç noktası, bir PowerShell oturum yapılandırma dosyası oluşturup kaydederek sisteme kaydedilir. Oturum yapılandırmaları, JEA uç noktasını kimlerin kullanabileceğini ve erişebilecekleri rolleri tanımlar. Ayrıca JEA oturumunun tüm kullanıcıları için geçerli olan genel ayarları da tanımlar.
Oturum yapılandırma dosyası oluşturma
JEA uç noktasını kaydetmek için bu uç noktanın nasıl yapılandırılacağını belirtmeniz gerekir. Dikkate alınması gereken birçok seçenek vardır. En önemli seçenekler şunlardır:
- JEA uç noktasına erişimi olan kişiler
- Hangi rollere atanabilirler?
- JEA'nın kapaklar altında kullandığı kimlik
- JEA uç noktasının adı
Bu seçenekler, PowerShell oturum yapılandırma dosyası olarak bilinen bir uzantıya sahip bir .pssc
PowerShell veri dosyasında tanımlanır. Oturum yapılandırma dosyası herhangi bir metin düzenleyicisi kullanılarak düzenlenebilir.
Boş bir şablon yapılandırma dosyası oluşturmak için aşağıdaki komutu çalıştırın.
New-PSSessionConfigurationFile -SessionType RestrictedRemoteServer -Path .\MyJEAEndpoint.pssc
İpucu
Şablon dosyasına varsayılan olarak yalnızca en yaygın yapılandırma seçenekleri eklenir. -Full
Oluşturulan PSSC'ye tüm geçerli ayarları eklemek için anahtarını kullanın.
alanı, -SessionType RestrictedRemoteServer
oturum yapılandırmasının JEA tarafından güvenli yönetim için kullanıldığını gösterir. Bu türdeki oturumlar NoLanguage modunda çalışır ve yalnızca aşağıdaki varsayılan komutlara (ve diğer adlara) erişebilir:
Clear-Host
(cls
,clear
)Exit-PSSession
(exsn
,exit
)Get-Command
(gcm
)Get-FormatData
Get-Help
Measure-Object
(measure
)Out-Default
Select-Object
(select
)
Kullanılabilir PowerShell sağlayıcısı veya dış program (yürütülebilir dosyalar veya betikler) yoktur.
Dil modları hakkında daha fazla bilgi için bkz . about_Language_modes.
JEA kimliğini seçin
Arka planda, JEA'nın bağlı bir kullanıcının komutlarını çalıştırırken kullanması için bir kimliğe (hesaba) ihtiyacı vardır. JEA'nın oturum yapılandırma dosyasında hangi kimliği kullandığını tanımlarsınız.
Yerel Sanal Hesap
Yerel sanal hesaplar, JEA uç noktası için tanımlanan tüm roller yerel makineyi yönetmek için kullanıldığında ve yerel yönetici hesabı komutları başarıyla çalıştırmak için yeterli olduğunda kullanışlıdır. Sanal hesaplar, belirli bir kullanıcıya özgü olan ve yalnızca PowerShell oturumu süresi boyunca kalan geçici hesaplardır. Üye sunucuda veya iş istasyonunda, sanal hesaplar yerel bilgisayarın Yönetici istrators grubuna aittir. bir Active Directory Etki Alanı Denetleyicisinde, sanal hesaplar etki alanının Etki Alanı Yönetici grubuna aittir.
# Setting the session to use a virtual account
RunAsVirtualAccount = $true
Oturum yapılandırması tarafından tanımlanan roller tam yönetim ayrıcalığı gerektirmiyorsa, sanal hesabın ait olacağı güvenlik gruplarını belirtebilirsiniz. Üye sunucuda veya iş istasyonunda, belirtilen güvenlik gruplarının bir etki alanındaki gruplar değil yerel gruplar olması gerekir.
Bir veya daha fazla güvenlik grubu belirtildiğinde, sanal hesap yerel veya etki alanı yöneticileri grubuna atanmamış olur.
# Setting the session to use a virtual account that only belongs to the NetworkOperator and NetworkAuditor local groups
RunAsVirtualAccount = $true
RunAsVirtualAccountGroups = 'NetworkOperator', 'NetworkAuditor'
Not
Sanal hesaplara geçici olarak yerel sunucu güvenlik ilkesinde Hizmet olarak oturum açma hakkı verilir. Belirtilen VirtualAccountGroups'lardan birine ilkede bu hak zaten verilmişse, tek tek sanal hesap artık eklenmez ve ilkeden kaldırılmaz. Bu, etki alanı denetleyicisi güvenlik ilkesinde yapılan düzeltmelerin yakından denetlendiği etki alanı denetleyicileri gibi senaryolarda yararlı olabilir. Bu yalnızca Windows Server 2016'da Kasım 2018 veya üzeri toplama ile ve Ocak 2019 veya sonraki bir güncelleştirme paketiyle Windows Server 2019'da kullanılabilir.
Grup tarafından yönetilen hizmet hesabı
Grup tarafından yönetilen hizmet hesabı (GMSA), JEA kullanıcılarının dosya paylaşımları ve web hizmetleri gibi ağ kaynaklarına erişmesi gerektiğinde kullanılacak uygun kimliktir. GMSA'lar, etki alanı içindeki herhangi bir makinedeki kaynaklarla kimlik doğrulaması yapmak için kullanılan bir etki alanı kimliği sağlar. GMSA'nın sağladığı haklar, eriştiğiniz kaynaklara göre belirlenir. Makine veya hizmet yöneticisi bu hakları GMSA'ya açıkça vermediği sürece hiçbir makinede veya hizmette yönetici haklarına sahip değilsiniz.
# Configure JEA sessions to use the GMSA in the local computer's domain
# with the sAMAccountName of 'MyJEAGMSA'
GroupManagedServiceAccount = 'Domain\MyJEAGMSA'
GMSA'lar yalnızca gerektiğinde kullanılmalıdır:
GMSA kullanırken bir kullanıcıya yönelik eylemleri izlemek zordur. Her kullanıcı aynı farklı çalıştır kimliğini paylaşır. Tek tek kullanıcıları eylemleriyle ilişkilendirmek için PowerShell oturum transkriptlerini ve günlüklerini gözden geçirmeniz gerekir.
GMSA, bağlanan kullanıcının erişmesi gerekmeyen birçok ağ kaynağına erişebilir. Bir JEA oturumundaki etkin izinleri her zaman en az ayrıcalık ilkesine uyması için sınırlamaya çalışın.
Not
Grup tarafından yönetilen hizmet hesapları yalnızca PowerShell 5.1 veya daha yeni sürümler kullanılarak etki alanına katılmış makinelerde kullanılabilir.
JEA oturumunun güvenliğini sağlama hakkında daha fazla bilgi için güvenlikle ilgili dikkat edilmesi gerekenler makalesine bakın.
Oturum transkriptleri
Kullanıcıların oturumlarının dökümlerini otomatik olarak kaydetmek için bir JEA uç noktası yapılandırmanız önerilir. PowerShell oturum transkriptleri, bağlanan kullanıcı, kendisine atanan farklı çalıştır kimliği ve kullanıcı tarafından çalıştırılan komutlar hakkında bilgi içerir. Bir sistemde belirli bir değişikliği kimin yaptığını anlaması gereken bir denetim ekibi için yararlı olabilir.
Oturum yapılandırma dosyasında otomatik transkripsiyonu yapılandırmak için transkriptlerin depolanması gereken bir klasörün yolunu sağlayın.
TranscriptDirectory = 'C:\ProgramData\JEAConfiguration\Transcripts'
Transkriptler, dizine okuma ve yazma erişimi gerektiren Yerel Sistem hesabı tarafından klasöre yazılır. Standart kullanıcıların klasöre erişimi olmamalıdır. Transkriptleri denetleme erişimi olan güvenlik yöneticilerinin sayısını sınırlayın.
Kullanıcı sürücüsü
Bağlanan kullanıcılarınızın JEA uç noktasına veya bu uç noktadan dosya kopyalaması gerekiyorsa, oturum yapılandırma dosyasında kullanıcı sürücüsünü etkinleştirebilirsiniz. Kullanıcı sürücüsü, bağlanan her kullanıcı için benzersiz bir klasöre eşlenmiş bir PSDrive'dır. Bu klasör, kullanıcıların tam dosya sistemine erişim vermeden veya FileSystem sağlayıcısını göstermeden sisteme veya sistemden dosya kopyalamasına olanak tanır. Kullanıcı sürücüsü içeriği, ağ bağlantısının kesintiye uğrayabileceği durumlara uyum sağlamak için oturumlar arasında kalıcıdır.
MountUserDrive = $true
Varsayılan olarak, kullanıcı sürücüsü kullanıcı başına en fazla 50 MB veri depolamanıza olanak tanır. Kullanıcının Kullanabildiği veri miktarını UserDriveMaximumSize alanıyla sınırlayabilirsiniz.
# Enables the user drive with a per-user limit of 500MB (524288000 bytes)
MountUserDrive = $true
UserDriveMaximumSize = 524288000
Kullanıcı sürücüsündeki verilerin kalıcı olmasını istemiyorsanız, her gece klasörü otomatik olarak temizlemek için sistemde zamanlanmış bir görev yapılandırabilirsiniz.
Not
Kullanıcı sürücüsü yalnızca PowerShell 5.1 veya daha yeni sürümlerde kullanılabilir.
PSDrive'lar hakkında daha fazla bilgi için bkz . PowerShell sürücülerini yönetme.
Rol tanımları
Oturum yapılandırma dosyasındaki rol tanımları, kullanıcıların rollere eşlemesini tanımlar. Bu alana dahil olan her kullanıcıya veya gruba, jea uç noktası kaydedildiğinde izin verilir.
Her kullanıcı veya grup karma tabloya yalnızca bir kez anahtar olarak eklenebilir, ancak birden çok rol atanabilir. Rol özelliğinin adı, uzantı olmadan rol yetenek dosyasının .psrc
adı olmalıdır.
RoleDefinitions = @{
'CONTOSO\JEA_DNS_ADMINS' = @{ RoleCapabilities = 'DnsAdmin', 'DnsOperator', 'DnsAuditor' }
'CONTOSO\JEA_DNS_OPERATORS' = @{ RoleCapabilities = 'DnsOperator', 'DnsAuditor' }
'CONTOSO\JEA_DNS_AUDITORS' = @{ RoleCapabilities = 'DnsAuditor' }
}
Bir kullanıcı rol tanımında birden fazla gruba aitse, her birinin rolüne erişim elde eder. İki rol aynı cmdlet'lere erişim izni verince, kullanıcıya en uygun parametre kümesi verilir.
Rol tanımları alanında yerel kullanıcıları veya grupları belirtirken localhost veya joker karakter yerine bilgisayar adını kullandığınızdan emin olun. Değişkenini inceleyerek $env:COMPUTERNAME
bilgisayar adını denetleyebilirsiniz.
RoleDefinitions = @{
'MyComputerName\MyLocalGroup' = @{ RoleCapabilities = 'DnsAuditor' }
}
Rol özelliği arama sırası
Yukarıdaki örnekte gösterildiği gibi rol özelliklerine rol yetenek dosyasının temel adıyla başvurulur. Bir dosyanın temel adı, uzantısı olmayan dosya adıdır. Sistemde aynı ada sahip birden çok rol özelliği varsa, PowerShell etkin rol yetenek dosyasını seçmek için örtük arama sırasını kullanır. JEA, aynı ada sahip tüm rol özelliği dosyalarına erişim vermez.
JEA, rol özelliği dosyaları için hangi yolların tarandığını belirlemek için ortam değişkenini kullanır $env:PSModulePath
. Bu yollardan her birinde JEA, "RoleCapabilities" alt klasörü içeren geçerli PowerShell modüllerini arar. Modülleri içeri aktarmada olduğu gibi JEA da Windows ile birlikte gönderilen rol özelliklerini aynı ada sahip özel rol özelliklerine tercih eder.
Diğer tüm adlandırma çakışmaları için öncelik, Windows'un dizindeki dosyaları listeleme sırasına göre belirlenir. Sıranın alfabetik olması garanti değildir. Belirtilen adla eşleşen ilk rol özelliği dosyası, bağlanan kullanıcı için kullanılır. Rol özelliği arama sırası belirleyici olmadığından rol özelliklerinin benzersiz dosya adlarına sahip olması kesinlikle önerilir .
Koşullu erişim kuralları
RoleDefinitions alanına dahil olan tüm kullanıcılara ve gruplara JEA uç noktalarına otomatik olarak erişim verilir. Koşullu erişim kuralları, bu erişimi iyileştirmenize olanak tanır ve kullanıcıların atandıkları rolleri etkilemeyen ek güvenlik gruplarına ait olmasını zorunlu kılar. Bu, tam zamanında ayrıcalıklı erişim yönetimi çözümünü, akıllı kart kimlik doğrulamasını veya diğer çok faktörlü kimlik doğrulama çözümünü JEA ile tümleştirmek istediğinizde kullanışlıdır.
Koşullu erişim kuralları, oturum yapılandırma dosyasındaki RequiredGroups alanında tanımlanır. Burada, kurallarınızı oluşturmak için 'And' ve 'Or' anahtarlarını kullanan bir karma tablo (isteğe bağlı olarak iç içe yerleştirilmiş) sağlayabilirsiniz. Bu alanın nasıl kullanılacağına dair bazı örnekler aşağıda verilmiştir:
# Example 1: Connecting users must belong to a security group called "elevated-jea"
RequiredGroups = @{ And = 'elevated-jea' }
# Example 2: Connecting users must have signed on with 2 factor authentication or a smart card
# The 2 factor authentication group name is "2FA-logon" and the smart card group
# name is "smartcard-logon"
RequiredGroups = @{ Or = '2FA-logon', 'smartcard-logon' }
# Example 3: Connecting users must elevate into "elevated-jea" with their JIT system and
# have logged on with 2FA or a smart card
RequiredGroups = @{ And = 'elevated-jea', @{ Or = '2FA-logon', 'smartcard-logon' }}
Not
Koşullu erişim kuralları yalnızca PowerShell 5.1 veya daha yeni sürümlerde kullanılabilir.
Diğer özellikler
Oturum yapılandırma dosyaları, bir rol özelliği dosyasının yapabilecekleri her şeyi, yalnızca bağlanan kullanıcılara farklı komutlara erişim izni vermeden de yapabilir. Tüm kullanıcıların belirli cmdlet'lere, işlevlere veya sağlayıcılara erişmesine izin vermek istiyorsanız, bunu doğrudan oturum yapılandırma dosyasında yapabilirsiniz.
Oturum yapılandırma dosyasında desteklenen özelliklerin tam listesi için komutunu çalıştırın Get-Help New-PSSessionConfigurationFile -Full
.
Oturum yapılandırma dosyasını test etme
Test-PSSessionConfigurationFile cmdlet'ini kullanarak oturum yapılandırmasını test edebilirsiniz. Dosyayı el ile düzenlediyseniz .pssc
oturum yapılandırma dosyanızı test edin. Test, söz diziminin doğru olmasını sağlar. Oturum yapılandırma dosyası bu testi başarısız olursa sistemde kaydedilemez.
Örnek oturum yapılandırma dosyası
Aşağıdaki örnekte JEA için oturum yapılandırması oluşturma ve doğrulama gösterilmektedir. Rol tanımları, kolaylık ve okunabilirlik için oluşturulur ve değişkende $roles
depolanır. bu bir gereksinim değildir.
$roles = @{
'CONTOSO\JEA_DNS_ADMINS' = @{ RoleCapabilities = 'DnsAdmin', 'DnsOperator', 'DnsAuditor' }
'CONTOSO\JEA_DNS_OPERATORS' = @{ RoleCapabilities = 'DnsOperator', 'DnsAuditor' }
'CONTOSO\JEA_DNS_AUDITORS' = @{ RoleCapabilities = 'DnsAuditor' }
}
$parameters = @{
SessionType = 'RestrictedRemoteServer'
Path = '.\JEAConfig.pssc'
RunAsVirtualAccount = $true
TranscriptDirectory = 'C:\ProgramData\JEAConfiguration\Transcripts'
RoleDefinitions = $roles
RequiredGroups = @{ Or = '2FA-logon', 'smartcard-logon' }
}
New-PSSessionConfigurationFile @parameters
Test-PSSessionConfigurationFile -Path .\JEAConfig.pssc # should yield True
Oturum yapılandırma dosyalarını güncelleştirme
Kullanıcıların rollere eşlemesi de dahil olmak üzere JEA oturum yapılandırmasının özelliklerini değiştirmek için kaydı silmeniz gerekir. Ardından güncelleştirilmiş bir oturum yapılandırma dosyası kullanarak JEA oturum yapılandırmasını yeniden kaydedin .
Sonraki adımlar
PowerShell