แชร์ผ่าน


การกรองจุดสิ้นสุดของตัวเชื่อมต่อ (พรีวิว)

[บทความนี้เป็นคู่มือรุ่นก่อนวางจำหน่าย และอาจจะมีการเปลี่ยนแปลงในอนาคต]

การกรองจุดสิ้นสุดของตัวเชื่อมต่อช่วยให้ผู้ดูแลระบบควบคุมว่าผู้สร้างปลายทางรายใดสามารถเชื่อมต่อด้วยเมื่อสร้างแอป โฟลว์ หรือแชทบอท ซึ่งมีการกำหนดค่าภายในนโยบายการป้องกันการสูญหายของข้อมูล (DLP) และพร้อมใช้งานสำหรับตัวเชื่อมต่อหกตัวเท่านั้น:

  • HTTP
  • HTTP ที่มี Microsoft Entra ID (AD)
  • HTTP Webhook
  • SQL Server (รวมถึงการใช้ SQL Server Connector เพื่อเข้าถึงคลังข้อมูล Azure Synapse)
  • ที่เก็บข้อมูล Azure Blob
  • SMTP

เมื่อผู้สร้างพยายามเชื่อมต่อแอป โฟลว์ หรือแชทบอทของพวกเขากับตำแหน่งข้อมูลที่ถูกบล็อก พวกเขาจะพบข้อความแสดงข้อผิดพลาด DLP

คำเตือน

กฎการกรองจุดสิ้นสุดไม่ถูกบังคับใช้กับตัวแปรสภาพแวดล้อม อินพุตที่กำหนดเอง หรือจุดสิ้นสุดใดๆ ที่สร้างแบบไดนามิกที่รันไทม์ เฉพาะจุดสิ้นสุดแบบคงที่เท่านั้นที่จะได้รับการประเมินในตัวออกแบบแอป โฟลว์ หรือแชทบอท สำหรับข้อมูลเพิ่มเติม ให้ดู ข้อจำกัดที่ทราบ

สำคัญ

คุณลักษณะการแสดงตัวอย่างไม่ได้มีไว้สำหรับการนำไปใช้งานจริง และอาจมีการจำกัดฟังก์ชันการทำงาน คุณลักษณะเหล่านี้สามารถใช้ได้ก่อนการเปิดตัวอย่างเป็นทางการ เพื่อให้ลูกค้าสามารถเข้าใช้งานได้ก่อนเวลาและให้ข้อคิดเห็น

เพิ่มกฎการกรองจุดสิ้นสุดให้กับนโยบาย DLP ของคุณ

คอลัมน์ จุดสิ้นสุดที่กำหนดค่าได้ บนหน้า ตัวเชื่อมต่อที่สร้างไว้ล่วงหน้า ใน นโยบายข้อมูล ระบุว่าความสามารถการกรองจุดสิ้นสุดรองรับตัวเชื่อมต่อหรือไม่

จุดสิ้นสุดที่กำหนดค่าได้ในหน้าตัวเชื่อมต่อที่สร้างไว้ล่วงหน้า

ถ้าค่าของคอลัมน์ จุดสิ้นสุดที่กำหนดค่าได้ คือ ใช่ คุณสามารถใช้ความสามารถนี้ได้โดยคลิกขวา แล้วเลือก กำหนดค่าตัวเชื่อมต่อ>จุดสิ้นสุดของตัวเชื่อมต่อ

กำหนดค่าตัวเชื่อมต่อ > ปลายทางตัวเชื่อมต่อ

ซึ่งจะเปิดแผงด้านข้างซึ่งคุณสามารถระบุรายการที่เรียงลำดับของรูปแบบ URL อนุญาตหรือปฏิเสธ แถวสุดท้ายในรายการจะเป็นกฎสำหรับอักขระสัญลักษณ์ตัวแทน (*) เสมอ ซึ่งใช้กับจุดสิ้นสุดทั้งหมดในตัวเชื่อมต่อนั้น โดยค่าเริ่มต้น รูปแบบ * ถูกตั้งค่าเป็น อนุญาต สำหรับนโยบาย DLP ใหม่ แต่คุณสามารถแท็กสิ่งนี้เป็น อนุญาต หรือ ปฏิเสธ

