Privátní repozitáře zdarma s Git a Visual Studio Team Services

Hledáte pro váš vývojový tým protostor pro privátní repozitáře postavené na Git protokolu s bezpečným uložením v cloudu s funkcemi jako je webové GUI, pull requesty, řízení projektu, testování či CI/CD? Zkuste Visual Studio Team Services, které je pro týmy do velikosti pět uživatelů zdarma s neomezeným počtem privátních repozitářů a dokonce jednou hostovanou CI/CD pipeline. Pokud váš projekt poroste snadno si připlatíte víc uživatelů, víc pipeline nebo další služby jako je testování. Vyzkoušejme si dnes základní práci s version control s využitím oblíbeného Git. Pokračovat ve čtení „Privátní repozitáře zdarma s Git a Visual Studio Team Services“

Networking v cloudu: Routing a service insertion v Azure

Azure VNET nabízí váš vlastní L3 prostor se směrováním mezi subnety, napojením na VPN a tak podobně. Jak vlastně směrování ve VNETu funguje? Dá se nějak ovlivnit, například do dráhy paketu vsunout vaše vlastní virtuální bezpečnostní zařízení, ať už je to Linux, Cisco, Palo Alto, Fortinet, A10, KEMP, Check Point, F5, Barracuda nebo nějaké jiné? Dnes se podíváme na podrobnosti. Pokračovat ve čtení „Networking v cloudu: Routing a service insertion v Azure“

Datové soubory přímo v Azure Storage s SQL Server 2016 ve VM – zrychlete dramaticky backup

Chcete v Azure provozovat SQL? Mojí první volbou by byla platformní služba, tedy SQL Database. Možná ale máte důvody, které vás vedou k nasazení klasického SQL ve VM v Azure – musíte udělat drobné změny ve správě a účtech a není na to zatím čas, spoléháte se na některé v PaaS nepodporované formy monitoringu a tak podobně. Víte, že od SQL Server 2016 můžete běžet SQL ve VM, ale datové soubory a log mít napřímo v Azure storage? Oddělit tak životní cyklus dat a VM a v neposlední řadě využít rychlou a efektivní snapshotovou zálohu. Extrémně rychlá záloha a dramaticky svižnější restore a navíc méně zabraného místa. A můžete ještě bokem na levnou storage posílat data pro dlouhodou archivaci. Podívejme se jak na to. Pokračovat ve čtení „Datové soubory přímo v Azure Storage s SQL Server 2016 ve VM – zrychlete dramaticky backup“

Helm – váš package manager pro Kubernetes

Kubernetes v rámci Azure Container Service je skvělé řešení pro vaše kontejnerizované aplikace. Jenže co když ta se skládá z několika komponent ať už technologických (web, cache, databáze, …) nebo s byznys logikou (mikroslužby)? Jak koordinovaně nasadit, upgradovat a rollbackovat celé aplikace bez nutnosti řešit každý dílek zvlášť? V Linuxu máte package manager jako je apt nebo yum. Existuje něco podobného pro Kubernetes? Ano a jmenuje se Helm. Vyzkoušejme si dnes. Pokračovat ve čtení „Helm – váš package manager pro Kubernetes“

Pohodlný deployment aplikací do Azure App Service

Podívejme se dnes na způsoby, jakými můžete ručně i automaticky provést deployment aplikace do App Service, nejpopulárnější platformní služby v Azure. Uvidíte jednoduchou instalaci z Visual Studio, Eclipsu, deployment přes FTP, Git, GitHub, Visual Studio Team Services, DropBox i doručení ve formě Docker kontejneru. Pokračovat ve čtení „Pohodlný deployment aplikací do Azure App Service“

Azure App Sevice: úvod do platformy pro vaše webové a API aplikace

Nainstalovat webovou aplikaci třeba na IIS server se zdá velmi jednoduché a ono vlastně je. Něco takového je ale jen drobným úkolem v rámci vývoje a provozu webově orientovaných aplikací a API. Patchování serveru, automatizace release, tvorba CI/CD pipeline, balancing, autoscaling, SSL akcelerace, zálohování, troubleshooting, logování a debugging, monitoring aplikace, autentizace uživatelů, vývojová prostředí, zátěžové testy – to všechno patří k úspěšnému vývoji a provozu aplikace. Azure App Service je platforma, která má přesně všechny tyto úkony dobře rozmyšlené a dostupné jako službu. To je důvod, proč jsou App Services nejpopulárnější platformní (PaaS) službou v Azure. Pokračovat ve čtení „Azure App Sevice: úvod do platformy pro vaše webové a API aplikace“

