All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Fixed a problem related to subnet and virtual machine relationships that was causing the same subnet to be used more than once resulting in duplicate key error.
- Removed check to verify whether the access token has a property called
roles
in its access token and theDirectory.Read.All
role in its array
- Added a new field called
state
that reflects the virtual machine's state (running or stopped).
-
Previously called
state
field is now calledprovisioningState
as it reflects the virtual machine's provision state. -
The boolean field
active
now also reflects the virtual machine's state. It's values can be:true
(whenstate
isrunning
),false
(whenstate
isstopped
) andundefined
if the state isn't known.
- Update sdk-* packages to 8.2.1. This is a major version change requiring to
conform to
_key
being required on entities. In addition, the user entity now has theactive
property as required by the v8 update.
- Stopped using the
callback
version of theContainerServiceClient.managedClusters.list(callback)
API
- Stopped creating
azure_kubernetes_cluster
entities that have noid
property
-
Added support for ingesting the following new resources:
Service Resource / Entity Azure Kubernetes Cluster azure_kubernetes_cluster
Resource Lock azure_resource_lock
-
Added support for ingesting the following new relationships:
Source _class Target azure_resource_group
HAS
azure_kubernetes_cluster
azure_resource_lock
HAS
ANY_SCOPE
-
New properties added to resources:
Entity Properties azure_keyvault_service
enableSoftDelete
,enablePurgeProtection
- Refactored the
rm-compute-network-relationships
step to ensure relationships are created betweenazure_vm
,azure_nic
,azure_subnet
andazure_public_ip
-
Added support for ingesting the following new resources:
Service Resource / Entity Key Vault Key azure_keyvault_key
Key Vault Secret azure_keyvault_secret
-
With the following properties:
Entity Properties azure_keyvault_key
name
,recoveryLevel
,vaultUrl
,version
,enabled
,notBefore
,createdOn
,updatedOn
,expiresOn
azure_keyvault_secret
name
,recoveryLevel
,vaultUrl
,version
,contentType
,certificateKeyId
,managed
,enabled
,notBefore
,createdOn
,updatedOn
,expiresOn
-
New properties added to resources:
Entity Properties azure_storage_account
tableAnalyticsLoggingReadEnabled
,tableAnalyticsLoggingWriteEnabled
,tableAnalyticsLoggingDeleteEnabled
- Suppressed
FeatureNotSupportedForAccount
andAccountIsDisabled
errors when attempting to list tables, queues, blobs, and file shares for storage accounts - Add
errorCode
anderrorName
to blob & queue service properties calls - Fixed a bug that occurs when paginating Microsoft.Compute/galleries/${galleryId}/images/${imageId}/versions
-
New properties added to resources:
Entity Properties azure_web_app
,azure_function_app
authEnabled
,httpsOnly
,minTlsVersion
,clientCertEnabled
,principalId
,phpVersion
,pythonVersion
,javaVersion
,nodeVersion
,http20Enabled
,ftpsState
azure_sql_server
vaRecurringScansEnabled
,vaStoragePath
,vaEmailSubscriptionAdmins
,vaEmails
Note: fetching settings for
azure_web_app
andazure_function_app
requires additional permission to be added to the custom role:Microsoft.Web/sites/config/list/Action
- Open-sourced Azure managed questions
- Bumped
@jupiterone/integration-sdk-*@6.22.1
. This included new functionality to theIntegrationError
classes that better segregates errors coming from different steps
- Stop throwing
Provider API failed at storage.*: AccountIsDisabled The specified account is disabled.
on storage blob/queue/table/file steps
- Stop throwing
Provider API failed at storage.*: AccountIsDisabled The specified account is disabled.
on storage blob/queue/table/file steps
- Stop throwing
Provider API failed at storage.*: AccountIsDisabled The specified account is disabled.
on storage blob/queue/table/file steps - Stop throwing
Provider API failed at *.*: DisallowedOperation The current subscription type is not permitted to perform operations on any provider namespace. Please use a different subscription.
on steps
- Stop throwing
Provider API failed at monitor.diagnosticSetting: SubscriptionNotRegistered The subscription '<SUBSCRIPTION-ID>' is not registered to use microsoft.insights.
on security center settings step - Stop throwing
Provider API failed at security.settings: Subscription Not Registered Please register to Microsoft.Security in order to view your security status
on security center settings step
- Restored
GraphClient
retry parameters:- retries: 5 -> 3
- delay: 500 -> 200
- Added token refresh logic to
GraphClient
- Increased
GraphClient
retries from 3 to 5 - Added 500ms delay between
GraphClient
retries - Used
expect().toTargetEntities()
matcher from SDK, and removed local implementations of.toTargetEntities()
and.toCreateValidRelationshipsToEntities()
- Changed
validateInvocation()
to try directly invokingsubscriptionClient.getSubscription(id)
when provided asubscriptionId
parameter. Directly pass errors through to the user, such as:The provided subscription identifier '{{SUBSCRIPTION_ID}}' is malformed or invalid.
The subscription '{{SUBSCRIPTION_ID}}' could not be found.
The client '{{CLIENT_ID}}' with object id '{{CLIENT_ID}}' does not have authorization to perform action 'Microsoft.Resources/subscriptions/read' over scope '/subscriptions/{{SUBSCRIPTION_ID}}' or the scope is invalid.
- Throw
IntegrationProviderAuthorizationError
on 403 response inGraphClient
- Changed
azure_group_has_member
relationships from mapped to direct, because group members always exist in the same directory as the group. - Bumped
@jupiterone/integration-sdk-*@6.10.0
. This included some new required properties for entities of_class
Service
andUser
. Added thefunction
property to the following entites:azure_batch_account
azure_storage_account
azure_cdn_profile
azure_event_grid_domain
azure_service_bus_namespace
- Identify policy definition source (subscription, management group, or built-in) using a case-insensitive switch statement, since Azure resource IDs do not use consistent casing.
- Fixed an issue where DNS Zones and Private DNS Zones threw an error if a
subscription had not registered the
Microsoft.Network
provider
-
Added support for ingesting the following new relationships:
Source _class Target azure_vm
GENERATED
azure_shared_image_version
azure_keyvault_service
ALLOWS
ANY_PRINCIPAL
- Lowercase the
azure_vm._key
property to allow for mapped relationships across different J1 subscriptions.
-
New properties added to resources:
Entity Properties azure_shared_image_version
publishedDate
,createdOn
- Moved
@microsoft/microsft-graph-types
from dev to direct dependency, which was previously causing types to fail on dependent projects after exportingclients.GraphClient
inv5.27.1
.
-
Added support for ingesting the following new resources:
Service Resource / Entity Gallery Image Version azure_shared_image_version
-
Added support for ingesting the following new relationships:
Source _class Target azure_shared_image
HAS
azure_shared_image_version
azure_vm
USES
azure_shared_image_version
-
New properties added to resources:
Entity Properties azure_policy_definition
Automatically convert metadata
to J1 tagsazure_policy_definition
accountEnabled
- Fixed a bug where the compute galleries execution handler was not invoked, and instead the VM images execution handler was invoked twice. This caused DuplicateKeyErrors in either the compute galleries step or the VM images step.
- Changed the type
azure_shared_image
toazure_shared_image_definition
, because shared images have both a definition, representing top-level metadata, and a number of versions, representing discrete images. - Changed the
_class
ofazure_gallery
fromDataStore
toRepository
.
- Exported
clients.GraphClient
from project index.
-
New properties added to resources:
Entity Properties azure_role_assignment
actions
,dataActions
,notActions
,notDataActions
- Fixed a bug introduced in
5.25.1
where therm-authorization-classic-administrators
step no longer had a dependency on thead-account
step, causingACCOUNT_ENTITY_NOT_FOUND
errors.
-
Added support for ingesting the following new relationships:
Source _class Target azure_vm
USES
azure_service_principal
-
Changed the policy definition
_key
suffix to:latest
instead of:${timestamp}
to reduce policy state churn during integration invocations. -
Previously, JupiterOne created direct relationships between active directory entities and role assignments when active directory entities were ingested in the same integration as subscription entities. In an effort to ensure consistent relationships are built given any integration configuration, this integration now defaults to creating mapped relationships between role assignments and active directory entities.
-
Added ingestion of Azure Management Groups when the
configureSubscriptionInstances
configuration field istrue
. This ingestion requires users to assign theManagement Group Reader
role to the service principal used in the given integration configuration to the Tenant Root Group management group. -
Added support for ingesting the following new resources:
Service Resource / Entity Gallery azure_gallery
Gallery Image azure_shared_image
Management Groups azure_management_group
-
Added support for ingesting the following new relationships:
Source _class Target azure_resource_group
HAS
azure_gallery
azure_gallery
CONTAINS
azure_shared_image
azure_vm
HAS
azure_shared_image
azure_vm
HAS
azure_image
azure_management_group
CONTAINS
azure_management_group
azure_account
HAS
azure_management_group
-
New properties added to resources:
Entity Properties azure_vm_extension
settings
,extType
,publisher
azure_user
isMfaRegistered
-
Added support for ingesting the following new resources:
Service Resource / Entity Network azure_private_endpoint
App Service azure_web_app
App Service azure_function_app
App Service azure_app_service_plan
Policy Insights azure_policy_state
-
Added support for ingesting the following new relationships:
Source _class Target azure_resource_group
HAS
azure_private_endpoint
azure_subnet
HAS
azure_private_endpoint
azure_private_endpoint
USES
azure_nic
azure_private_endpoint
CONNECTS
ANY_RESOURCE
azure_resource_group
HAS
azure_web_app
azure_resource_group
HAS
azure_function_app
azure_resource_group
HAS
azure_app_service_plan
azure_web_app
USES
azure_app_service_plan
azure_function_app
USES
azure_app_service_plan
azure_policy_assignment
HAS
azure_policy_state
azure_policy_definition
DEFINES
azure_policy_state
ANY_RESOURCE
HAS
azure_policy_state
-
Added the following property to
azure_storage_account
:networkRuleSet.allowedIpAddresses
-
Changed the following property values on
azure_storage_account
:Previous property name New property name networkRuleSetDefaultAction
networkRuleSet.defaultAction
networkRuleSetBypass
networkRuleSet.bypass
- Renamed type
azure_network_azure_firewall
toazure_network_firewall
- Added logic to handle
policyDefinition
IDs that are sourced from management groups.
- Added logger.warn statement when getPolicyDefinition API call fails.
- Upgraded
@jupiterone/integration-sdk-*@6.0.0
- Added try/catch logic to
AzurePolicyClient
methods for policy definitions & policy set definitions so step does not fail from 404s.
- Changed logic for fetching tables/queues/fileShares of
Premium
tier storageV1/storageV2azure_storage_account
s, because onlyStandard
tier storage accounts support tables/queues/fileShares.
-
Changed
_key
property forazure_policy_set_definition|contains|azure_policy_definition
relationship to usepolicyDefinitionReference.policyDefinitionReferenceId
instead ofpolicyDefinitionReference.policyDefinitionId
. The sameazure_policy_definition
can be referenced more than once in anazure_policy_set_definition
using differentparameter
properties.Previously, the relationship
_key
used thepolicyDefinitionId
, which threwDuplicateKeyError
s Example:{ "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/b954148f-4c11-4c38-8221-be76711e194a", "parameters": { "operationName": { "value": "Microsoft.Network/networkSecurityGroups/delete" } }, "policyDefinitionReferenceId": "CISv110x5x2x3", "groupNames": [ "CIS_Azure_1.1.0_5.2.3" ] }, { "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/b954148f-4c11-4c38-8221-be76711e194a", "parameters": { "operationName": { "value": "Microsoft.Network/networkSecurityGroups/securityRules/write" } }, "policyDefinitionReferenceId": "CISv110x5x2x4", "groupNames": [ "CIS_Azure_1.1.0_5.2.4" ] },
- Added the
enabled
property toazure_security_center_setting
entities.
-
Added support for ingesting the following new resources:
Service Resource / Entity Security Center azure_security_center_setting
Security Center azure_security_center_auto_provisioning_setting
Policy azure_policy_definition
Policy azure_policy_set_definition
- Only ingest an entity for the subscription identified by the
subscriptionId
config field. Previously, the integration would create an entity for every subscription, though none of the resources would be ingested. This new behavior limits the scope to the subscription defined bysubscriptionId
. Subscriptions
tosubscription
where relevant.fetchSubscriptions
to now return tag data. This will be used for deciding which subscriptions should be created.
- An
IntegrationError
tofetchSubscription
if the subscription could not be found.
SubscriptionId
check when creating an authenticated service client.
- Upgraded
@jupiterone/integration-sdk-*@5.11.2
- Added checks to ensure storage account
Kind
supports file and blobs before attempting to fetch file and blob resources. - Improved error messaging when
Directory.Read.All
permission is not present andconfig.ingestActiveDirectory=true
. - Handle errors thrown from
getBlobServiceProperties()
instead of allowing storage account step to fail. - Changed
_key
property onazure_vm_uses_storage_account
to fixDuplicateKeyError
s when multiple data disks point to the same storage account.
- Added
azure_subscription_contains_role_definition
relationships
- Changed
azure_advisor_recommendation.name
to useshortDescription.solution
instead ofname
, becausename
returned from the Azure API is a UUID.
- Added
azure_monitor_activity_log_alert_monitors_scope
relationships - Added
azure_monitor_activity_log_alert
entities
- Added
secureTransport
property to the following entities:azure_sql_server
azure_mariadb_server
azure_mysql_server
azure_postgresql_server
- Added the following log categories to
azure_diagnostic_settings
forazure_subscription
entities:log.Administrative
log.Alert
log.Policy
log.Security
- Added the following log categories to
azure_diagnostic_settings
forazure_keyvault_service
entities:log.AuditEvent
- Added
./tools/cli/j1-azure-integration document-diagnostic-settings
command to automatcially document which Azure resources currently ingest diagnostic settings.
- Changed the way that Diagnostic Settings are ingested. Previously, each
log
andmetric
enumerated within a Diagnostic Settings Resource was created as its own entity. This change creates a singleazure_diagnostic_setting
entity, which contains alllog
s andmetric
s in raw data. Speciallog
s andmetric
s can be exposed as properties on theazure_diagnostic_setting
entity.
- Added the following properties to
azure_sql_server
:encryptionProtector.serverKeyName
encryptionProtector.serverKeyType
- Added
azure_sql_server_active_directory_admin
entities.
- Added
azure_postgresql_server_firewall_rule
entities. - Added the following properties to
azure_postgresql_server
:configuration.logCheckpoints
configuration.logConnections
configuration.logDisconnections
configuration.logRetentionDays
configuration.connectionThrottling
- Added
azure_security_center_subscription_pricing
entities. - Added
azure_vm|USES|azure_storage_account
relationships. - Added
azure_vm_extension
entities.
- Added
azure_location|HAS|azure_network_watcher
relationships. - Upgraded
@jupiterone/integration-sdk-*@5.11.0
.
- Added
azure_managed_disk.encryption
property. - Added
azure_vm.usesManagedDisks
property. - Added
azure_location
entities. - Added
azure_network_watcher
entities. - Added
azure_security_group_flow_logs
entities. - Added
azure_sql_server_firewall_rule
entities.
- Fixed broken relationships between VM and disk entities. Previously, some relationships between VM and disk did not match case-sensitive, and created unresolvable relationships. Relationships will now be created based on case-insensitive matching of VM and disk IDs.
- Added
queueAnalyticsLoggingReadEnabled
,queueAnalyticsLoggingWriteEnabled
, andqueueAnalyticsLoggingDeleteEnabled
toazure_storage_account
. - Added
blobAnalyticsLoggingReadEnabled
,blobAnalyticsLoggingWriteEnabled
, andblobAnalyticsLoggingDeleteEnabled
toazure_storage_account
.
- Added
blobSoftDeleteEnabled
andblobSoftDeleteRetentionDays
toazure_storage_account
- Added
networkRuleSetDefaultAction
andnetworkRuleSetBypass
properties toazure_storage_account
.
- #230 - Change job log
name from
missing_optional_permissions
toauth
.
- Added
securityDefaultsEnabled
property toazure_account
entities.
- Collected Diagnostic Settings entities and relationships for Azure MariaDB Servers, Azure MySQL Servers, Azure PostgreSQL Servers, and Azure SQL Servers
- Added
getMatchRequestsBy()
to match azure recordings for any integration configuration. - Added
userType
property toazure_user
entities.
- The
Network Security Groups
step creates a map between security groups and subnets which is used later in theVirtual Networks
step. In the event thatNetwork Security Groups
fails, theVirtual Networks
step will fail withCannot read property '/subscriptions/subscription-id/resourceGroups/resource-group-id/providers/Microsoft.Network/virtualNetworks/vnet-name/subnets/subnet-name' of undefined
. Default to returning an empty object if undefined, so that key lookups do not cause the integration to fail.
- Fixed
hasSubscriptionId()
whensubscriptionId=null
.
- Collected Diagnostic Settings entities and relationships for Azure Network Load Balancers
- Collected Diagnostic Settings entities and relationships for Azure Network Public IP Addresses
- Collected Diagnostic Settings entities and relationships for Azure Network Virtual Networks
- Added
azure_network_azure_firewall
entities - Added
azure_resource_group|has|azure_network_azure_firewall
relationships - Collected Diagnostic Setting entities and relationships for Azure Network Azure Firewalls
- Refactored the terraform creation for Diagnostic Settings for Azure Batch Accounts, Azure CDN Endpoints, Azure CDN Profiles, Azure Key Vaults, Azure Network Load Balancers, Azure Network Security Groups, Azure Network Public IP Addresses, Azure Network Virtual Networks, Azure Event Grid Domains, and Azure Event Grid Topics. This was because Azure was creating default Diagnostic Settings for categories not specified in the terraform. This was producing inconsistent test results. See hashicorp/terraform-provider-azurerm#7235 (comment) for more details.
- Added additional logging in the
DirectoryGraphClient
.
- Added
debug
-level logs toad-groups
step.
- Diagnostic Settings entities and relationships for Azure Container Registry
- Diagnostic Settings entities and relationships for Azure API Management Services
- Diagnostic Settings entities and relationships for Azure CDN
- Diagnostic Settings entities and relationships for Azure Event Grid Domain and Azure Event Grid Topics
- Diagnostic Settings entities and relationships for Azure Batch Account
- Started retrying all request errors that are not handled by the Azure API client. Continue retrying 429 errors thrown by the Azure API client.
- Started retrying API errors in Azure Graph API (Azure Active Directory endpoints.)
- Diagnostic Settings entities and relationships for Network Security Groups
- Diagnostic Settings entities and relationships for Activity Logs (Azure Subscription)
- Fixed the way
IntegrationProviderAPIError
exposes error code/message ofnode-fetch
errors, such asECONNRESET
.
- Added
azure_diagnostic_log_setting
entities - Added
azure_resource|has|azure_diagnostic_log_setting
relationships - Added
azure_diagnostic_log_setting|uses|azure_storage_account
relationships - Added
azure_diagnostic_metric_setting
entities - Added
azure_resource|has|azure_diagnostic_metric_setting
relationships - Added
azure_diagnostic_metric_setting|uses|azure_storage_account
relationships
- Upgrade
@jupiterone/integration-sdk-*@5.0.0
- Added
azure_monitor_log_profile
entities - Added
azure_subscription|has|azure_monitor_log_profile
relationships - Added
azure_monitor_log_profile|uses|azure_storage_account
relationships - Added
encryption.keySource
andencryption.keyVaultProperties
to theazure_storage_account
entity - Added
allowBlobPublicAccess
to theazure_storage_account
entity - Added
azure_storage_account|uses|azure_keyvault_service
relationship
- Added
azure_security_center_contact
entities - Added
azure_subscription|has|azure_security_center_contact
relationships
- Added
azure_policy_assignment
entities - Added
ANY_SCOPE|has|azure_policy_assignment
relationships. These can target any scoped entity within Azure.
- Upgrade sdk to v4
- #187 - Throw
IntegrationValidationError
when invalid client secret is provided. - #185 - Handle
OperationNotAllowedOnKind
errors when storage accounts do not allow storage queues or storage tables - Added
loggingEnabled
property on database entities - #182 - Disallow
objects in
azure_storage_account.endpoints
array property
- Added info-level logs when iterating Queues & Tables in storage accounts.
- Added the ability to execute specific steps in an integration last.
- Added a transformer so that
findEntity
uses case-insensitive matching. - Added
azure_advisor_recommendation
entities - Added
ANY_SCOPE|has|azure_advisor_recommendation
relationships. These can target any scoped entity within Azure. - Added
azure_security_assessment
entities - Added
azure_security_assessment|identified|azure_advisor_recommendation
relationships - Added
azure_subscription|performed|azure_security_assessment
relationships
- Don't throw if
createResourceGroupResourceRelationship
doesn't find the target resource group. - Stop casting client
resourceEndpoint
arg toListResourcesEndpoint
- Added
azure_event_grid_domain
entities - Added
azure_resource_group|has|azure_event_grid_domain
relationships - Added
azure_event_grid_domain_topic
entities - Added
azure_event_grid_domain|has|azure_event_grid_domain_topic
relationships - Added
azure_event_grid_topic
entities - Added
azure_resource_group|has|azure_event_grid_topic
relationships - Added
azure_event_grid_topic_subscription
entities - Added
azure_event_grid_topic|has|azure_event_grid_topic_subscription
relationship - Added
azure_event_grid_domain_topic|has|azure_event_grid_topic_subscription
relationship - Added
azure_batch_account
entities - Added
azure_resource_group|has|azure_batch_account
relationships - Added
azure_batch_pool
entities - Added
azure_batch_account|has|azure_batch_pool
relationships - Added
azure_batch_application
entities - Added
azure_batch_account|has|azure_batch_application
relationships - Added
azure_batch_certificate
entities - Added
azure_batch_account|has|azure_batch_certificate
relationships - Added
azure_redis_cache
entities - Added
azure_resource_group|has|azure_redis_cache
relationships - Added
azure_redis_firewall_rule
entities - Added
azure_redis_cache|has|azure_redis_firewall_rule
relationships - Added
azure_redis_cache|connects|azure_redis_cache
relationships - Added
azure_container_group
entities - Added
azure_resource_group|has|azure_container_group
relationships - Added
azure_container
entities - Added
azure_container_group|has|azure_container
relationships - Added
azure_container_volume
entities - Added
azure_container_group|has|azure_container_volume
relationships - Added
azure_container|uses|azure_container_volume
relationships - Added
azure_container_volume|uses|azure_storage_file_share
relationships
- Upgraded SDK to v3.5.1
- Removed
ingestResourceManager
which caused previously-configured integrations to stop ingesting resource manager steps
- Added
azure_service_bus_namespace
entities - Added
azure_resource_group|has|azure_service_bus_namespace
relationships - Added
azure_service_bus_queue
entities - Added
azure_service_bus_namespace|has|azure_service_bus_queue
relationships - Added
azure_service_bus_topic
entities - Added
azure_service_bus_namespace|has|azure_service_bus_topic
relationships - Added
azure_service_bus_subscription
entities - Added
azure_service_bus_topic|has|azure_service_bus_subscription
relationships - Added
azure_cdn_profile
entities - Added
azure_resource_group|has|azure_cdn_profile
relationships - Added
azure_cdn_endpoint
entities - Added
azure_cdn_profile|has|azure_cdn_endpoint
relationships
- Added
ingestResourceManager
flag so thatResource Manager
steps can be disabled - Added
azure_dns_zone
entities - Added
azure_resource_group|has|azure_dns_zone
relationships - Added
azure_dns_record_set
entities - Added
azure_dns_zone|has|azure_dns_record_set
relationships - Added
azure_private_dns_zone
entities - Added
azure_resource_group|has|azure_private_dns_zone
relationships - Added
azure_private_dns_record_set
entities - Added
azure_private_dns_zone|has|azure_private_dns_record_set
relationships - Added
azure_container_registry
entities - Added
azure_resource_group|has|azure_container_registry
relationships - Added
azure_container_registry_webhook
entities - Added
azure_container_registry|has|azure_container_registry_webhook
relationships
- Added
azure_api_management_service
entities - Added
azure_resource_group|has|azure_api_management_service
relationships - Added
azure_api_management_api
entities - Added
azure_api_management_service|has|azure_api_management_api
relationships
- Added
azure_storage_table
entities - Added
azure_storage_account|has|azure_storage_table
relationships - Added
azure_storage_queue
entities - Added
azure_storage_account|has|azure_storage_queue
relationships
- Removed mapped
role_assignment|allows|<scope>
relationships to avoid creatingazure_unknown_resource_type
entities
- Created
azure_storage_account
entities to replaceazure_storage_blob_service
andazure_storage_file_service
. NOTE: This change requires any existing queries using theazure_storage_blob_service
orazure_storage_file_service
_type
to useazure_storage_account
. - Upgraded SDK to v3.2.0, ordered entity/relationship docs
- Fixed a bug where
resourceGroupId
needed to be case-insensitive
- Fixed messaging for validateInvocation errors
- Added
azure_role_assignment|allows|<scope>
relationships - Added
azure_resource_group
entities - Added
azure_resource_group|has|<resource>
relationships - Added
azure_subscription
entities - Added
azure_subscription|has|azure_resource_group
relationships
- Upgraded to SDK version 3
- Updated classes on
azure_role_assignment-->azure_role_definition
relationship
- Added
azure_role_assignment
entities; removed relationships - Added
azure_role_assignment|assigned|<principal>
relationships - Added
azure_role_assignment|has|azure_role_definition
relationships
- Changed
generateEntityKey()
from<_type>_<id>
to simply<id>
- Removed
sourceEntityType
bug from mapped relationships
- Added
azure_role_definition
entities - Added
azure_role_definition|assigned|<type>
relationships - Added
azure_classic_admin_group
singleton entity - Added
azure_classic_admin_group|has|azure_user
relationships - Added
azure_service_principal
entities
- Security group rules step had wrong step function assigned, duplicated load balancer ingestion.
- Prefix globally unique terraform resources using
developer_id
environment variable.
- Added
User.username
for AD users, having the value ofuserPrincipalName
, to satisfy the data model User schema requirement.
- Duplicate subnet -> vm relationships would cause the step to crash.
- Duplicate load balancer -> nic relationships would cause the step to crash.
- Illegal property
_integrationInstanceId
caused persister to reject uploads. - Fix missing
name
onUser
andUserGroup
entities.
This release is a complete restructuring of the program to move to the new JupiterOne integration SDK. Benefits are numerous, including:
- Use the latest patterns and allow for much easier advancement of the integration in all the ways intended by the new SDK
- Break work into more atomic steps, particularly helpful for database ingestion
- Allow for ingesting as much data as possible even when some data cannot be retrieved (partial sets)
- Significantly better error reporting, and statistics are collected
- Designed to run as a single process, dramatically simplifying deployments
- Filter out empty string in array list returned by Azure API on SQL Server auditing and alerting settings.
- Changed SQL server
alertAll
property toalertOnAllThreats
.
- Set SQL server
alertAll: alertingEnabled && !hasDisabledAlerts
.
- SQL Server and Database auditing status and properties.
- SQL Server alerting status and properties.
attached
boolean andstate
property onazure_managed_disk
entities.
- Incorrect parsing the
targetPortRanges
(fromPort
andtoPort
) of an Azure Security Group rule.
- Upgrade
@jupiterone/integration-sdk
to version33.7.5
.
- Logging in DB synchronization code, since there is so much going on in one step, cannot see how far it gets before failing.
- SDK bug in
IntegrationCache.putEntries
that would duplicate keys and continually expand the keyspace, leading to infinite looping.
- Log more details during group member fetching, group iteration.
- NPM package for 3.15.0 has no
dist
directory, cannot import code.
- Users are not related to groups of which they are a member.
encrypted
property on storage services (azure_storage_*_service
).
-
Set
azure_managed_disk.encrypted
based on presence ofencryption.type
-
Key Vault resources:
azure_keyvault_service
(not yet loading keys, certs)
-
Virtual networks listing sometimes produces a
502
server response. This would crash Compute synchronization. Virtual network sync is skipped in this case so other synchronization carries on. -
_type
for images and disks was incorrect so that ingestion may have been unstable.
- Additional properties on
azure_storage_*_service
entities:kind
,enableHttpsTrafficOnly
.
azure_storage_file_service.encrypted
property was reflecting theblob
service encryption setting.
- Storage resources:
azure_storage_file_service
,azure_storage_share
- Cosmos DB resources:
azure_cosmosdb_account
,azure_cosmosdb_sql_database