ระบุรายการลำดับของรูปแบบ URL อนุญาต และ ปฏิเสธ สำหรับตัวเชื่อมต่อแบบกำหนดเอง

เพิ่มกฎใหม่

คุณสามารถเพิ่มกฎใหม่ได้ โดยการเลือก เพิ่มจุดสิ้นสุด กฎใหม่จะถูกเพิ่มที่ส่วนท้ายของรายการรูปแบบ เป็นกฎที่สองจากสุดท้าย เนื่องจาก * จะเป็นรายการสุดท้ายในรายการเสมอ อย่างไรก็ตาม คุณสามารถอัปเดตลำดับของรูปแบบได้ โดยใช้รายการแบบหล่นลง ลำดับ หรือเลือก เลื่อนขึ้น หรือ เลื่อนลง

เลือก เพิ่มจุดสิ้นสุด เพื่อเพิ่มกฎใหม่

หลังจากเพิ่มรูปแบบแล้ว คุณสามารถแก้ไขหรือลบรูปแบบเหล่านี้ได้ โดยการเลือกแถวที่ต้องการ แล้วเลือก ลบ

ลบรูปแบบ

หลังจากบันทึกกฎการกรองจุดสิ้นสุดของตัวเชื่อมต่อและนโยบาย DLP ที่กำหนดไว้แล้ว กฎเหล่านั้นจะถูกบังคับใช้ทันทีในสภาพแวดล้อมเป้าหมาย ด้านล่างนี้คือตัวอย่างที่ผู้สร้างพยายามเชื่อมต่อโฟลว์ระบบคลาวด์กับจุดสิ้นสุด HTTP ที่ไม่ได้รับอนุญาต

ข้อผิดพลาด DLP เนื่องจากกฎการกรองจุดสิ้้นสุด

ข้อจำกัดที่ทราบ

  • กฎการกรองจุดสิ้นสุดไม่ถูกบังคับใช้กับตัวแปรสภาพแวดล้อม อินพุตที่กำหนดเอง และจุดสิ้นสุดที่ผูกแบบไดนามิกระหว่างรันไทม์ มีการบังคับใช้เฉพาะจุดสิ้นสุดแบบคงที่ที่รู้จักและเลือกไว้เมื่อสร้างแอป โฟลว์ หรือแชทบอทระหว่างเวลาออกแบบ การดำเนินการนี้แสดงว่ากฎการกรองตำแหน่งข้อมูลตัวเชื่อมต่อสำหรับ SQL Server และ Azure Blob Storage จะไม่ถูกบังคับใช้หากการเชื่อมต่อได้รับการตรวจสอบความถูกต้องกับ Microsoft Entra ID ในภาพหน้าจอสองภาพด้านล่าง ผู้สร้างได้สร้างโฟลว์ระบบคลาวด์ที่กำหนด SQL Server และฐานข้อมูลภายในตัวแปร จากนั้นจึงใช้ตัวแปรเหล่านั้นเป็นอินพุตสำหรับข้อกำหนดการเชื่อมต่อ ดังนั้น กฎการกรองจุดสิ้นสุดจะไม่ได้รับการประเมิน และโฟลว์ระบบคลาวด์สามารถดำเนินการได้สำเร็จ

    โฟลว์ระบบคลาวด์ใช้ตัวแปรเพื่อเชื่อมต่อกับ SQLโฟลว์ระบบคลาวด์รันสำเร็จ

  • Power Apps บางส่วนที่เผยแพร่ก่อนวันที่ 1 ตุลาคม 2020 จำเป็นต้องเผยแพร่ใหม่ เพื่อให้กฎการดำเนินการของตัวเชื่อมต่อ DLP และกฎจุดสิ้นสุดถูกบังคับใช้ สคริปต์ต่อไปนี้ช่วยให้ผู้ดูแลระบบและผู้สร้างระบุแอปที่ต้องเผยแพร่ใหม่เพื่อให้เป็นไปตามกฎการควบคุมแบบละเอียดของ DLP ใหม่เหล่านี้:

    Add-PowerAppsAccount
    
    $GranularDLPDate = Get-Date -Date "2020-10-01 00:00:00Z"
    
    ForEach ($app in Get-AdminPowerApp){
    
        $versionAsDate = [datetime]::Parse($app.LastModifiedTime)
    
        $olderApp = $versionAsDate -lt $GranularDLPDate
    
        $wasBackfilled = $app.Internal.properties.executionRestrictions -ne $null -and $app.Internal.properties.executionRestrictions.dataLossPreventionEvaluationResult -ne $null -and ![string]::IsNullOrEmpty($app.Internal.properties.executionRestrictions.dataLossPreventionEvaluationResult.lastAdvancedBackfillDate) 
    
        If($($olderApp -and !$wasBackfilled)){
            Write-Host "App must be republished to be Granular DLP compliant: " $app.AppName " "  $app.Internal.properties.displayName " " $app.Internal.properties.owner.email
        } 
        Else{ 
            Write-Host "App is already Granular DLP compliant: " $app.AppName 
        }
    }
    

