Quantcast
Channel: 64 Blog
Viewing all articles
Browse latest Browse all 45

Azure クラウドサービス でIPアドレスの制限を設定する

$
0
0

Azure のクラウドサービスにデプロイした Web コンテンツに対して、IP アドレスの制限を設けたい時があると思います。
そんな時は、スタートアップタスクで実行する下記の様な感じの PowerShell を用意しておけば、簡単に設定することが出来ます。

[startup.ps1]

Import-Module WebAdministration
Install-WindowsFeature Web-IP-Security

$SiteName = (get-item iis:\sites\*).name
$Filter = "/system.webServer/security/ipsecurity"

Set-WebConfigurationProperty -Filter $Filter -Name allowUnlisted -Value $false -Location $SiteName -PSPath "IIS:\"
Add-WebConfiguration -Filter $Filter -PSPath "IIS:\" -Value @{ipAddress="許可するIPアドレス";allowed=$true} -Location $SiteName

 

あとは、上記の PowerShell をコールするcmdファイルを下記の様な感じで。
[startup.cmd]

@echo off
powershell -executionpolicy remotesigned -file startup.ps1

 

[ServiceDefinition.csdef] に、スタートアップタスクの設定と管理者権限を追加します。

<?xml version="1.0" encoding="utf-8"?>
<ServiceDefinition name="WindowsAzure35" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition" schemaVersion="2013-03.2.0">
  <WebRole name="MvcWebRole1" vmsize="Small">
    <Sites>
      <Site name="Web">
        <Bindings>
          <Binding name="Endpoint1" endpointName="Endpoint1" />
        </Bindings>
      </Site>
    </Sites>
    <Endpoints>
      <InputEndpoint name="Endpoint1" protocol="http" port="80" />
    </Endpoints>
    <Imports>
      <Import moduleName="Diagnostics" />
      <Import moduleName="RemoteAccess" />
      <Import moduleName="RemoteForwarder" />
    </Imports>
    <Startup>
      <Task executionContext="elevated" commandLine="startup.cmd"></Task>
    </Startup>
    <Runtime executionContext="elevated"></Runtime>
  </WebRole>
</ServiceDefinition>

 

あとは デプロイして、アクセスを許可する IP アドレス以外からは、403ページが表示されれば成功ですね。
201311010751


Viewing all articles
Browse latest Browse all 45

Trending Articles