Úvod do Azure CLI 2.0

Jak už na tomto blogu psal v úvodu do ovládání Azure přes PowerShell – GUI portálu se mi líbí a rád ho používám, ale jsou situace kdy je textový režim rychlejší a hlavně automatizovatelný skripty. PowerShell je dobře čitelný a mám moc rád jeho schopnosti parsování výstupu (například dáte celý příkaz do závorky, za ni dáte tečku a PowerShell bere výstup příkazu jako objekt, z kterého chcete vypsat atribut za tečkou). Tradiční Linux CLI je zase velmi úsporné a rychle se v něm dělá. Parsování je sice  textové, ale zažité. V dnešním článku si zkusíme CLI pro Azure.

Azure CLI 2.0

Většina moderních CLI je napsána v Python (o je třeba případ DC/OS CLI) nebo Go (například Docker CLI nebo kubectl v Kubernetes). Azure CLI 2.0 je v Pythonu, který je dobře dostupný všude (předchozí generace Azure CLI označovaná jako xplat-cli byla v Javascriptu, takže pro běh jste museli nainstalovat Node.JS a npm balíčky … to mě zas tolik neoslovilo).

Na MacOS, v Linuxu i Windows (nebo Ubuntu user space ve Windows 10) můžete po instalaci Python instalovat CLI přes pip:

pip install azure-cli

Ve Windows CMD vám ale nebude fungovat automatické doplňování. Já osobně dávám jednoznačně přednost Docker kontejneru, který má v sobě všechno potřebné a nemusím se s ničím trápit ani hledat kde co stáhnout nebo nainstalovat:

docker run -it azuresdk/azure-cli-python:latest bash

Co CLI nabízí?

$ az

     /\
    /  \    _____   _ _ __ ___
   / /\ \  |_  / | | | \'__/ _ \
  / ____ \  / /| |_| | | |  __/
 /_/    \_\/___|\__,_|_|  \___|


Welcome to the cool new Azure CLI!

Here are the base commands:

    account          : Manage subscriptions.
    acr              : Manage Azure Container Registries.
    acs              : Manage Azure Container Services.
    ad               : Synchronize on-premises directories and manage Azure Active Directory
                       resources.
    appservice       : Manage your App Service plans.
    batch            : Manage Azure Batch.
    billing          : Manage Azure Billing.
    cdn              : Manage Azure Content Delivery Networks (CDN).
    cloud            : Manage the registered Azure clouds.
    cognitiveservices: Manage Cognitive Services accounts in Azure Resource Manager.
    component        : Manage and update Azure CLI 2.0 components.
    configure        : Configure Azure CLI 2.0 or view your configuration. The command is
                       interactive, so just type `az configure` and respond to the prompts.
    consumption      : Manage Azure Consumption.
    cosmosdb         : Manage Azure Cosmos DB database accounts.
    disk             : Manage Azure Managed Disks.
    dla              : Commands to manage Data Lake Analytics accounts, jobs, and catalogs.
    dls              : Commands to manage Data Lake Store accounts, and filesystems.
    feature          : Manage resource provider features, such as previews.
    feedback         : Loving or hating the CLI?  Let us know!
    find             : Find Azure CLI commands based on a given query.
    functionapp      : Manage your function app.
    group            : Manage resource groups and template deployments.
    image            : Manage custom Virtual Machine Images.
    interactive      : Start the interactive experience.
    iot              : Connect, monitor, and control millions of IoT assets.
    keyvault         : Safeguard and maintain control of keys, secrets, and certificates.
    lab              : Commands to manage DevTest Labs.
    lock             : Manage Azure locks.
    login            : Log in to access Azure subscriptions.
    logout           : Log out to remove access to Azure subscriptions.
    managedapp       : Manage template solutions provided and maintained by the ISV using managedapp
                       and managedapp definitions.
    monitor          : Commands to manage Azure Monitor service.
    mysql            : Commands to manage Azure Database for MySQL servers.
    network          : Manages Azure Network resources.
    policy           : Manage resource policies.
    postgres         : Commands to manage Azure Database for PostgreSQL servers.
    provider         : Manage resource providers.
    redis            : Access to a secure, dedicated cache for your Azure applications.
    resource         : Manage Azure resources.
    role             : Use role assignments to manage access to your Azure resources.
    sf               : Manage and administer a Service Fabric cluster.
    snapshot         : Manage point-in-time copies of managed disks, native blobs, or other
                       snapshots.
    sql              : Manage Azure SQL Databases and Data Warehouses.
    storage          : Durable, highly available, and massively scalable cloud storage.
    tag              : Manage resource tags.
    vm               : Provision Linux or Windows virtual machines in seconds.
    vmss             : Create highly available, auto-scalable Linux or Windows virtual machines.
    webapp           : Manage web apps.