รูปแบบการป้อนข้อมูลและตัวอย่างของจุดสิ้นสุด

ตัวเชื่อมต่อแต่ละตัวมีแนวคิดที่แตกต่างกันว่า จุดสิ้นสุด หมายถึงอะไร นอกจากนี้ จุดสิ้นสุดบางจุดสามารถกำหนดได้หลายรูปแบบ ดังนั้น จุดสิ้นสุดต้องถูกป้อนในรูปแบบที่เป็นไปได้ทั้งหมด เพื่อป้องกันไม่ให้ผู้สร้างใช้งานในขณะที่สร้างแอปและโฟลว์ ผู้ดูแลระบบสามารถป้อนชื่อเต็มของจุดสิ้นสุด หรือใช้รูปแบบการจับคู่กับอักขระสัญลักษณ์ตัวแทนเครื่องหมายดอกจัน (*) เมื่อสร้างกฎการกรองปลายทาง กฎเหล่านี้ถูกป้อนและนำเสนอในรายการที่เรียงลำดับของรูปแบบของจุดสิ้นสุด ซึ่งหมายความว่ากฎเหล่านี้จะได้รับการประเมินในลำดับจากน้อยไปมาก โปรดทราบว่ากฎข้อสุดท้ายสำหรับตัวเชื่อมต่อที่กำหนดจะเป็น * อนุญาตหรือ * ปฏิเสธเสมอ อนุญาตเป็นค่าเริ่มต้น ซึ่งสามารถเปลี่ยนเป็นปฏิเสธได้

คำแนะนำต่อไปนี้อธิบายวิธีป้อนปลายทางของตัวเชื่อมต่อขณะสร้างกฎ เพื่ออนุญาตหรือปฏิเสธ

SQL Server

จุดสิ้นสุดการเชื่อมต่อเซิร์ฟเวอร์ SQL ต้องอยู่ใน รูปแบบ <Server_name, database_name> บางสิ่งที่ต้องคำนึงถึง:

  • ผู้สร้างสามารถป้อนชื่อเซิร์ฟเวอร์ในรูปแบบต่างๆ ดังนั้น หากต้องการจัดการกับจุดสิ้นสุดอย่างแท้จริง จึงต้องป้อนรูปแบบที่เป็นไปได้ทั้งหมด ตัวอย่างเช่น อินสแตนซ์ในสถานที่ สามารถอยู่ในรูปแบบ <machine_name\named_instance, database_name> หรือ <IP address, custom port, database_name> ในกรณีนี้ คุณจะต้องใช้กฎการอนุญาตหรือบล็อกในทั้งสองรูปแบบสำหรับจุดสิ้นสุด ตัวอย่างเช่น

    • บล็อก WS12875676\Servername1,MktingDB
    • บล็อก 11.22.33.444,1401,MktingDB
  • ไม่มีตรรกะพิเศษในการจัดการที่อยู่ที่เกี่ยวข้อง เช่น localhost ดังนั้น หากคุณบล็อก *localhost* จะบล็อกผู้สร้างจากการใช้จุดสิ้นสุดใดๆ โดยการใช้ localhost เป็นส่วนหนึ่งของจุดสิ้นสุดเซิร์ฟเวอร์ SQL อย่างไรก็ตาม จะไม่หยุดพวกเขาจากการเข้าถึงจุดสิ้นสุดโดยใช้ที่อยู่ที่แน่นอน เว้นแต่ว่าที่อยู่ที่แน่นอนจะถูกบล็อกโดยผู้ดูแลระบบ

