그럼, 가장 중요한, 최초 기본 VM 어떻게 만들어야될까? 

 

자습서: Azure PowerShell 사용하여 가상 머신 확장 집합에 대한 사용자 지정 이미지 만들기  사용 

 

출처: <https://docs.microsoft.com/ko-kr/azure/virtual-machine-scale-sets/tutorial-use-custom-image-powershell 

 

 

 

요약하면…. 

템플릿이 되는 VM 만든다 

해당 VM 접속하여, IIS 설치하고 , APP 세팅한다 

-> 사용자지정 VM이미지화 한다. 

# Get VM object  

$vm = Get-AzVM -Name "myCustomVM" -ResourceGroupName "myResourceGroup"  

# Create the VM image configuration based on the source VM  

$image = New-AzImageConfig -Location "EastUS" -SourceVirtualMachineId $vm.ID  

# Create the custom VM image  

New-AzImage -Image $image -ImageName "myImage" -ResourceGroupName "myResourceGroup" 

 

 

이미지를 이용하여, 확장집합을 만든다 CLI 

New-AzVmss ` -ResourceGroupName "myResourceGroup" `  -Location "EastUS" `  -VMScaleSetName "myScaleSet" `  -VirtualNetworkName "myVnet" `  -SubnetName "mySubnet" `  -PublicIpAddressName "myPublicIPAddress" `  -LoadBalancerName "myLoadBalancer" `  -UpgradePolicyMode "Automatic" `  -ImageName "myImage" 

 

 

 

혹은 기존 가상서버 파일을 업로드하여 VM 만든다 




 

 

 

VMSS 실습 

VM 스케일  

 

 

 

 

VMSS으로 가보면... 

 

 

 

로드밸런서 백엔드풀에 자동으로 들어감. 

Private ip 동적으로 할당됨. 

 

인바운드 NAT 

1개의 공인아이피 --- NAT 

, mstsc 접속  포트를 지정해주면됨 

1 VM 

52.230.125.44:50000 

2 VM 

52.230.125.44:50001 

3 VM 

52.230.125.44:50002 

4 VM 

52.230.125.44:50003 

 

 

 

NAT룰에서 Custom 포트가 ---- RDP 포트로 포트매핑 되어있음. 

 

 

 

스케일 아웃  

 

CPU 평균 사용율이 55% 10 지속시 인스턴스 1 증가 

Cool down tiem : 스케일 /다운 액션이 일어난  잠시 pause 타임  

 

 

스케일   

55% 이하 20 유지  인스턴스 1 줄임. 

 

인스턴스 숫자 변화를 히스토리로   있음. 

 

 

 

혹은 아래와 같이 룰을 만듬 

75이상 1 증가,  25이하 1 축소 

 

 

<번외로> 

다음…  점프박스 서버를 만들고 

점프박스 IP에서만 RDP 접속이 가능하도록. 처리해야됨 

 

 

 

 

스케일 아웃 검증을 위해서 

아래 링크에서 CPU 스트레스 툴을 다운받아 실행 

https://www.mersenne.org/download/#download 

 

 

 

 

Autoscacl 규칙에 사용가능한 메트릭 

메트릭 이름 

백분율 CPU 

네트워크 인 

네트워크 아웃 

디스크 읽기 바이트 

디스크 쓰기 바이트 

디스크 읽기 작업/초 

디스크 쓰기 작업/초 

남은 CPU 크레딧 

사용된 CPU 크레딧 

 

App Insights를 사용한 애플리케이션 수준 메트릭 

 

출처: <https://docs.microsoft.com/ko-kr/azure/virtual-machine-scale-sets/virtual-machine-scale-sets-autoscale-overview 

 

 

  • <이것들  되지는 않겠지?> 

  • 요청 속도, 응답 시간 및 실패율 - 하루 중 어느 시간에 어떤 페이지를 가장 많이 방문하는지, 사용자가 어디에 있는지 확인합니다. 어떤 페이지가 가장 성능이 우수한지 확인합니다. 요청이 더 있는데 응답 시간과 실패율이 높아지면 아마도 리소스 문제가 있는 것입니다. 

  • 종속성 비율, 응답 시간 및 실패율 - 외부 서비스 때문에 속도가 느려지는지 확인합니다. 

  • 예외 - 집계된 통계를 분석하거나 특정 인스턴스를 선택하여 스택 추적 및 관련 요청을 자세히 분석합니다. 서버 및 브라우저 예외가 전부 보고됩니다. 

  • 페이지 보기 및 로드 성능 - 사용자의 브라우저에서 보고합니다. 

  • 웹 페이지의 AJAX 호출 - 속도, 응답 시간 및 실패율. 

  • 사용자 및 세션 수. 

  • Windows 또는 Linux 서버 컴퓨터의 성능 카운터 - CPU, 메모리, 네트워크 사용량 등. 

  • Docker 또는 Azure의 호스트 진단. 

  • 앱의 진단 추적 로그 - 추적 이벤트를 요청과 상호 연결하는 데 사용됩니다. 

  • 판매된 품목, 승리한 게임 등의 비즈니스 이벤트를 추적하기 위해 개발자가 직접 클라이언트 또는 서버 코드로 작성하는 사용자 지정 이벤트 및 메트릭. 

 

출처: <https://docs.microsoft.com/ko-kr/azure/azure-monitor/app/app-insights-overview 




  • 심층 방어 접근 방식을 사용하여 아키텍처를 보호하는 방법을 알아봅니다. 

  • ID 보호하는 방법을 알아봅니다. 

  • Azure 인프라 보호에 사용할  있는 기술을 알아봅니다. 

  • 암호화를 사용하여 데이터를 보호하는 방법  위치를 알아봅니다. 

  • 네트워크 수준에서 아키텍처를 보호하는 방법을 알아봅니다. 

  • 애플리케이션 보안 모범 사례를 활용하여 애플리케이션에 보안을 통합하는 방법을 알아봅니다. 

 

 

심층 방어는 정보에 무단으로 액세스하려는 공격의 진행 속도를 늦추는 일련의 메커니즘을 사용하는 전략 

 

보안계층 

가장 안쪽에 데이터가 있음. 

 

데이터레벨 

디스크암호화 

ADE(Azure Disk Encryption)는 Windows 및 Linux IaaS 가상 머신 디스크를 암호화할 수 있는 기능입니다. ADE는 Windows의 업계 표준 BitLocker 기능과 Linux의 DM-Crypt 기능을 활용하여 OS 및 데이터 디스크에 볼륨 암호화를 제공 

Azure Key Vault와 통합 가능 

 

데이터베이스 암호화 

Azure SQL database에서는 TDE 

미사용 데이터베이스, 연결된 백업 및 트랜잭션 로그 파일의 실시간 암호화 및 암호 해독을 수행 

 

 

Key Vault를 사용하면 자격 증명 모음이라는 보안 컨테이너를 여러 개 만들 수 있습니다. 이러한 자격 증명 모음은 HSM(하드웨어 보안 모듈)에 의해 백업됩니다 

TLS(전송 계층 보안) 인증서의 요청 및 갱신을 처리가능 

 

애플리케이션 

  • 안전하고 취약점이 없도록 애플리케이션 보호 

  • 중요한 애플리케이션 비밀을 안전한 스토리지 매체에 저장 

  • 모든 애플리케이션 개발  보안을 요구 사항으로 지정 

 

계산(computing) 

  • 가싱 머신 액세스 보안 

  • 엔드포인트 보호를 구현하고 지속적으로 시스템 패치  최신 상태 유지 

 

네트워킹 

  • 조각화  액세스 제어를 통해 리소스 간의 통신 제한 

  • 기본적으로 거부에, 허용 정책 추가하는 형태 

  • 인바운드 인터넷 액세스를 금지 필요시 아웃바운드도 제한 

  • -프레미스 네트워크에 대한 보안 연결 구현 

 

경계 

  • DDoS(분산 서비스 거부) 보호 기능을 사용하여 최종 사용자에게 서비스 거부가 발생하기 전에 대규모 공격을 필터링 

  • 경계 방화벽을 사용하여 네트워크에 대한 악의적인 공격을 파악하고 그에 대해 경고 

 

정책 및 액세스 => AAD 

  • 인프라에 대한 액세스 제어, 변경 제어 

  • Single Sign-On  다단계 인증 사용 

  • 이벤트  변경 내용 감사 

정책  액세스 레이어는 ID 안전하게 보호하고, 필요할 때만 액세스 권한을 부여하고, 변경 내용을 기록 

 

물리적 보안(데이터센터 레벨) 

  • 물리적 빌드 보안  데이터 센터 내의 컴퓨팅 하드웨어에 대한 액세스 제어가  번째 방어선, 출입  생체인증  

 

 

 

보안에 있어서, 온프레미스 환경 only일 때와 다른 책임구분 

 

 

지속적인 대응, 향상 -> Azure Security Center 이용 

 

 

ID관리 

 

  1. SSO 

계정이 많으면 개인측면에서 관리가 어려움, 매번 다른 암호로 복잡도를 관리하기 어려움 

관리자 측면에서도 여러 시스템에 대해 동일한 업무를 해줘야됨 

암호분실, 조직변경 등에 대한 대응  지원팀의 부담 

 

SSO 하나의 계정과 강력한 암호 하나만 기억하면됨. 

PC 도메인조인하여 사용하면 편리 

AAD 이용한 SSO + 조직인사 동기화 (ADC 이용한 동기화) 

 

사용자지정앱 기능 확인 

 

  • -프레미스 Windows Server 설치된 -프레미스 인증 에이전트를 사용하여 통과 인증 구성 ?? 

 

 

  1. 인증  액세스 

다단계인증을 통한 ID보안 향상 

AAD MFA기능 제공 

 

AAD 조건부액세스 

IP주소차단, 맬웨어보호기능 없는 디바이스 차단기능 Rule도 생성가능 

IP주소 구분하여, 허용된 범위 아니라면 MFA 동작하게도 가능 

 

Conditional access policy 

 

 

 

 

AAD애플리케이션 프록시 

이용하여, 레거시프로그램 로그인 지원 

-> 실습 및 테스트 필요 

 

 

역할 

Azure 인스턴스/리소스에 접근할  있도록 사용자에게 부여하는 권한 집합 

 

관리그룹 

추가 계층수준 

구독을 그룹화할  있고, 정책적용 가능해짐. 

 

 Azure AD PIM(Privileged Identity Management) 

 역할 할당, 셀프 서비스 및 Just-In-Time 역할 활성화를 감독하고 Azure AD 및 Azure 리소스 액세스를 검토할 수 있는 추가 유료 제품이라함. 

 

 

 

네트워크보안 

  • 애플리케이션과 인터넷  트래픽 흐름 보호 

    노출제한 

    애플리케이션  트래픽 흐름 보호 

    리소스간 노출제한 

  • 사용자와 애플리케이션  트래픽 흐름 보호 

  

계층화된 접근방식 

인터넷 보호 

네트워크 경계에서 시작하는 경우는 인터넷 공격을 제한하고 제거하는 것에 집중합니다. 가장 먼저  일은 인터넷에 연결되는 리소스를 평가하고 필요한 경우에만 인바운드  아웃바운드 통신을 허용하는 것입니다. 모든 종류의 인바운드 네트워크 트래픽을 허용하는 모든 리소스를 식별하고, 리소스가 필요한지 확인하여 반드시 필요한 포트/프로토콜로만 제한해야 합니다.  

 

Azure Security Center 

모범사례가 적용되지 않는 리소스를 찾아줌 

예) NSG(네트워크 보안 그룹) 연결되지 않은 인터넷 연결 리소스와 방화벽의 보호를 받지 않는 리소스를 식별 

 

Application Gateway 

HTTP 기반 서비스에 고급 보안을 제공하는 WAF( 애플리케이션 방화벽) 포함하고 있는 레이어 7 부하 분산 장치입니다. WAF OWASP 3.0 또는 2.2.9 핵심 규칙 집합의 규칙을 기반으로 하며, 사이트  스크립팅  SQL 삽입 같은 널리 알려진 취약성으로부터 보호합니다. 

HTTP 기반하지 않는 서비스를 보호하기 위해 또는 사용자 지정 기능을 강화하기 위해, NVA(네트워크 가상 어플라이언스) 사용하여 네트워크 리소스를 보호할  있습니다. NVA -프레미스 네트워크에서   있는 방화벽 어플라이언스와 비슷하며, 가장 널리 사용되는 네트워크 보안 공급업체를 통해 구할  있습니다. NVA 보안 기능을 사용자 지정해야 하는 애플리케이션에 우수한 사용자 지정 기능을 제공하지만, 복잡성이 증가할  있으므로 요구 사항을 신중하게 고려해야 합니다. 

 

Azure DDoS 

DDoS 보호는 공격 트래픽을 차단하고, 나머지 트래픽을 의도하는 대상으로 전달합니다. 공격이 감지되면   안에 Azure Monitor 메트릭을 통해 알림이 전송됩니다. 

가상 네트워크 보안 

VNet(가상 네트워크) 내에서는  필요한 곳에서만 리소스  통신이 이루어지도록 제한해야 합니다. 

가상 머신 간의 통신에서는 NSG(네트워크 보안 그룹) 통해 불필요한 통신을 제한하는 것이 중요합니다. NSG 계층 3  4에서 작동하며, 네트워크 인터페이스  서브넷과 주고 받는 허용/거부된 통신 목록을 제공합니다. NSG 완전히 사용자 지정할  있으며, 가상 머신과 주고 받는 네트워크 통신을 완전히 차단하는 기능을 제공합니다. NSG 사용하여 환경, 계층  서비스 간에 애플리케이션을 격리할  있습니다. 

 

VNet 서비스 엔드포인트 

모두 막아버리고, 원하는 가상 네트워크의 통신만 허용하도록 가능 (격리가능) 

공용 인터넷 액세스를 완전히 제거하고 가상 네트워크에서만 트래픽을 허용하여 보안이 강화됩니다. 이렇게 하면 환경의 공격 노출 영역이 줄어들고, VNet Azure 서비스 간의 통신을 제한하는  필요한 관리 업무가 줄어들고,  통신에 대한 최적의 라우팅이 제공됩니다. 

 

특정 서비스에서도 아래와 같이 구성을 해줘야됨. (양쪽 모두 구성 필요) 

아래 그림에서와 같이 Allow access from의 모든네트워크 -> 선택한 네트워크로 선택 

 

 

네트워크 통합 

-프레미스 네트워크와 통합, 그리고 네트워크 보안 향상 

 

VPN(가상 사설망) 연결 

 

네트워크와 Azure 간에 전용 사설 연결을 제공하려면 ExpressRoute 사용. 

 

ExpressRoute 사용하면 Microsoft Azure 뿐 아니라 Office 365  Dynamics 365 까지 빠른 속도로, 높은 보안으로 사용가능  

 

VNet 피어링 

Azure에서 여러 VNet 쉽게 통합 가능  

NSG 사용하여 리소스를 격리할  있습니다. 이렇게 통합하면 모든 피어링된 VNet 동일한 기본 보안 계층을 제공할  있습니다.  

직접 연결된 VNet 간의 통신만 허용됩니다. 

 

 

 

 

 

 




방화벽 서비스를 Azure 계산기로 금액확인하면,

매우 비쌈.

사내에 방화벽 장비 도입 검토와 비슷하게 검토되어야 될 급인듯.

 

 

작게 Azure 서비스 시작하는 경우에는 

기본적인 인바운드/아웃바운드 차단/허용 기능은 NSG만 사용해도 될듯함.

NSG

방화벽

필수사용

선택옵션

인바운드, 아웃바운드
IP/
포트단위 제어 가능

포트, 프로토콜, FQDN 따라서 트래픽에 대한 아웃바운드 제어 가능

상태기반방화벽

 

가용성지원, Azure 모니터와 통합

인스턴스에 기반한 과금, 대역폭

 

추가로,

1) 위협 인텔리전스 기반 필터링

2) 서비스 태그 필터링 기능

 

 

서비스과금 ₩32,614.85/month

Data Processing 과금 ₩33.74/GB

99.95% SLA

시간단위 과금이지만, 방화벽을 껐다켰다 의미가 없으니, 744hours 하면될듯

 

Based on whitelisted FQDN only URL Filtering

Policy-based identification and control over thousands of applications

Web apps only based on whitelisted FQDN

 

 

VM-Series on Azure

팔로알토 처럼 서드파티 벤더 방화벽 product Azure VM으로 구현

https://docs.paloaltonetworks.com/vm-series/8-1/vm-series-deployment/set-up-the-vm-series-firewall-on-azure/about-the-vm-series-firewall-on-azure/vm-series-firewall-templates-on-azure.html#

General Features

VM-Series on Azure

Azure Network Security Groups

Azure

Firewall

IP/Port/Protocol-based security

X

X

X

Port ranges used within policy

X

X

X

Source and/or destination within policy

X

X

X

CIDR-based rules

X

X

X

ACL-like features within a policy

X

X

X

Security applied after traffic enters Resource Group

X

X

X

Drop vs. deny distinction within a policy

X

 

 

Next-Generation Firewall Features

 

 

 

Policy-based identification and control over thousands of applications; create custom applications; manage unknown traffic based on policy

X

 

Web apps only based on whitelisted FQDN

Policy-based, bi-directional SSL decryption and inspection; per-policy SSH control

X

 

 

Bi-directional control of traffic based on country or geographic region

X

 

 

QoS: policy-based traffic shaping (priority, guaranteed, maximum) per application, per user, per tunnel, based on DSCP classification

X

 

 

Zone-based network segmentation and protection

X

 

 

TCP protocol validation, ensuring that standard three-way handshake is valid

X

 

 

Additional Features

 

 

 

Threat Prevention: Prevent known threats (vulnerability exploits, malware and botnets), block polymorphic malware

X

 

 

Advanced Malware Protection (WildFire®): Detect potential malware, detonate, analyze and automatically deliver protections

X

 

 

URL Filtering: Control access to web resources based on category and/or specific URL; prevent access to known malicious sites and credential phishing sites

X

 

Based on whitelisted FQDN only

File and Data Filtering: Bi-directional control over unauthorized file and data transfer

X

 

 

Contextual Threat Intelligence (AutoFocus™): Context around attacks, adversaries and campaigns, including targeted industries

X

 

 

Policy Automation: Tagging to automate policy updates, ingest third-party data directly into policy

X

 

 

Centralized Management and Visibility: Single pane of glass delivers aggregated logging and event correlation; actionable insight into traffic and threats

X

 

 

Mobile Security (GlobalProtect™): Extend policy to remote users and devices

X

 

 

Integration with Azure Security Command Center: Gain more complete visibility into Azure account security status

X

X

X

Scale Out Architectures: Integration with load balancing for scalability and availability

X

X

X

 

 

세부구성 내용

1. 네트워크 규칙

소스IP/포트, 프로토콜, 목적지 IP/포트 단위로 정책 생성 가능
DNS 요청(port 53) 등도 차단/허용 가능

 

2. 어플리케이션 규칙

특정 웹사이트 아웃바운드 접속 차단

(ex. Github, twitter )

FQDN 대한 서브넷으로부터의 접근을 차단해줌

 

아래와 같이 L7 레이어 아웃바운드 block 처리 가능




VM생성, 디스크 생성, 변경 CLI test
2019 3 12일 화요일
오전 7:54
CLI 훈련중
 
리전설정?
az configure --defaults location=eastus
 
기본 RG설정
az configure --defaults group="a1fa8494-0550-45e2-afd2-86e20a0dbd7b"
 
VM생성 (이미지 종류값은 어디서 어떻게)
az vm create \
  --name support-web-vm01 \
  --image UbuntuLTS \
  --size Standard_DS2_v2 \
  --admin-username azureuser \
  --generate-ssh-keys
 
 
이미지종류 관련
1.     게시자 목록
az vm image list-publishers -l eastus --query [].name -o tsv
2.     게시자 별 지원 이미지
az vm image list-offers -l eastus -p Canonical --query [].name -o tsv
az vm image list-offers -l eastus -p MicrosoftWindowsServer --query [].name -o tsv
시스템 생성 대체 텍스트: onestx@Azure =$ az Vill image list-offers eastus -0 MicrosoftWindowsServer -0 t SV i ndows-HLlB WindowsServerSemiAnnual onestx@Azure =$ ——QUery [] . n
 
시스템 생성 대체 텍스트: onestx@Azure =$ az Vill image ist-offers eastus Llbuntu15. 口4뎗aooy, Llbuntul 口쎰體0야,00d(巳r LlbuntuServer Llbuntu_Core onestx@Azure =$ az Vill i mage I i St 12.口413-니S 12.口414-니S 12.口415-니S 14.口4.口-니S westeurooe -0 -0 ——QUery [] . name -0 t SV 하 LlbuntuServer ¯QUer [] . name -0 tSV
3.     All SKU
az vm image list-skus -l westeurope -p Canonical -f UbuntuServer --query [].name -o tsv
az vm image list-skus -l eastus -p MicrosoftWindowsServer -f WindowsServer --query [].name -o tsv
 
시스템 생성 대체 텍스트: Vm i mage I i St ¯SkUS ——QUery [] . name -0 tSV 2口口巳-R2-SPI 2口口巳-R2-SPI -smal 회( 2口口巳-R2-SP 1 -zhcn 2012-Datacenter 2012-Datacenter-smal Idi 회( 201 2-Datacenter-zhcn 201 2-R2-Datacenter 201 2-R2-Datacenter-smal Idi 회( 201 2-R2-Datacenter-zhcn 2016-Datacenter 2016-Datacenter 201 a-Datacenter-Server-Core-smal Idi 회( 2016-Datacenter 2016-Datacenter-with 201 a-Dat acenter-w i th-RDSH 2016-Datacenter 201 g-Datacenter 201 g-Datacenter 201 g-Datacenter 201 g-Datacenter 201 g-Datacenter 201 g-Datacenter 201 g-Datacenter-with 201 g-Datacenter eaStUS -0 MicrosoftWindowsServer WindowsServ ¯zhcn —Core —Core —Core —Core ¯zhcn Idisk -smalldisk -with-Containers -with-Containers-smal Idisk Idisk 201 g-Datacenter-with-Containers-smal Idi 회( onestx@Azure =$
 
4.       VM생성
az vm create -n MyVm -g MyResourceGroup --image UbuntuLTS
 
 
 
az vm create \
 --name support-web-vm01 \
  --image UbuntuLTS \
  --size Standard_DS2_v2 \
  --admin-username azureuser \
  --generate-ssh-keys
 
 
디스크 추가 (용량 64GB)
az vm disk attach \
  --vm-name support-web-vm01 \
  --disk uploadDataDisk1 \
  --size-gb 64 \
  --sku Premium_LRS \
  --new
 
서버아이피 주소 가져오기 az vm show  이용
ipaddress=$(az vm show \
  --name support-web-vm01 \
  --show-details \
  --query [publicIps] \
  --o tsv)
시스템 생성 대체 텍스트: onestx@Azure =$ ioaddress=$(az Vill show —name support-web-vmDl fi --show-detai Is fi --auery [oubliclos] --0 tsv) onestx@Azure =$ $ i oaddress bash: 52.234. 133. 76: command not found onestx@Azure =$
 
SSH 연결을 통해 VM에서 lsblk 명령
ssh azureuser@$ipaddress lsblk
조회됨
시스템 생성 대체 텍스트: 卜』쇡ME 버쇡」:베卜』 sda *dal 들da14 巳114 *da15 巳115 sdb 巳.1듬 *dbl 巳117 sdc 巳:턴2 srD 11 SIZE RO TYPE MOLINTPOINT 306 Ddisk Dart / 2딤l딤6 4M oart Dart /boot/efi 106M 146 Ddisk Dart /mnt 146 646 Ddisk 62巳K 「0m
 
az vm extension set 명령을 실행하여 VM에서 미리 만들어진 Bash 스크립트를 실행합니다.
(어딘가에 올려진 스크립트)
az vm extension set \
  --vm-name support-web-vm01 \
  --name customScript \
  --publisher Microsoft.Azure.Extensions \
  --protected-settings '{"commandToExecute": "./add-data-disk.sh"}'
 
어딘가에 올려진 스크립트는 아래의 내용
·         /dev/sdc 드라이브를 분할합니다.
·         드라이브에 ext4 파일 시스템을 만듭니다.
·         /uploads 디렉터리를 만들어 탑재 지점으로 사용합니다.
·         디스크를 탑재 지점에 연결합니다.
·         /etc/fstab를 업데이트하면 시스템이 다시 부팅된 후에 드라이브가 자동으로 탑재됩니다.
 
결과, sdc 밑에 sdc1 만들어짐,. Upload 폴더까지
시스템 생성 대체 텍스트: onestx@Azure =$ 卜』쇡ME 버쇡」:베卜』 巳114 巳115 巳.1듬 巳117 巳:턴2 巳:턴3 sda *dal 들da14 *da15 sdb *dbl sdc Lsdcl srD 11 ssh azureuser@$ioaddress Isblk SIZE RO TYPE MOLINTPOINT 306 Ddisk Dart / 2딤l딤6 4M oart Dart /boot/efi 106M 146 Ddisk Dart /mnt 146 646 Ddisk Dart /uoloads 646 62巳K 「0m
 
 
 
 
디스크 크기 조정 시 디스크 ID 또는 이름이 필요함
조회 명령
az disk list \
  --query '[*].{Name:name,Gb:diskSizeGb,Tier:accountType}' \
  --output table
 
시스템 생성 대체 텍스트: onestx@Azure =$ az disk I ist fi --auery I [+] . {칝짒m巳:n짒m巳, 6우dis죄2巳Gb, Tier:accountTyoe}' --outout table 칝짒m巳 suooort -web-vmDl -0s0 i sk_ 1 _aDa3c4 f6a2f 444C듬巳f 1 24巳3巳b7듬Sca듬1 uoloadDataDiskl
 
VM할당을 취소, 안에 파일은 괜찮겠지?
az vm deallocate --name support-web-vm01
az disk update --name uploadDataDisk1 --size-gb 128
 
VM재시작은 꼭 필요
az vm start --name support-web-vm01
 
 
할당 취소 후 재시작하면 IP변경이 됨.
기존IP 52.234.133.76
 
Azure 레벨에서는 크기를 증가시켰지면,
아직까지, 운영체제 단에서는 모르는 일이다.
어딘가에 올려진 스크립트를 이용해서 또 해줘야됨.
(윈도우 서버는 원격접속해서 해줘야겠군)
 
시작이 오래걸리네
 
시스템 생성 대체 텍스트: onestx@Azure i oaddress= otsv) onestx@Azure =$ $ i oaddress onestx@Azure (az Vm Show —name ¯QUery [oubliclos] bash: 52.224.기巳111구 command not found
 
아직 64GB
시스템 생성 대체 텍스트: onestx@Azure =$ $ i oaddress bash: 52.224.기巳111구 command not found onestx@Azure =$ ssh azureuser@$ioaddress Isblk The authenticity Of host 15212241기巳1113 (52.224.기巳1113)l can't be established. ECDSA key fingerprint is SHA256:0bHi6GZyD143NCgxZjQKQ2WzsMOMizDbEuorsgE4JvM. 격r巳 you Slure you want to continue connecting (yes/no)? YES 巳114 巳115 巳.1듬 巳117 巳:턴2 巳:턴3 Warning: Permanently added 15212241기巳11131 (ECDSA) to the list Of known hosts. 卜』쇡ME 버쇡」:베卜』 sda *dal 들da14 *da15 sdb *dbl sdc Lsdcl 306 2딤l딤6 4M 106M 146 146 646 646 SIZE RO TYPE MOLINTPOINT Ddisk oart oart oart Ddisk oart Ddisk oart /boot/efi /mnt /uoloads
 
 
az vm extension set \
  --vm-name support-web-vm01 \
  --name customScript \
  --publisher Microsoft.Azure.Extensions \
  --protected-settings '{"commandToExecute": "./resize-data-disk.sh"}'
 
 
스크립트 내용

# Unmount the disk /dev/sdc1.
sudo umount /dev/sdc1
# Resize partition 1 to be 128GB.
# Read from standard input provide the options we want.
sudo parted /dev/sdc <<EOF
resizepart
1
128GB
quit
EOF
# The partition tool automatically remounts the drive. 
# Unmount it again so we can format it.
sudo umount /dev/sdc1
# Verify partition consistency.
sudo e2fsck -f -p /dev/sdc1
# Resize the filesystem.
sudo resize2fs /dev/sdc1
# Mount the drive (/dev/sdc1) back to the mount point (/uploads).
sudo mount /dev/sdc1 /uploads
 
 
 
표준HDD
 

관리디스크 
표준SSD
 
프리미엄SSD
 
프리미엄스토리지 계정은 LRS만 지원한다함.
 
VHD 가상하드드라이브 파일은 페이지 BLOB에 저장됨. 기억.
 
 
Microsoft OneNote 2016에서 작성





리전 = 한 지역내 다수의 데이터센터 개념
 
 
 
LRS

Local Redundant Storage
로컬 중복 저장소

하나의 데이터센터 3군데 랙에 복제 배치
렉의 장애 극복 가능(렉 단위 문제에도 극복)
ZRS

영역 중복 저장소
Zone Redundant Storage
ZRS Classic (2021 )
ZRS Preview(아직 모든 리전 X)
하나의 리전이나(다수의 데이터센터)

3개의 데이터센터에 복제 배치
데이터센터 장애 극복 가능( 데이터센터 단위 문제에도 극복
GRS
Geo-Redundant Storage
지역 중복 저장소

리전 장애 극복 가능
리전은 쌍으로 존재함(한국 중부-남부)
리전 단위 문제도 극복가능함
RA-GRS
Read Access GRS

지역(리전+리전) 단위 장애 극복가능함.
한국에 문제 있어도 극복가능함.
 
노드 = 렉인가봄.
99.9   9가 아홉개 , 열개, 열한개
C5B5BE03-372D-49BA-BBDF-0D8FA0FEE103.png
 
 
LRS / GRS / RA-GRS 계정을 ZRS 계정으로 전환   없으며  반대의 경우도 마찬가지입니다. ZRS Classic 계정을 사용할 수있는 지역의 ZRS Preview 계정으로 업그레이드   있습니다.
 
 
 
가용영역 개념
·         지원하는 리전이 따로 있음.
·         미국 중부
·         미국 동부
·         미국 동부 2
·         프랑스 중부
·         북유럽
·         동남아시아
·         서유럽
·         서 미국 2
 
 
 
·         지원하는 서비스도 따로 있음.
그 중에 바로바로 영역중복저장소가 있음.
 
한국 지원 안하네;;;;;;;
 
 
Microsoft OneNote 2016에서 작성




전사적으로 클라우드를 적극적으로 사용한다면
관리는 어떻게?
 
클라우드의 특징이 쉽게 인프라 요소, 리소스들을 만들 수 있는 컨셉이기 때문에
초기 체계를 잘 잡아 놓지 않으면, 나중에 가서는 관리하기가 어렵다.
 
 
Azure 플랫폼의 가장 기본
리소스들의 논리적인 컨테이너
수많은 리소스들을 논리적인 체계로 관리하고 구성할때 사용
 
아이콘
함수, VM, 데이터베이스 및 앱이 포함된 리소스 그룹 상자를 보여주는 개념 이미지
 
수명주기
비 프로덕션 환경에 특히 유용, 즉 테스트 끝나면 리소스그룹 지우면 내부 리소스 일괄삭제됨.
VM 하나만 만들어도 만들어지는 리소스가 7~8
Vnetn, PIP, NIC, NSG, VM, 디스크 
 
 
이름규칙
나름대로 정해야됨.
msftlearn-core-infrastructure-rg
리소스 그룹의 용도(msftlearn), 포함되는 리소스의 종류(core-infrastructure), 리소스 자체의 종류(rg)
 
예시 (결론은 유연하게 구성이 가능함)
아마, 부서별로 나누지 않을까, 비용처리 측면에서..
혹은, 네이밍룰은 서비스명으로 가고, 태그에 부서명 추가 가능함. 태그에 개발/운영 표시 가능함.
태그에 대한 네이밍룰도 필요.
리소스그룹별로, 비용분석 필터링 가능함.
 
 
모든 VNet을 한 리소스 그룹에 배치하고, 모든 스토리지 계정을 다른 리소스 그룹에 배치하고, 모든 Cosmos DB 인스턴스를 다른 리소스 그룹에 배치합니다.
종류별로 구성된 리소스 이미지
 
리소스를 환경별로(프로덕션, 테스트, 개발) 구성할 수 있습니다. 이 경우 모든 프로덕션 리소스가 한 리소스 그룹에 배치되고, 모든 테스트 리소스가 다른 리소스 그룹에 배치됩니다.
환경별로 구성된 리소스 이미지
 
리소스를 부서별로(마케팅, 재무, 인사) 구성할 수 있습니다. 마케팅 리소스를 한 리소스 그룹에 배치하고, 재무 리소스를 다른 리소스 그룹에 배치하고, HR 리소스를 세 번째 리소스 그룹에 배치합니다.
부서별로 구성된 리소스 이미지
 
이러한 전략을 조합해서 환경과 부서별로 정리할 수도 있습니다. 프로덕션 재무 리소스를 한 리소스 그룹에 배치하고, 개발 재무 리소스를 다른 리소스 그룹에 배치하고, 마케팅 리소스를 다른 리소스 그룹에 배치합니다.
환경과 부서의 조합으로 구성된 리소스 이미지
 
 
권한부여
리소스그룹도 RBAC 적용가능.
, 위에 부서별 구성예시와 같이 구성이 가능함.
 
 
태그
리소스명에는 서비스명 네이밍룰로 가고, 태그에 부서를 넣을 수 있음, 아래예시
·         청구데이터를 그룹화 하기 위한 태깅을 한다고 생각하면됨.
·         모니터링에도 도움됨, 경고 생성 시 태그정보를 기준값으로 이용하면, 알림의 범위를 한정할 수 있음.
·         VM 등 자동화에도 사용됨. 태그에 서버 On,Off 시간을 특정 정해진 태그에 적어놓고, 파워셸로 해당 값 가져와, 온오프시킴
학습 태그로 필터링한 모든 리소스 이미지
 
 
Azure 거버넌스
정책과 연계하여 사용
 
정책예시, 모든 리소스에 들어가야되는 필수 태그를 지정
Ex) 부서, 개발/운영여부,
 
정책만들기
·          브라우저에서 Azure Portal 을 엽니다. 위쪽 탐색 모음의 검색 상자에서 정책을 검색하고 정책 서비스를 선택합니다.
·         왼쪽 메뉴의 작성 섹션에서 정의를 선택합니다.
·         사용할 수 있는 기본 제공 정책 목록이 표시됩니다. 이 예에서는 사용자 지정 정책을 만들어 보겠습니다. 상단 메뉴에서 + 정책 정의를 클릭합니다.
·         그러면 새 정책 정의 대화 상자가 나타납니다정의 위치를 설정하려면 파란색 ... 를 클릭합니다. 정책을 저장할 구독을 선택합니다. 리소스 그룹과 동일한 구독이어야 합니다선택을 클릭합니다.
·         새 정책 정의 대화 상자로 돌아가서이름에 리소스에 태그 적용을 입력합니다.
·         설명에 이 정책은 리소스에 태그 적용을 입력합니다.
·         범주에서 기존 항목 사용을 선택한 다음일반 범주를 선택합니다.

·         정책 규칙에서 상자의 모든 텍스트를 삭제하고 다음 JSON을 붙여넣습니다.
JSON복사
{
  "mode": "indexed",
  "policyRule": {
    "if": {
      "field": "[concat('tags[', parameters('tagName'), ']')]",
      "exists": "false"
    },
    "then": {
      "effect": "deny"
    }
  },
  "parameters": {
    "tagName": {
      "type": "String",
      "metadata": {
        "displayName": "Tag Name",
        "description": "Name of the tag, such as 'environment'"
      }
    }
  }
}

아래와 비슷한 정책 정의가 표시될 것입니다저장을 클릭하여 정책 정의를 저장합니다.

새 정책 정의 대화 상자를 보여주는 포털 이미지
 
 
정책할당 시 매개변수로 태그명 지정 가능
·         정책 할당 창에서 리소스 그룹에 정책을 할당하겠습니다범위에서 파란색 ... 를 클릭합니다. 여러분의 구독과 msftlearn-core-infrastructure-rg 리소스그룹을 선택한 다음선택을 클릭합니다.
·         정책 정의에서 파란색 ... 를 클릭합니다형식 드롭다운 목록에서 사용자 지정을 선택하고, 앞에서 만든 리소스에 태그 적용 정책을 선택한 다음선택을 클릭합니다.
·         매개 변수 섹션에서 태그 이름으로 부서를 입력합니다할당을 클릭하여 정책을 할당합니다.
 
테스트 결과
ì •ì±… ìœ„ë°˜ì„ ë³´ì—¬ì£¼ëŠ” í¬í„¸ ì´ë¯¸ì§€
 
 
리소스 그룹 삭제잠금 기능
중요한 운영서비스에 대해서 실수로 혹은 다른 사람에 의해 삭제되는 것 방지
특히, 네트워크나 데이터베이스 등
새 리소스 잠금이 구성되는 것을 보여주는 포털 이미지
 
 
 
태그
태그가 지원되지 않은 리소스도 있음.
 
리소스그룹에 적용된 태그는 상속되지 않음.
 
 
Microsoft OneNote 2016에서 작성




  •  
  •  제한에는 루트 수준 또는 구독 수준이 포함되지 않습니다. 
  •  관리 그룹  구독은 하나의 부모만 지원할  있습니다. 
  •  관리 그룹에는 여러 자식 요소가 있을  있습니다. 
 
초기 설정 방법 
  1. 루트 관리 그룹을 디렉터리에 생성 
    그룹을 만들면 디렉터리에 있는 모든 기존 구독이 루트 관리 그룹의 자식 요소를 만듭니다 

 
 
실습 
  1. TDG MG 생성 
  2. TDG 하위로 IT, HR MG 생성 
) Management groups 
Management groups 
+ Add management group Refresh 
O Ycu_' registered as directory admin but do have the necessary permissions to access the root manygen-ænt group. Click to lezrn more. 
Tenant Root Group > TOG 
Search by name or JD 
T DG (detaiLs) 
NAME 
using management groups helps you manage access, policy, and 
compliance by grouping multiple subscriptions together. Learn 
more. 
Management Group 
Management Group 
MY ROLE 
Owner 
Owner
  1. 기존  VS MPN 구독을 IT MG 이동시킴 
) Management groups 
Management groups 
+ Add management group Refresh 
O Ycu_' registered as directory admin but do have the necessary permissions to access the root manygen-ænt group. Click to lezrn more. 
Tenant Root Group 
Search by name or JD 
Tenant Root Group {dewl>) 
NAME 
TOG 
Visual Studio Enterprise — MPN 
using management groups helps you manage access, policy, and 
compliance by grouping multiple subscriptions together. Learn 
oa9bE 
Man 
alcOc 
ement Grou 
MY ROLE 
Owner
  1. IT MG 밑으로 이동   확인완료 
Tenant Group TOG IT 
Search by name or JD 
IT (details) 
NAME 
Visual Studio Enterprise — MPN 
using management groups helps you manage access, policy, and 
compliance by grouping multiple subscriptions together. Learn 
oa9b954f. 
more. 
halcoc 
Subscripti on 
MY ROLE 
Owner
 
 
추가로, MG 마다 IAM, 정책 설정이 가능함. 
시스템 생성 대체 텍스트:
gg(Ctr\*/) 
『회 Overview 
국• 액세스 TSICY(IAVI) 
Policies 
Cost Management 
Cost 구rⅠ3Ⅰ쥐5 
용) Budgets 
역서 -` 권한 할인 
0 사로 고집 I 
부 二 
클래식 관리자 역할 
二,들어 이 법원의 사용자| 그름 서비스 보한 주제 및 관리 Ⅰ0하 Azure 리스스에 다한 덕)회人 
권한들 활三l합Ll二卜- 자사한 점보 Z 
도는 전자 서' 言석 
그를화 밥• 
2카 (사용자 1 그를 17F) 
[〕 이를 
기이자 
소유자 
염남지사 
박 건다 
박긴 
이vestx결0니t|00났…- 
형식 
그를 
사용자 
기녀사 
스유사 
범위 
이 三|人 
이 三|人
 




 
 

클라우드 지출 효율성

    1. 초기 대규모 인프라 투자 없음.
    2. 투자비용이 자산에 묶이지 않음.
    3. 리소스 요구사항 변동에 따른 즉시 대응 가능
    4. 예측 불가능 수요에 대응 가능
    5. 회사의 혹은 특정사업의 성장패턴에 대응 가능
 
VM 등급을 한단계 낮추면 40~50% 절감됨
계산기에서 가격을 보면 대략 2배씩 늘어남(디스크 가격 제외)

 
SA넣고 비용시뮬레이션 필요
    

 
 
Azure SQL database
DTU, vcore 예측이 되지 않는다면
SQL Database 탄력적풀을 사용
풀에 더 많은 데이터베이스를 추가할 수록 비용절감
각 등급마다 최대크기가 있음

 
 
Blob스토리지 최적화
    • 핫 액세스 계층 - 스토리지 비용은 가장 높지만 액세스 비용은 가장 낮습니다.
    • 쿨 액세스 계층 - 핫 스토리지에 비해 스토리지 비용이 낮고 액세스 비용이 높습니다. 이 계층은 최소 30일 동안 쿨 계층에 유지되는 데이터를 위한 계층입니다.
    • 보관 액세스 계층 - 스토리지 비용이 가장 낮고 핫 및 쿨 스토리지에 비해 데이터 검색 비용이 가장 높습니다. 이 계층은 몇 시간의 검색 대기 시간을 허용할 수 있고 적어도 180일 동안 보관 계층에 남아 있는 데이터를 위한 계층입니다.
 
데이터를 옮기는 체계를 APP단에서 만들어줘야 되는건지??
해당 컨텐츠의 날짜를 체크해서 파일을 가져오는 경로를 분기처리해줘야 되는건지?
If(cdateDiff < 7)
    get the file from 핫 액세스
Else if( cdateDiff > 7)
{
If(cdateDiff < 30))
쿨액세스
Else
보관액세스
}
 
 
VM deallocate 의미
OS 종료 = 과금중지의 의미는 아님
Azure Portal에서 "중지" 버튼을 눌러야 과금이 일시중지됨(최소의 과금은 발생할 수 있음)
 
 
Azure의 모니터링 및 분석 기능을 이용하여 서비스에 대한 전반을 모니터링 가능
심층 애플리케이션 모니터링
Application Insights
심층 인프라 모니터링
Log Analytics, 관리솔루션, 서비스맵, 네트워크모니터링
코어 모니터링
Azure 모니터, Advisor, 서비스상태, 활동로그
 