Nejlprve se nalogujeme. Pokud používáte Microsoft account nebo dvou faktorovou autentizaci nestačí zadat jméno a heslo přímo z CLI, bezpečnostní nároky jsou větší. Dostanete tedy odkaz a vygenerovaný kód. Musíte na web, zadat tento kód a přihlásit se v prohlížeči. CLI samo pozná, až to bude hotové a pak už budete zůstávat jen v řádce.

$ az login
To sign in, use a web browser to open the page https://aka.ms/devicelogin and enter the code CRCTHQJEQ to authenticate.

Vyzkoušejme si help a nakonec vypíšeme resource groupy. Výstup lze různě formátovat. Výchozí je JSON, my teď použijeme table a užitečné je také tsv (tabulátorem oddělené hodnoty – ideální pro parsování typu xargs).

$ az group --help

Group
    az group: Commands to manage resource groups.

Subgroups:
    deployment: Commands to execute or manage ARM deployments.

Commands:
    create    : Create a new resource group.
    delete    : Delete resource group.
    exists    : Checks whether resource group exists.
    export    : Captures a resource group as a template.
    list      : List resource groups, optionally filtered by a tag.
    show      : Get a resource group.
    update
    wait

$ az group list --help

Command
    az group list: List resource groups, optionally filtered by a tag.

Arguments
    --tag      : A single tag in 'key[=value]' format. Use '' to clear existing tags.

Global Arguments
    --debug    : Increase logging verbosity to show all debug logs.
    --help -h  : Show this help message and exit.
    --output -o: Output format.  Allowed values: json, jsonc, list, table, tsv.  Default: json.
    --query    : JMESPath query string. See http://jmespath.org/ for more information and examples.
    --verbose  : Increase logging verbosity. Use --debug for full debug logs.
$ az group list -o table
Name     Location        Status
-------  --------------  ---------
auto     westeurope      Succeeded
ftp      westeurope      Succeeded
funkce   southcentralus  Succeeded
mujnh    westeurope      Succeeded
mujteam  westeurope      Succeeded
search   westeurope      Succeeded
sql      westeurope      Succeeded
storage  westeurope      Succeeded
wp       westeurope      Succeeded

Tradiční parsovací hrátky

Snažil jsem se přijít na něco, kde bych mohl nasadit tradiční parsovací záležitosti v Linuxu a tohle je výsledek. Řekněme, že jsme zapomněli u zdrojů v Azure používat tagy a teď potřebujeme informace o každé resource group, která končí na písmeno „e“ 🙂

Pojďme na to. Prvním příkazem vypíšeme všechny skupiny a atributy oddělíme tabulátorem.

$ az group list -o tsv
/subscriptions/4fd63c38-a6be-4fb1-ac9e-ab1781af69ad/resourceGroups/auto westeurope      None    auto            None
/subscriptions/4fd63c38-a6be-4fb1-ac9e-ab1781af69ad/resourceGroups/ftp  westeurope      None    ftp             None
/subscriptions/4fd63c38-a6be-4fb1-ac9e-ab1781af69ad/resourceGroups/funkce       southcentralus  None    funkce         None
/subscriptions/4fd63c38-a6be-4fb1-ac9e-ab1781af69ad/resourceGroups/mujnh        westeurope      None    mujnh          None
/subscriptions/4fd63c38-a6be-4fb1-ac9e-ab1781af69ad/resourceGroups/mujteam      westeurope      None    mujteam        None
/subscriptions/4fd63c38-a6be-4fb1-ac9e-ab1781af69ad/resourceGroups/search       westeurope      None    search         None
/subscriptions/4fd63c38-a6be-4fb1-ac9e-ab1781af69ad/resourceGroups/sql  westeurope      None    sql             None
/subscriptions/4fd63c38-a6be-4fb1-ac9e-ab1781af69ad/resourceGroups/storage      westeurope      None    storage        None
/subscriptions/4fd63c38-a6be-4fb1-ac9e-ab1781af69ad/resourceGroups/wp   westeurope      None    wp              None

