gpt4 book ai didi

java - 如何启用和配置网络安全组的流日志

转载 作者:行者123 更新时间:2023-12-02 03:11:37 29 4
gpt4 key购买 nike

我无法使用 NetworkWatcherRG 或其他现有资源组中的存储帐户来启用和配置网络安全组的流日志。我想知道我在 sdk 中做错了什么,因为我可以轻松地从 azure gui 中执行此操作。

重现

  • 检索网络观察者对于正确区域的网络观察者
  • 检索该区域中现有网络安全组的流量设置
  • 更新流程设置以启用日志记录并将存储设置为现有存储帐户
final PagedList<NetworkWatcher> nws = adapter.getItsAzure().networkWatchers().list();

NetworkWatcher retval = null;
for(final NetworkWatcher nw : nws ) {
if(nw.region().equals(Region.GOV_US_VIRGINIA)) {
retval = nw;
}
}

final ResourceGroup rg = adapter.getItsAzure().resourceGroups().getByName(retval.resourceGroupName());
final StorageAccount sa = adapter.getItsAzure().storageAccounts().define(ResourceNameType.STORAGE_ACCOUNT.randomName("networkwatchersa"))
.withRegion(Region.GOV_US_VIRGINIA)
.withExistingResourceGroup(rg)
.withAccessFromAllNetworks()
.create();

final String rgName = "resource-group-38f6628eccb84ec9aa1cd9b3c8f5f815";
final NetworkSecurityGroup nsg = adapter.getItsAzure().networkSecurityGroups().getByResourceGroup(rgName, "add-network1-nat-securitygroup");

final FlowLogSettings fls = retval.getFlowLogSettings(nsg.id());

LOGGER.info("Found fls with enabled {} and storage id {}", fls.enabled(), fls.storageId());

fls.update()
.withLogging()
.withStorageAccount(sa.id())
.apply();
The client has permission to perform action 'Microsoft.OperationalInsights/workspaces/sharedKeys/action' on scope '/subscriptions/{subscription_id}/resourceGroups/NetworkWatcherRG/providers/Microsoft.Network/networkWatchers/NetworkWatcher_usgovvirginia', however the linked subscription 'resourcegroups' was not found

注意:订阅 ID 出现在上述错误中,刚刚经过编辑以便发布

预期行为希望能够在存储帐户中启用 nsg 的流日志,或更详细的错误消息,我目前无法确定问题是什么

设置:

操作系统:macOSIDE:Eclipse 版本:2019-06 (4.12.0)使用的库版本:1.23

其他上下文已尝试与服务主体作为订阅中的贡献者和所有者进行通话。我试图理解错误消息,因为 sdk 调用似乎很简单。我怀疑这是权限或所有权问题。

最佳答案

我已经从我这边重现了这个问题。最后我已经解决了。只需忽略您收到的误导性错误消息即可。

您需要向 FlowLogSettings 提供 TrafficAnalyticsConfigurationProperties,即使您不想打开它。因此,您需要先创建一个日志分析工作区。您可以引用以下代码来启用和配置 NSG 的流日志。

    NetworkWatcher nw = azure.networkWatchers().listByResourceGroup("NetworkWatcherRG").get(1);
NetworkSecurityGroup nsg = azure.networkSecurityGroups().getByResourceGroup("", "");
StorageAccount sa = azure.storageAccounts().getByResourceGroup("", "");
FlowLogSettings settings = nw.getFlowLogSettings(nsg.id());
TrafficAnalyticsConfigurationProperties networkWatcherFlowAnalyticsConfiguration = new TrafficAnalyticsConfigurationProperties();
networkWatcherFlowAnalyticsConfiguration.withWorkspaceId("").withWorkspaceRegion(Region.ASIA_SOUTHEAST.toString()).withWorkspaceResourceId("").withEnabled(false);
settings.inner().flowAnalyticsConfiguration()
.withNetworkWatcherFlowAnalyticsConfiguration(networkWatcherFlowAnalyticsConfiguration);
settings.update().withLogging().withRetentionPolicyEnabled().withRetentionPolicyDays(30).withStorageAccount(sa.id()).apply();

关于java - 如何启用和配置网络安全组的流日志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56990979/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com