공유기능
경고, 대시보드, 메트릭탐색기
 
 
코어모니터링(핵심모니터링)
    1. 활동로그
리소스 관련 핸들링 로그 모두 보관
90일치만 보관, 추가보관이 필요하다면 -> Azure Log Analytics

 방법 확인
 
    1. Azure 서비스에 대한 성능 메트릭 확인 가능 (OS 성능 메트릭 처럼..)
해당 메트릭 기반 -> 경고 생성 가능 (1분~5분)
 
,  Azure Monitor를 사용하면 메트릭, 활동 로그 및 진단 로그를 수집, 집계, 시각화하여 Azure 서비스에 대한 코어 모니터링을 수행할 수 있습니다.
 
 
    1. Advisor
성능, 비용, 고가용성, 보안문제에 대한 도움, 권장사항 제시
 
 
 

모니터링 전략

 
Azure 모니터를 지원하는 서비스의 경우 간단한 설정으로
쉽게 데이터를 Log Analytics(중앙허브역할)로 보낼 수 있음
혹은 Agent 방식, API 방식 모두 지원함.

 

 Log Analytics 에서 쿼리하여 경고 생성하는 방법 확인
 
 

Azure Application Insights

APP의 성능, 응답시간, 사용량추세, 가용성에 대해 확인 가능
Sdk 있는지?
 
 