Čisté názvy vyparsujeme použitím awk.

$ az group list -o tsv | awk '{print $4}'
auto
ftp
funkce
mujnh
mujteam
search
sql
storage
wp

Použijeme grep s RegEx, kterým nejdeme jen ty, co končí na „e“.

$ az group list -o tsv | awk '{print $4}' | grep e$
funkce
storage

Krása. Teď jen nasadíme xargs a řádek po řádku budeme volat ad group show příkaz pro jednotlivé skupiny končící na „e“ a získáme tak o nich detaily.

$ az group list -o tsv | awk '{print $4}' | grep e$ | xargs -n 1 bash -c 'az group show --name $0'
{
  "id": "/subscriptions/4fd63c38-a6be-4fb1-ac9e-ab1781af69ad/resourceGroups/funkce",
  "location": "southcentralus",
  "managedBy": null,
  "name": "funkce",
  "properties": {
    "provisioningState": "Succeeded"
  },
  "tags": null
}
{
  "id": "/subscriptions/4fd63c38-a6be-4fb1-ac9e-ab1781af69ad/resourceGroups/storage",
  "location": "westeurope",
  "managedBy": null,
  "name": "storage",
  "properties": {
    "provisioningState": "Succeeded"
  },
  "tags": null
}

V mém případě jsou to resource group, ale podobným postupem byste třeba zastavili VM, jejichž název obsahuje nějaký výraz. Můžete filtrovat, řadit, vyhledávat a nad výsledky provádět nějaké operace. Stačí využít tradiční filozofii  Linuxu – jednoúčelové nástroje předávající si výstupy.

JMESPATH a pokročilé JSON dotazy

Azure CLI 2.0 podporuje velmi mocný query jazyk JMESPATH. Je pro mě úplně nový a určitě se k němu na tomto blogu vrátím podrobněji, protože vypadá velmi dobře. Takhle například můžeme vypsat názvy těch resource group, které jsou v regionu westeurope:

$ az group list --query "[?location == 'westeurope'].name"
[
  "auto",
  "ftp",
  "mujnh",
  "mujteam",
  "search",
  "sql",
  "storage",
  "wp"
]

Pokud se vám na mě nechce čekat, online zkoušečka je tady: http://jmespath.org/

Spustíme si VM a upravíme firewall

Vyzkoušejme si jednoduché vytvoření VM. Nejdřív si založíme resource group.

$ az group create --name azurecli --location westeurope
{
  "id": "/subscriptions/4fd63c38-a6be-4fb1-ac9e-ab1781af69ad/resourceGroups/azurecli",
  "location": "westeurope",
  "managedBy": null,
  "name": "azurecli",
  "properties": {
    "provisioningState": "Succeeded"
  },
  "tags": null
}

Vytvořme si Debian VM.

$ az vm create --name mojevm --resource-group azurecli --image Debian --admin-username tomas  --public-ip-address-dns-name mojevmdnsjmeno --authentication-type password --admin-password Azure12345678 --size Standard_DS1
{
  "fqdn": "mojevmdnsjmeno.westeurope.cloudapp.azure.com",
  "id": "/subscriptions/4fd63c38-a6be-4fb1-ac9e-ab1781af69ad/resourceGroups/azurecli/providers/Microsoft.Compute/virtualMachines/mojevm",
  "macAddress": "00-0D-3A-24-6B-6E",
  "privateIpAddress": "10.0.0.4",
  "publicIpAddress": "52.166.9.117",
  "resourceGroup": "azurecli"
}

Podívejme se, jaké všechny zdroje v naší resource group máme.

$ az resource list --resource-group azurecli -o table
Name               ResourceGroup    Location    Type                                     Status
-----------------  ---------------  ----------  ---------------------------------------  --------
mojevm             azurecli         westeurope  Microsoft.Compute/virtualMachines
mojevmVMNic        azurecli         westeurope  Microsoft.Network/networkInterfaces
mojevmNSG          azurecli         westeurope  Microsoft.Network/networkSecurityGroups
mojevmPublicIP     azurecli         westeurope  Microsoft.Network/publicIPAddresses
mojevmVNET         azurecli         westeurope  Microsoft.Network/virtualNetworks
vhd14848333064786  azurecli         westeurope  Microsoft.Storage/storageAccounts