ต่อไปนี้คือตัวอย่าง:

  • อนุญาตเฉพาะอินสแตนซ์ Azure SQL Server:

    1. อนุญาต *.database.windows.net*
    2. ปฏิเสธ *
  • อนุญาตเฉพาะช่วง IP เฉพาะ: (โปรดทราบว่าที่อยู่ IP ที่ไม่ได้รับอนุญาตยังสามารถป้อนได้โดยผู้สร้างในรูปแบบ <machine_name\named_instance>)

    1. อนุญาต 11.22.33*
    2. ปฏิเสธ *

Dataverse

จุดสิ้นสุด Dataverse จะแสดงโดย รหัสองค์กร เช่น 7b97cd5c-ce38-4930-9497-eec2a95bf5f7 โปรดทราบว่าเฉพาะตัวเชื่อมต่อ Dataverse ปกติที่อยู่ในขอบเขตสำหรับการกรองปลายทางในขณะนี้ Dataverse ไดนามิก และ Dataverse ตัวเชื่อมต่อปัจจุบัน ไม่อยู่ในขอบเขต นอกจากนี้ อินสแตนซ์ในพื้นที่ของ Dataverse (เรียกอีกอย่างว่าสภาพแวดล้อมปัจจุบัน) ไม่สามารถบล็อกเพื่อใช้งานภายในสภาพแวดล้อมได้ ซึ่งหมายความว่าภายในสภาพแวดล้อมที่กำหนด ผู้สร้างสามารถเข้าถึง Dataverse สภาพแวดล้อมปัจจุบันได้ตลอดเวลา

ดังนั้น กฎที่กล่าวต่อไปนี้:

  1. อนุญาต 7b97cd5c-ce38-4930-9497-eec2a95bf5f7
  2. ปฏิเสธ *

จริงๆ แล้วหมายถึง:

  1. อนุญาต Dataverse current environment
  2. อนุญาต 7b97cd5c-ce38-4930-9497-eec2a95bf5f7
  3. ปฏิเสธ *

อนุญาต Dataverse current environment เป็นกฎข้อแรกโดยนัย ในรายการ Dataverse การกรองปลายทาง เสมอ สำหรับสภาพแวดล้อมที่กำหนด

ที่เก็บข้อมูล Azure Blob

จุดสิ้นสุด Azure Blob Storage จะแสดงด้วยชื่อบัญชีที่เก็บข้อมูล Azure

SMTP

จุดสิ้นสุด SMTP แสดงในรูปแบบ <SMTP server address, port number>

ต่อไปนี้เป็นสถานการณ์ตัวอย่าง:

  1. ปฏิเสธ smtp.gmail.com,587
  2. อนุญาต *

HTTP ที่มี Microsoft Entra ID, HTTP Webhook และตัวเชื่อมต่อ HTTP

จุดสิ้นสุดสำหรับตัวเชื่อมต่อ HTTP ทั้งหมด จะแสดงด้วยรูปแบบ URL การดำเนินการ รับทรัพยากรบนเว็บ ของ HTTP ที่มี Microsoft Entra ตัวเชื่อมต่อ อยู่นอกขอบเขต

ต่อไปนี้เป็นสถานการณ์ตัวอย่าง:

อนุญาตการเข้าถึงเฉพาะหน้าการสมัครใช้งาน Azure ภายใน https://management.azure.com/ เท่านั้น

  1. อนุญาต https://management.azure.com/subscriptions*
  2. ปฏิเสธ https://management.azure.com/*
  3. ปฏิเสธ *

การสนับสนุน PowerShell สำหรับการกรองของปลายทาง

กำหนดค่ากฎการกรองปลายทางสำหรับนโยบาย

ออบเจ็กต์ที่มีกฎการกรองปลายทางสำหรับนโยบาย จะอ้างถึงด้านล่างเป็นการกำหนดค่าตัวเชื่อมต่อ

ออบเจ็กต์การกำหนดค่าตัวเชื่อมต่อมีโครงสร้างดังต่อไปนี้:

$ConnectorConfigurations = @{ 
  connectorActionConfigurations = @() # used for connector action rules
  endpointConfigurations = @( # array – one entry per 
    @{  
      connectorId # string
      endpointRules = @( # array – one entry per rule 
        @{ 
          order # number 
          endpoint # string
          behavior # supported values: Allow/Deny
        }
      ) 
    }
  ) 
}

บันทึกย่อ

  • กฎสุดท้ายสำหรับแต่ละตัวเชื่อมต่อควรถูกนําไปใช้กับ URL * เสมอ เพื่อให้แน่ใจว่า URL นั้นถูกครอบคลุมด้วยกฎทั้งหมด
  • คุณสมบัติลำดับของกฎสำหรับตัวเชื่อมต่อแต่ละตัวควรเติมด้วยตัวเลข 1 ถึง N โดยที่ N คือจำนวนของกฎสำหรับตัวเชื่อมต่อนั้น

ดึงรายการการกำหนดค่าตัวเชื่อมต่อที่มีอยู่ สำหรับนโยบาย DLP

Get-PowerAppDlpPolicyConnectorConfigurations 

สร้างการกำหนดค่าของตัวเชื่อมต่อสำหรับนโยบาย DLP

New-PowerAppDlpPolicyConnectorConfigurations

อัปเดตการกำหนดค่าของตัวเชื่อมต่อสำหรับนโยบาย DLP

Set-PowerAppDlpPolicyConnectorConfigurations

ตัว อย่าง เช่น

เป้าหมาย:

สำหรับตัวเชื่อมต่อเซิร์ฟเวอร์ SQL:

  • ปฏิเสธฐานข้อมูล “testdatabase” ของเซิร์ฟเวอร์ "myservername.database.windows.net"
  • อนุญาตฐานข้อมูลอื่นทั้งหมดของเซิร์ฟเวอร์ "myservername.database.windows.net"
  • ปฏิเสธเซิร์ฟเวอร์อื่นทั้งหมด

สำหรับตัวเชื่อมต่อ SMTP:

  • อนุญาต Gmail (ที่อยู่เซิร์ฟเวอร์: smtp.gmail.com พอร์ต: 587)
  • ปฏิเสธที่อยู่อื่นทั้งหมด

สำหรับตัวเชื่อมต่อ HTTP:

  • อนุญาตจุดสิ้นสุด https://mywebsite.com/allowedPath1 และ https://mywebsite.com/allowedPath2
  • ปฏิเสธ URL อื่นทั้งหมด

หมายเหตุ

ใน cmdlet ต่อไปนี้ PolicyName หมายถึง GUID ที่ไม่ซ้ำกัน คุณสามารถดึงข้อมูล DLP GUID ได้โดยการเรียกใช้ cmdlet ของ Get-DlpPolicy

$ConnectorConfigurations = @{ 
  endpointConfigurations = @(
    @{  
      connectorId = "/providers/Microsoft.PowerApps/apis/shared_sql" 
      endpointRules = @(
        @{ 
          order = 1 
          endpoint = "myservername.database.windows.net,testdatabase" 
          behavior = "Deny"
        }, 
        @{ 
          order = 2 
          endpoint = "myservername.database.windows.net,*" 
          behavior = "Allow"
        }, 
        @{ 
          order = 3
          endpoint = "*" 
          behavior = "Deny"
        } 
      ) 
    }, 
    @{  
      connectorId = "/providers/Microsoft.PowerApps/apis/shared_smtp" 
      endpointRules = @(
        @{ 
          order = 1 
          endpoint = "smtp.gmail.com,587" 
          behavior = "Allow"
        }, 
        @{ 
          order = 2 
          endpoint = "*" 
          behavior = "Deny"
        } 
      ) 
    },
    @{  
      connectorId = "http" 
      endpointRules = @(
        @{ 
          order = 1 
          endpoint = "https://mywebsite.com/allowedPath1" 
          behavior = "Allow"
        }, 
        @{ 
          order = 2
          endpoint = "https://mywebsite.com/allowedPath2" 
          behavior = "Allow"
        }, 
        @{ 
          order = 3
          endpoint = "*" 
          behavior = "Deny"
        } 
      ) 
    } 
  ) 
}
New-PowerAppDlpPolicyConnectorConfigurations -TenantId $TenantId -PolicyName $PolicyName -NewDlpPolicyConnectorConfigurations $ConnectorConfigurations