Azure 자동화

코드를 이용

    1. CLI, Powershell 을 이용한 명령적 자동화
    1. Azure Resource Manager 템플릿을 이용하는 JSON을 이용한 선언적 자동화
결과내용을 정의하고 보내주면 알아서 만들어줌
VS에서도 가능
템플릿 내 섹션 (매개변수, 변수, 리소스 , 출력)
이러한 자동화를 이용하는 경우
    • 배포 시 오류를 줄일 수 있음
    • 시간절약, 빠른 배포, 대량배포도 가능해짐. 개발인프라 구축도 쉬움
 

VM 이미지

    • 사용자 지정 이미지
    • 배포 후 스크립팅
 
이미지를 사용하는 경우 이미지 업데이트, 보안 패치 및 이미지 자체의 인벤토리 관리를 처리하기 위한 프로세스가 있는지 확인해야 합니다.
 
배포 후 스크립팅을 사용하는 경우 빌드가 완료되기 전에는 실시간 워크로드에 VM을 추가할 수 없으므로 빌드 시간이 길어질 수 있습니다.
Azure Automation DSC(Desired State Configuration) ??
 
DSC 사용해보기?
 
 
 
 
 
Microsoft OneNote 2016에서 작성



 
 
Azure Security Center, Azure 암호화
2019 2 10일 일요일
오전 11:57
    • 구성, 리소스 및 네트워크를 기반으로 보안 추천을 제공합니다.
    • -프레미스 및 클라우드 워크로드의 보안 설정을 모니터링하면서 새 서비스가 온라인으로 전환되면 필요한 보안을 자동으로 적용합니다.
    • 모든 서비스를 지속적으로 모니터링하면서 자동 보안 평가를 수행하여 잠재적 취약점이 악용되기 전에 미리 식별합니다.
    • 기계 학습을 사용하여 맬웨어를 탐지하고 가상 머신과 서비스에 설치되지 않도록 차단합니다. 또한 유효성을 검사한 앱만 실행할 수 있도록 허용되는 애플리케이션 목록을 정의할 수 있습니다.
    • 잠재적 인바운드 공격을 분석 및 식별하고, 발생했을지도 모르는 위협 및 게시물 보안 위반 활동을 조사합니다.
    • 포트에 대한 Just-In-Time 액세스 제어를 제공하고, 필요한 트래픽만 네트워크에서 허용하여 공격 노출 영역을 줄입니다.
 
 
 무료 SKU는 