Můžeme si třeba vypsat informace o Network Security Group, ale protože ve výpisu je toho hodně, použiji JMESPath query, abych si našel jen připojené interface.

$ az network nsg show  --name mojevmNSG --resource-group azurecli --query "networkInterfaces[]"
[
  {
    "dnsSettings": null,
    "enableAcceleratedNetworking": null,
    "enableIpForwarding": null,
    "etag": null,
    "id": "/subscriptions/4fd63c38-a6be-4fb1-ac9e-ab1781af69ad/resourceGroups/azurecli/providers/Microsoft.Network/networkInterfaces/mojevmVMNic",
    "ipConfigurations": null,
    "location": null,
    "macAddress": null,
    "name": null,
    "networkSecurityGroup": null,
    "primary": null,
    "provisioningState": null,
    "resourceGroup": "azurecli",
    "resourceGuid": null,
    "tags": null,
    "type": null,
    "virtualMachine": null
  }
]

Vypišme si pravidla této NSG.

$ az network nsg rule list --nsg-name mojevmNSG --resource-group azurecli
[
  {
    "access": "Allow",
    "description": null,
    "destinationAddressPrefix": "*",
    "destinationPortRange": "22",
    "direction": "Inbound",
    "etag": "W/\"1dd03b2d-0910-488f-882c-c55c69661526\"",
    "id": "/subscriptions/4fd63c38-a6be-4fb1-ac9e-ab1781af69ad/resourceGroups/azurecli/providers/Microsoft.Network/networkSecurityGroups/mojevmNSG/securityRules/default-allow-ssh",
    "name": "default-allow-ssh",
    "priority": 1000,
    "protocol": "Tcp",
    "provisioningState": "Succeeded",
    "resourceGroup": "azurecli",
    "sourceAddressPrefix": "*",
    "sourcePortRange": "*"
  }
]

Přidejme pravidlo pro webový provoz.

$ az network nsg rule create --access Allow --destination-address-prefix "*" --destination-port-range 80 --direction InBound --source-address-prefix "*" --source-port-range "*" --protocol Tcp --priority 201 --name web --nsg-name mojevmNSG -
-resource-group azurecli
{
  "access": "Allow",
  "description": null,
  "destinationAddressPrefix": "*",
  "destinationPortRange": "80",
  "direction": "Inbound",
  "etag": "W/\"e0239a44-2d18-4cd0-a316-222b79c0467e\"",
  "id": "/subscriptions/4fd63c38-a6be-4fb1-ac9e-ab1781af69ad/resourceGroups/azurecli/providers/Microsoft.Network/networkSecurityGroups/mojevmNSG/securityRules/web",
  "name": "web",
  "priority": 201,
  "protocol": "Tcp",
  "provisioningState": "Succeeded",
  "resourceGroup": "azurecli",
  "sourceAddressPrefix": "*",
  "sourcePortRange": "*"
}

Jakmile nás to už nebude bavit, můžeme zase všechno smazat.

$ az group delete --name azurecli --no-wait

Interaktivní režim

Azure CLI 2.0 nabízí (myslím že aktuálně v Preview) interaktivní režim. Místo spouštění CLI z vašeho prostředí (bash, cmd apod.) můžete skočit do interaktivního režimu. Výhodou je jednak to, že můžete být rychlejší (nemusíte psát pořád „az“) ale hlavně tento režim vám napovídá jak příkazy pokračují, navrhuje na co a jak se zeptat. Skočíme do interaktivního režimu.

$ az interactive

Jakmile napíšete nějaké slovo, Azure radí jak dál.

Když slovo dokončíte, Azure CLI vám dole poradí co to vlastně dělá a navrhne další klíčová slova.

Někdy vám CLI napoví jaké typické příkazy se používají. Například tady v dolní části navrhuje jak omezit jaké VM se vypisují.

Výsledky jsou velmi přehledné můžete scrollovat.

Stisknutím F3 se můžete podívat na některé klávesové zkratky.

Cloud Shell

