Как моя рабочая роль взаимодействует только с моим API APIM? - PullRequest
0 голосов
/ 15 февраля 2019

У меня есть рабочая роль, в которой размещается ApiController, и в настоящее время она взаимодействует с общедоступным Интернетом через входные конечные точки http и https, которые я определил в своем файле конфигурации службы.

Я хотел бы поставитьэтот API-интерфейс стоит за API-интерфейсом Azure APIM, и весь трафик проходит через него, а не напрямую попадает в рабочую роль.Я в основном там, но у меня проблемы с тем, чтобы рабочую роль нельзя было получить напрямую из общедоступного Интернета.


В настоящее время:


Я считаю,лучший способ для меняпредотвратить доступ к моей рабочей роли напрямую из общедоступного Интернета будет , определяющим правила списка контроля доступа в своем файле конфигурации , которые будут разрешать только вызовы, исходящие из моего API APIM.Это будет выглядеть примерно так:

<AccessControls>
  <AccessControl name="APIM">
    <Rule action="permit" description="OnlyPermitAPIM" order="100" remoteSubnet="?" />
  </AccessControl>
</AccessControls>
<EndpointAcls>
  <EndpointAcl role="RoleName" endPoint="httpsIn" accessControl="APIM"/>
  <EndpointAcl role="RoleName" endPoint="httpIn" accessControl="APIM"/>
</EndpointAcls>

Я не уверен, какое будет правильное значение для свойства remoteSubnet.Я попытался ввести значение адресного пространства моей виртуальной сети ARM (в которой находится мой API APIM), но, похоже, это не сработало, тестовые вызовы вернули статус 500.

Это правильный подход?Кроме того, есть ли способ гарантировать, что мой APIM API выполняет вызов напрямую через одноранговые виртуальные сети?Сейчас я верю, что он все еще проходит через общедоступный Интернет.

1 Ответ

0 голосов
/ 15 февраля 2019

Я был на правильном пути.Единственное, что мне нужно было изменить - это значение remoteSubnet.Вместо адресного пространства виртуальной сети ARM мне нужно было включить VIP службы управления API.Соответствующий раздел файла .cscfg выглядел так:

<AccessControls>
  <AccessControl name="APIM">
    <Rule action="permit" description="OnlyPermitAPIM" order="100" remoteSubnet="<VIP address of APIM service>/32" />
  </AccessControl>
</AccessControls>
<EndpointAcls>
  <EndpointAcl role="RoleName" endPoint="httpsIn" accessControl="APIM"/>
  <EndpointAcl role="RoleName" endPoint="httpIn" accessControl="APIM"/>
</EndpointAcls>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...