보안추천 만 가능
 
------------- 표준 SKU 월에 노드당 15$
- 보안설정 모니터링
- 자동 보안 평가
- 맬웨어탐지????? VM?
- 인바운드공격분석
- 포트에대한 Just in Time 엑세스제어
 
 
 
Azure AD
온프레미스, 클라우드, O365, 모바일 등에 같은 자격증명을 공유할 수 있게됨.
 
    • 인증처리
    • SSO
    • 애플리케이션 관리
Azure AD 애플리케이션 프록시, SSO, 내 앱 포털,
    1. B2B ID 서비스
    2. 디바이스 관리
 
 
 
 
 

암호화

해당 구성 캡쳐필요
    1. Azure SSE(스토리지 서비스 암호화를 사용하면 조직의 보안 및 규정 준수를 충족하도록 데이터를 보호할 수 있습니다. 데이터를 저장하기 전에 암호화하고 데이터를 검색하기 전에 암호를 해독합니다. 암호화 및 암호 해독은 사용자에게 투명하게 이루어집니다.
    2. 클라이언트 쪽 암호화에서는 클라이언트 라이브러리에 의해 데이터가 이미 암호화되어 있습니다. Azure는 암호화된 상태로 미사용 데이터를 저장한 다음, 검색 중에 암호를 해독합니다.
 
암호화 정의
권한이 없는 뷰어가 데이터를 읽을 수 없고, 사용할 수 없게 만드는 프로세스
대칭암호화 : 암호화, 암호해독 모두 같은 암호키를 사용
비대칭암호화 : 공개키-개인키 쌍을 이용함.
 
저장 데이터암호화, 전송중암호화 두개가 있음.
 
 
    1. Azure 스토리지 암호화
Azure Managed Disks, Azure Blob 스토리지, Azure Files 또는 Azure Queue 스토리지에 보관하고, 데이터를 암호 해독한 후 검색
 
    1. VHD 디스크(가상머신디스크) 암호화
 Windows의 BitLocker 기능과 Linux의 DM-Crypt 기능을 활용하여 OS 및 데이터 디스크를 위한 볼륨 암호화를 제공
 
디스크 암호화 키 및 비밀을 제어하고 관리할 수 있도록(그리고 관리 서비스 ID를 사용하여 Key Vault에 액세스할 수 있도록) Azure Key Vault와 통합
 
    1. SQL
데이터베이스 암호화
TDE(투명한 데이터 암호화
데이터베이스 암호화 키라는 대칭 키를 사용하여 전체 데이터베이스의 스토리지를 암호화합니다. 기본적으로 Azure는 논리적 SQL Server 인스턴스마다 고유한 암호화 키를 제공하고 모든 세부 정보를 처리합니다. Azure Key Vault에 저장된 키를 통해 BYOK(Bring Your Own Key)도 지원됩니다(아래 참조).
 
 
    1. Azure Key Vault
애플리케이션 비밀을 저장하기 위한 중앙 집중식 클라우드 서비스입니다
 
 
네트워크 단 보안도 있음
NSG
 
더 나아가 MSAIP (MSIP)도 있고,
또, azure ATP도 있음
Azure ATP는 EMS E5 라이선스 필요
 
ATA
AD로 들어가는 패킷을 검사하여, 악의적인 패턴 공격을 감지하는 솔루션
AATP
Azure ATP
ATA의 클라우드 버전
 
Microsoft OneNote 2016에서 작성





+ Recent posts