Klasický počítač s Windows, Linux nebo Mac vám snadno umožní nainstalovat a používat Azure CLI 2.0. Ale co když jste na cestách a používáte počítač, který není váš nebo nechcete či nemůžete CLI nainstalovat? Co když potřebujete příkazovou řádku i z mobilního zařízení? Právě pro tyto situace je k dispozici Cloud Shell. Přímo v Azure portálu kliknete na jeho ikonku a z HTML5 budete připojeni do systému s Azure CLI a dokonce už budete rovnou zalogovaní.

Pokud to děláte poprvé, musíte nejprve namapovat storage. Proč? Ať se připojíte odkudkoli zůstané vám přístup do vašeho domovského adresáře (proto ona perzistentní storage). Můžete tak mít k dispozici například vaše bash sktipty apod.

Pak už běžně CLI používáte.

Stejně tak můžete využít CLI z Azure aplikace ve vašem mobilu.

 

Takhle se tedy pracuje s Azure CLI 2.0. Vyzkoušejte si.

Just-in-time access bezpečnost s Azure Security Center

Většina administrátorů chce mít možnost připojit se do VM v případě, že se děje něco špatného a ručně zasáhnout. Proto vyžaduje síťově otevřený přístup na SSH, RDP, VNC nebo WinRM port. Tomu velmi rozumím, ale proč nechávat port otevřený i při běžném provozu zbytečně a vystavovat se riziku pokusů o průnik? Co kdyby ho váš firewall blokoval, ale když ho opravdu potřebujete, tak vám ho virtuální síťový kolega třeba na hodinu povolí a pak zas uzavře?

Just in time access v Azure Security Center

Bezpečnostní centrum v Azure disponuje celou řadou monitorovacích a zabezpečovacích mechanismů a just in time access je novinkou. Je to vlastně velmi jednoduché. V Azure není firewall nějaká externí krabice od které má klíče jen vyvolený síťař či bezpečák, ale jde o objekt spravovaný jako všechny ostatní zdroje v Azure Resource Manager. Služba Azure Security Center tedy může jednoduše automatizovat firewallová pravidla na VM a jednoduše povolit na omezený čas přístup do VM na vyžádání.

Azure Security Center má základní verzi zdarma, ta ale neobsahuje funkci just in time access. Můžete si ji vyzkoušet v 60 denním trial nebo pořídit kompletní Azure Security Center včetně threat intelligence, behaviorální analýzy, detekce anomálií a dalších funkcí za 12,65 EUR za VM a měsíc.

Vytvoříme si VM se výchozím firewallem (NSG), který povoluje management přístup (v mém případě s Linux na port 22 čili SSH, u Windows na port 3389, tedy RDP).

$ az group create -n jit -l westeurope
$ az vm create -n jitvm -g jit --image UbuntuLTS --authentication-type password --admin-username tomas --admin-password MojeHeslo123

SSH přístup k této VM bude fungovat.

$ ssh 23.97.217.128
tomas@23.97.217.128's password:

Nastavíme si Just in time access. Jde o funkci, která je součástí Azure Security Center.

V centru zabezpečení klikněte na Just in time.

Povolíme Just in time přístup pro tuto VM.

V následném dialogu nastavíme politiku pro zpřístupňování portů – typicky to budou ty pro správu jako je SSH, RDP, WinRM apod. U každého můžeme nastavit několik parametrů. Jedním z nich je filtrace podle zdrojové adresy, kde můžeme zadat konkrétní rozsah (například pro vnitřní privátní adresy nebo blok veřejných IP vaší firmy) nebo použít konkrétní zdrojovou IP z požadavku. Dále také zadáme maximální čas otevření portu pro jeden požadavek.

V tento okamžik Azure automaticky zavřel SSH přístup do VM.

$ ssh 23.97.217.128
ssh: connect to host 23.97.217.128 port 22: Resource temporarily unavailable

Podívejme se na network security group přiřazenou na VM. Azure Security Center přidalo Deny pravidla pro nastavené porty.

