

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Mengkonfigurasi domain khusus untuk portal Anda
<a name="configure-custom-domains"></a>

## Cara kerjanya
<a name="custom-domains-how-it-works"></a>

Saat Anda mengonfigurasi domain khusus:
+ Anda membuat dan mengonfigurasi proxy terbalik dengan domain kustom Anda untuk merutekan lalu lintas ke titik akhir portal.
+ Pengguna mengakses portal Anda melalui domain khusus Anda, bukan titik akhir portal default.
+ Sertifikat SSL memastikan koneksi aman selama proses berlangsung.

## Prasyarat
<a name="custom-domains-prerequisites"></a>

Sebelum menyiapkan domain khusus, pastikan Anda memiliki:
+ Nama domain yang Anda kelola melalui penyedia layanan DNS seperti Amazon Route53.
+ Portal Browser WorkSpaces Aman. Untuk informasi selengkapnya tentang membuat portal, lihat[Membuat portal web untuk Amazon WorkSpaces Secure Browser](getting-started-step1.md).
+ Pastikan Anda memiliki izin yang diperlukan untuk mengelola AWS Certificate Manager CloudFront, dan konfigurasi DNS.

**penting**  
Pengguna harus mengaktifkan cookie pihak ketiga untuk domain khusus di browser mereka untuk memastikan fungsionalitas portal yang tepat.  
Pastikan Anda memiliki dan mengelola domain kustom dan catatan DNS-nya dengan benar untuk menjaga keamanan dan fungsionalitas portal Anda.

**catatan**  
Untuk mengaktifkan ekstensi masuk tunggal untuk domain khusus, pengguna harus menginstal ekstensi di browser mereka dengan versi yang lebih lambat dari 1.0.2505.6608.  
Pengguna diminta untuk menginstal ekstensi ketika mereka masuk ke portal. Untuk detail tentang pengalaman pengguna dengan ekstensi, lihat[Ekstensi masuk tunggal untuk Amazon WorkSpaces Secure Browser](extension.md).

## Memulai
<a name="custom-domains-getting-started"></a>

Anda dapat mengonfigurasi domain kustom Anda sebagai atribut pengaturan portal baik saat membuat portal baru atau saat mengedit portal yang ada. Ini dapat dilakukan dengan menggunakan perintah AWS Console, SDK, CloudFormation atau AWS CLI.

Sebaiknya siapkan CloudFront distribusi Amazon sebagai proxy terbalik yang merutekan lalu lintas dari domain kustom Anda ke titik akhir portal Browser WorkSpaces Aman.

**catatan**  
Meskipun Amazon CloudFront direkomendasikan sebagai solusi proxy terbalik, Anda dapat menggunakan konfigurasi proxy terbalik alternatif. Pastikan Anda memenuhi pengaturan konfigurasi asal dan cache yang diperlukan seperti yang dijelaskan dalam langkah-langkah CloudFront penyiapan Amazon.

## Menyiapkan CloudFront sebagai proxy terbalik
<a name="custom-domains-getting-started"></a>

Untuk menyelesaikan pengaturan proxy terbalik, Anda perlu:
+ Sertifikat SSL melalui AWS Certificate Manager (ACM)
+  CloudFront Distribusi Amazon
+ Catatan DNS
+ Portal dikonfigurasi dengan domain kustom Anda

**Sertifikat SSL**

Jika Anda belum memilikinya, ikuti langkah-langkah berikut untuk memintanya melalui ACM:

1. Arahkan ke konsol ACM di[https://console.aws.amazon.com/acm](https://console.aws.amazon.com/acm).
**penting**  
Gunakan Wilayah AS Timur (Virginia N.), karena CloudFront memerlukan sertifikat untuk disimpan di sana.

1. Minta sertifikat:
   + Untuk pengguna ACM baru: Pilih **Memulai** di bawah Sertifikat **ketentuan**
   + Untuk pengguna ACM yang ada: Pilih **Minta sertifikat**

1. Pilih **Minta sertifikat publik** dan kemudian pilih **Minta sertifikat**.
**catatan**  
Anda juga dapat mengimpor sertifikat yang ada. Untuk informasi selengkapnya, lihat [Mengimpor sertifikat ke ACM](https://docs.aws.amazon.com/acm/latest/userguide/import-certificate.html) di Panduan Pengguna *ACM*.

1. Masukkan nama domain utama Anda (misalnya,**myportal.example.com**).

1. Pilih metode validasi:
   + **Validasi DNS** (Direkomendasikan untuk pengguna Route 53) - Memungkinkan pembuatan set rekaman otomatis di zona yang dihosting. Untuk informasi selengkapnya, lihat [Validasi DNS](https://docs.aws.amazon.com/acm/latest/userguide/gs-acm-validate-dns.html) di Panduan Pengguna *ACM*.
   + **Validasi Email** — Untuk informasi selengkapnya, lihat [Validasi email](https://docs.aws.amazon.com/acm/latest/userguide/gs-acm-validate-email.html) di Panduan Pengguna *ACM*.

1. Tinjau pengaturan Anda dan pilih **Konfirmasi dan minta**.

**CloudFront distribusi**

Buat CloudFront distribusi ke permintaan proxy dari domain kustom Anda ke titik akhir portal.

1. Arahkan ke CloudFront konsol di[https://console.aws.amazon.com/cloudfront](https://console.aws.amazon.com/cloudfront).

1. Pilih **Buat Distribusi**.
   + **Nama distribusi**: Masukkan nama untuk distribusi
   + **Jenis distribusi**: Situs web atau aplikasi tunggal
**catatan**  
Jika domain kustom Anda dikelola di Route 53 di akun AWS yang sama, CloudFront dapat secara otomatis mengelola DNS Anda untuk Anda. Masukkan domain khusus Anda dan klik “Periksa domain”. Jika Anda memiliki domain dari penyedia DNS yang berbeda, lewati langkah ini dan konfigurasikan domain Anda nanti. 

1. Konfigurasikan pengaturan asal:
   + **Tipe Asal**: Lain
   + **Asal Kustom**: Masukkan titik akhir *<portalId>* portal .workspaces-web.com
   + **Jalur Asal**: Biarkan kosong (default)

1. Sesuaikan pengaturan asal:
   + Tambahkan header kustom
**penting**  
Akses portal melalui domain khusus hanya akan berfungsi jika header ini ada dalam permintaan proksi. Pastikan nama dan nilai header ditentukan persis seperti yang disebutkan.
     + **Nama Header**: workspacessecurebrowser-custom-domain
     + **Nilai**: Domain kustom Anda (misalnya,**myportal.example.com**)
   + **Protokol**: HTTPS saja
   + **Port HTTPS**: 443 (tetap default)
   + **Protokol SSL Asli Minimum**: TLSv1 .2 (default)
   + **Jenis alamat IP asal**: IPv4 hanya (Amazon WorkSpaces Secure Browser tidak mendukung IPv6 pada saat menulis panduan administrasi ini.)

1. Sesuaikan pengaturan cache:
   + **Kebijakan protokol penampil**: Alihkan HTTP ke HTTPS
   + **Metode HTTP yang diizinkan**: GET, HEAD, OPTIONS, PUT, POST, PATCH, DELETE
   + **Kebijakan Cache**: CachingDisabled
   + **Kebijakan permintaan asal**: AllViewerExceptHostHeader
**penting**  
Akses portal melalui domain khusus hanya akan berfungsi jika kebijakan permintaan asal disetel ke AllViewerExceptHostHeader. Seperti namanya, kebijakan ini hanya menyaring header host dari header permintaan dan meneruskan semua header yang tersisa ke asal.

1. Anda dapat mengonfigurasi WAF jika Anda mau tetapi tidak diperlukan untuk tujuan pengaturan ini.

1. Di Dapatkan sertifikat TLS, pilih Sertifikat TLS yang dibuat di Langkah 1.

1. Tinjau pengaturan dan pilih **Buat Distribusi**.

**Catatan DNS**

Cloudfront dapat memperbarui catatan DNS Anda di Route 53 untuk merutekan lalu lintas dari domain yang ditentukan ke distribusi yang dibuat di Langkah 2, jika zona yang dihosting berada di akun AWS yang sama.

1. Arahkan ke CloudFront pengaturan

1. Klik “Rute domain ke CloudFront” 

1. Klik “Siapkan perutean secara otomatis” 

Jika Anda telah mengonfigurasi DNS untuk domain kustom di penyedia layanan lain atau akun AWS lain, konfigurasikan penyedia DNS Anda untuk merutekan lalu lintas domain Anda ke distribusi. Langkah-langkah berikut menjelaskan cara melakukannya menggunakan Route 53.

1. Buka konsol Amazon Route 53 di[https://console.aws.amazon.com/route53](https://console.aws.amazon.com/route53).

1. Akses manajemen DNS:
   + Jika Anda baru menggunakan Route 53 dengan AWS akun ini, halaman ikhtisar Amazon Route 53 akan terbuka. Di bawah manajemen DNS, pilih **Mulai sekarang**.
   + Jika Anda telah menggunakan Route 53 sebelumnya dengan AWS akun ini, lanjutkan ke langkah berikutnya.

1. Pada panel navigasi, pilih **Zona yang di-hosting**.

1. Buat zona yang dihosting jika Anda belum memilikinya:
   + Untuk merutekan lalu lintas internet ke sumber daya Anda, lihat [Membuat Zona Hosting Publik](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/CreatingHostedZone.html) di *Panduan Pengembang Amazon Route 53*.
   + Untuk merutekan lalu lintas di VPC, lihat [Membuat Zona Dihosting Pribadi di Panduan](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/hosted-zone-private-creating.html) *Pengembang Amazon Route 53*.

1. Pada halaman **Zona yang Dihosting**, pilih nama zona yang dihosting yang ingin Anda kelola.

1. Pilih **Buat Set Catatan**.

1. Buat entri untuk domain Anda (misalnya,**myportal.example.com**):
   + **Tipe**: A — IPv4 alamat
   + **Alias**: Ya
   + **Alias Target: URL** CloudFront Distribusi

   Simpan nilai default untuk semua pengaturan lainnya.

**catatan**  
Jika Anda tidak menggunakan Route 53 untuk mengelola DNS untuk domain Anda, gunakan penyedia layanan DNS Anda dan tambahkan entri DNS yang mengarah ke domain Anda ke URL distribusi Anda. CloudFront 

**Atau, Anda dapat menggunakan CloudFormation template berikut untuk membuat CloudFront distribusi Anda:**

 CloudFormation Template ini secara otomatis membuat CloudFront distribusi, mengonfigurasi pengaturan proxy terbalik, dan secara opsional membuat catatan DNS Route53:

**Example workspaces-web-custom-domain-template.yaml**  

```
AWSTemplateFormatVersion: '2010-09-09'
Description: 'CloudFront Distribution for custom domain configuration with existing AWS WorkSpaces Secure Browser Portal'

Parameters:
  PortalEndpoint:
    Type: String
    Description: 'The endpoint of your existing WorkSpaces Web Portal (e.g., abc123.workspaces-web.com)'
    AllowedPattern: '^[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)?\.workspaces-web\.com$'
    ConstraintDescription: 'Must be a valid WorkSpaces Web portal endpoint'
  
  CustomDomainName:
    Type: String
    Description: 'Custom domain name for the portal (e.g., myportal.example.com)'
    AllowedPattern: '^([a-zA-Z0-9]?((?!-)([A-Za-z0-9-]*[A-Za-z0-9])\.)+[a-zA-Z0-9]+)$'
    ConstraintDescription: 'Must be a valid domain name'
  
  CertificateArn:
    Type: String
    Description: 'ARN of the validated SSL certificate in ACM (must be in us-east-1 region for CloudFront)'
    AllowedPattern: 'arn:aws:acm:us-east-1:[0-9]{12}:certificate/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}'
    ConstraintDescription: 'Must be a valid ACM certificate ARN in us-east-1 region'
  
  CreateRoute53Record:
    Type: String
    Description: 'Create Route53 record for custom domain (requires existing hosted zone)'
    Default: 'No'
    AllowedValues:
      - 'Yes'
      - 'No'
  
  HostedZoneId:
    Type: String
    Description: 'Route53 Hosted Zone ID for the custom domain (required if creating Route53 record)'
    Default: ''

Conditions:
  ShouldCreateRoute53Record: !And
    - !Equals [!Ref CreateRoute53Record, 'Yes']
    - !Not [!Equals [!Ref HostedZoneId, '']]

Resources:
  # CloudFront Distribution
  CloudFrontDistribution:
    Type: AWS::CloudFront::Distribution
    Properties:
      DistributionConfig:
        Aliases:
          - !Ref CustomDomainName
        Comment: !Sub 'CloudFront distribution for WorkSpaces Web Portal - ${CustomDomainName}'
        Enabled: true
        HttpVersion: http2
        IPV6Enabled: false  # WorkSpaces Secure Browser does not support IPv6
        PriceClass: PriceClass_All
        
        # Origin Configuration
        Origins:
          - Id: WorkSpacesWebOrigin
            DomainName: !Ref PortalEndpoint
            CustomOriginConfig:
              HTTPSPort: 443
              OriginProtocolPolicy: https-only
              OriginSSLProtocols:
                - TLSv1.2
            OriginCustomHeaders:
              - HeaderName: workspacessecurebrowser-custom-domain
                HeaderValue: !Ref CustomDomainName
        
        # Default Cache Behavior
        DefaultCacheBehavior:
          TargetOriginId: WorkSpacesWebOrigin
          ViewerProtocolPolicy: https-only
          AllowedMethods:
            - GET
            - HEAD
            - OPTIONS
            - PUT
            - POST
            - PATCH
            - DELETE
          Compress: false
          # Cache Policy: CachingDisabled (using predefined managed policy)
          CachePolicyId: 4135ea2d-6df8-44a3-9df3-4b5a84be39ad
          # Origin Request Policy: AllViewerExceptHostHeader (using predefined managed policy)
          OriginRequestPolicyId: b689b0a8-53d0-40ab-baf2-68738e2966ac
        
        # SSL Configuration
        ViewerCertificate:
          AcmCertificateArn: !Ref CertificateArn
          SslSupportMethod: sni-only
          MinimumProtocolVersion: TLSv1.2_2021
      
      Tags:
        - Key: Name
          Value: !Sub '${AWS::StackName}-cloudfront'

  # Route 53 Record (optional - requires hosted zone to exist)
  Route53Record:
    Type: AWS::Route53::RecordSet
    Condition: ShouldCreateRoute53Record
    Properties:
      HostedZoneId: !Ref HostedZoneId
      Name: !Ref CustomDomainName
      Type: A
      AliasTarget:
        DNSName: !GetAtt CloudFrontDistribution.DomainName
        HostedZoneId: Z2FDTNDATAQYW2  # CloudFront Hosted Zone ID
        EvaluateTargetHealth: false

Outputs:
  PortalEndpoint:
    Description: 'WorkSpaces Web Portal endpoint used as origin'
    Value: !Ref PortalEndpoint
    Export:
      Name: !Sub '${AWS::StackName}-PortalEndpoint'
  
  CustomDomainEndpoint:
    Description: 'Custom domain endpoint for the portal'
    Value: !Sub 'https://${CustomDomainName}'
    Export:
      Name: !Sub '${AWS::StackName}-CustomDomainEndpoint'
  
  CloudFrontDistributionId:
    Description: 'CloudFront Distribution ID'
    Value: !Ref CloudFrontDistribution
    Export:
      Name: !Sub '${AWS::StackName}-CloudFrontDistributionId'
  
  CloudFrontDomainName:
    Description: 'CloudFront Distribution Domain Name'
    Value: !GetAtt CloudFrontDistribution.DomainName
    Export:
      Name: !Sub '${AWS::StackName}-CloudFrontDomainName'
  
  CertificateArn:
    Description: 'SSL Certificate ARN used by CloudFront'
    Value: !Ref CertificateArn
    Export:
      Name: !Sub '${AWS::StackName}-CertificateArn'

Metadata:
  AWS::CloudFormation::Interface:
    ParameterGroups:
      - Label:
          default: "Existing Portal Configuration"
        Parameters:
          - PortalEndpoint
      - Label:
          default: "Custom Domain Configuration"
        Parameters:
          - CustomDomainName
          - CertificateArn
          - CreateRoute53Record
          - HostedZoneId
    ParameterLabels:
      PortalEndpoint:
        default: "Portal Endpoint"
      CustomDomainName:
        default: "Custom Domain Name"
      CertificateArn:
        default: "SSL Certificate ARN"
      CreateRoute53Record:
        default: "Create Route53 Record"
      HostedZoneId:
        default: "Hosted Zone ID"
```

Untuk menggunakan template ini:

1. Simpan template di atas sebagai `workspaces-web-custom-domain-template.yaml`

1. Terapkan menggunakan AWS Konsol, AWS CLI, AWS atau SDK dengan nilai parameter spesifik Anda

1. Setelah penerapan, konfigurasikan portal Anda dengan domain kustom seperti yang dijelaskan pada Langkah 4 di bawah

**Konfigurasi portal**

Daftarkan domain kustom Anda sebagai atribut pengaturan portal menggunakan perintah AWS CLI AWS Console, UpdatePortal API, atau update-portal.

1. Buka konsol Browser WorkSpaces Aman di[https://console.aws.amazon.com/workspaces-web/home](https://console.aws.amazon.com/workspaces-web/home).

1. Di panel navigasi, pilih **Portal Web**.

1. Pilih portal web yang ingin Anda konfigurasikan dan pilih **Edit**.

1. Di pengaturan portal, tambahkan domain khusus Anda.

1. Simpan konfigurasi portal.

**Uji konfigurasi Anda**

Untuk menguji konfigurasi Anda, ikuti langkah-langkah berikut:

1. Buka browser web dan arahkan ke URL untuk domain kustom Anda (misalnya,**https://myportal.example.com**).

1. Jika semuanya diatur dengan benar, Anda akan melihat halaman masuk untuk portal Anda.

1. Selanjutnya, masukkan URL portal di browser Anda, Anda harus diarahkan ke domain khusus setelah masuk ke IDP Anda.

1. Terakhir, masuk ke IDP Anda dan klik ubin aplikasi untuk portal Anda. Anda harus diarahkan ke domain khusus.