"securityRules": [
   {
     "access": "Deny",
     "description": "ASC JIT Network Access rule for policy 'default' of VM 'jitvm'.",
     "destinationAddressPrefix": "10.0.0.4",
     "destinationPortRange": "22",
     "direction": "Inbound",
     "etag": "W/\"3d41b84b-6610-4dbe-b49c-92b238b1314b\"",
     "id": "/subscriptions/a0f4a733-4fce-4d49-b8a8-d30541fc1b45/resourceGroups/jit/providers/Microsoft.Network/networkSecurityGroups/jitvmNSG/securityRules/SecurityCenter-JITRule_-1058539234_CECD5346BB6D4380AA484CE870B283EE",
     "name": "SecurityCenter-JITRule_-1058539234_CECD5346BB6D4380AA484CE870B283EE",
     "priority": 1000,
     "protocol": "*",
     "provisioningState": "Succeeded",
     "resourceGroup": "jit",
     "sourceAddressPrefix": "*",
     "sourcePortRange": "*"
   },

Požádáme teď o otevření přístupu.

Zvolím pouze port 22 a stačí mi na jednu hodinu.

Po chvilce máme port otevřený.

$ ssh 23.97.217.128
tomas@23.97.217.128's password:

Security Center totiž změnilo příslušné pravidlo v NSG na Allow (všimněte si také, že tam je specificky moje zdrojová IP adresa) a teprve po vypršení stanovené doby to automaticky vrátí zpět na Deny.

"securityRules": [
    {
      "access": "Allow",
      "description": "ASC JIT Network Access rule created by an initiation request for policy 'default' of VM 'jitvm'.",
      "destinationAddressPrefix": "10.0.0.4",
      "destinationPortRange": "22",
      "direction": "Inbound",
      "etag": "W/\"4ae8c174-3af1-4f27-8fad-4551169d3a9d\"",
      "id": "/subscriptions/a0f4a733-4fce-4d49-b8a8-d30541fc1b45/resourceGroups/jit/providers/Microsoft.Network/networkSecurityGroups/jitvmNSG/securityRules/SecurityCenter-JITRule--1058539234-21FC05A217E044D59AB6A0D394376920",
      "name": "SecurityCenter-JITRule--1058539234-21FC05A217E044D59AB6A0D394376920",
      "priority": 100,
      "protocol": "*",
      "provisioningState": "Succeeded",
      "resourceGroup": "jit",
      "sourceAddressPrefix": "90.181.122.97",
      "sourcePortRange": "*"
    },

Zažádat o přístup můžete nejen z GUI, ale také v PowerShellu. Stačí mít poslední verzi AzureRM commandletů a nainstalovat Azure Security Center modul:

Install-Module -Name Azure-Security-Center

Pak otevřete přístup k VM takhle:

Invoke-ASCJITAccess -ResourceGroupName jit -VM jitvm -Port 22

 

Azure díky softwarově definovaným principům a schopnosti automatizace umožňuje použít metody a techniky, které by v běžné infrastruktuře byly nepraktické. Jednou z nich je just in time přístup do VM. Vyskoušejte si i další vlastnosti Azure Security Center.

Networking v cloudu: DNS balancer s Azure Traffic Manager

Azure nabízí tři prostředky balancování. Univerzální L4 balancer (ten je zdarma), pokročilejší L7 balancer (webová proxy) a také globální DNS balancing pro překlápění celých datových center. Podívejme se dnes na Azure Traffic Manager, DNS balancer, který můžete použít s Azure i bez, a je zásadní pro celou řadu scénářů jako je migrace, disaster recovery, geo-redundance i geo-distribuované aplikace. Pokračovat ve čtení „Networking v cloudu: DNS balancer s Azure Traffic Manager“

Role hardware v Azure – typy CPU a akcelerace s GPU a FPGA

Pokud se zaměříme na infrastrukturní služby a platformní vlastnosti necháme pro tento článek stranou, může se z pohledu běžné byznysové aplikace cloud jevit jako jednolitý a hardwarově univerzální svět. A to je dobře. Má to být jednoduché, za malý stroj malé peníze, za velký stroj velké peníze a patřičný výkon ve všech směrech – počet jader, paměť, síťová propustnost. Ne všechno je ale web server nebo databáze. Existují výpočetně nebo datově náročné úlohy a univerzální hardware není optimální řešení. To je ten okamžik, kdy vám Azure může odhalit speciality pro náročné – vysokofrekvenční procesory, různé varianty GPU a také FPGA. Proč někdy na hardware záleží a proč je na tom Azure dobře? Pokračovat ve čtení „Role hardware v Azure – typy CPU a akcelerace s GPU a FPGA“