6.2. 플랫폼 게이트웨이
플랫폼 게이트웨이는 Ansible Automation Platform에 대한 인증 및 권한 부여를 처리하는 서비스입니다. 플랫폼에 단일 수신을 제공하고 플랫폼의 사용자 인터페이스를 제공합니다.
메뉴에서 플랫폼 게이트웨이 , 보안, 세션, 플랫폼 보안 , 사용자 지정 로그인 및 기타 설정을 구성할 수 있습니다.
프로세스
-
탐색 패널에서
. - 플랫폼 게이트웨이 설정 페이지가 표시됩니다.
- 옵션을 구성하려면 클릭합니다.
다음 플랫폼 게이트웨이 옵션을 구성할 수 있습니다.
- 플랫폼 게이트웨이 프록시 URL: 플랫폼 게이트웨이 프록시 계층에 대한 URL입니다.
- 플랫폼 게이트웨이 프록시 URL은 cert: 플랫폼 게이트웨이 프록시 계층에 대한 인증서를 무시합니다.
- 클릭하여 변경 사항을 저장하거나 다른 플랫폼 옵션을 구성합니다.
6.2.1. 플랫폼 보안 구성 링크 복사링크가 클립보드에 복사되었습니다!
플랫폼 게이트웨이 설정 페이지에서 플랫폼 보안 설정을 구성할 수 있습니다.
프로세스
-
탐색 패널에서
. - 플랫폼 게이트웨이 설정 페이지가 표시됩니다.
- 옵션을 구성하려면 을 클릭합니다.
다음 보안 설정을 구성할 수 있습니다.
- admin이 insecure를 설정하도록 허용: 로컬 사용자 계정을 편집할 때 슈퍼유저 계정이 안전하지 않은 암호를 저장할 수 있는지 여부입니다.
Gateway Basic auth enabled: 플랫폼 게이트웨이 API에 대한 기본 인증을 활성화합니다.
이 기능을 끄면 모든 기본 인증(로컬 사용자)이 방지되므로 고객은 이를 수행하기 전에 대체 인증 메커니즘이 올바르게 구성되었는지 확인해야 합니다.
로컬 인증만 구성된 상태에서 전원을 끄면 UI에 대한 모든 액세스도 방지할 수 있습니다.
소셜 인증 사용자 이름은 전체 이메일 입니다. 전체 이름 대신 사용자 이름으로 전체 이메일을 사용하도록 이 설정을 활성화하여 소셜 인증을 경고합니다.
게이트웨이 토큰 이름: 프록시에서 백엔드 서비스로 푸시할 헤더 이름입니다.
주의이 이름이 변경된 경우 이를 보완하려면 백엔드를 업데이트해야 합니다.
- 게이트웨이 액세스 토큰 만료: 액세스 토큰이 유효한 기간입니다.
JWT 개인 키: 백엔드 서비스로 전송된 JWT 토큰을 암호화하는 데 사용되는 개인 키입니다.
개인 RSA 키여야 하며 설치 시 자동으로 생성해야 합니다.
참고키를 회전할 때는 JWT 키가 재설정될 때까지 현재 세션이 실패하게 되므로 주의해야 합니다.
(읽기 전용) Jwt 공개 키: 백엔드 서비스로 전송된 JWT 토큰을 암호화하는 데 사용되는 개인 키입니다.
개인 RSA 키여야 하며 설치 시 자동으로 생성해야 합니다.
참고이 키를 사용하는 방법에 대한 다른 서비스 설명서를 참조하십시오.
- 클릭하여 변경 사항을 저장하거나 사용 가능한 다른 플랫폼 옵션을 구성합니다.
6.2.2. 플랫폼 세션 구성 링크 복사링크가 클립보드에 복사되었습니다!
플랫폼 게이트웨이 설정 페이지에서 플랫폼 세션 설정을 구성할 수 있습니다.
프로세스
-
탐색 패널에서
. - 플랫폼 게이트웨이 설정 페이지가 표시됩니다.
- 옵션을 구성하려면 클릭합니다.
- 세션 쿠키 기간 필드에 세션이 만료되기 전의 시간(초)을 입력합니다.
- 클릭하여 변경 사항을 저장하거나 다른 플랫폼 옵션을 구성합니다.
6.2.3. 플랫폼 암호 보안 정책 구성 링크 복사링크가 클립보드에 복사되었습니다!
플랫폼 게이트웨이 설정 페이지에서 암호 보안 정책을 구성할 수 있습니다.
프로세스
-
탐색 패널에서
. - 플랫폼 게이트웨이 설정 페이지가 표시됩니다.
- 옵션을 구성하려면 클릭합니다.
다음 암호 보안 옵션을 구성할 수 있습니다.
- 암호 최소 대문자: 로컬 암호에 있는 대문자 수입니다.
- 암호 최소 길이: 로컬 암호의 최소 길이입니다.
- 암호 최소 숫자: 로컬 암호에 숫자 문자 수입니다.
- 암호 최소 특수 문자: 로컬 암호에 필요한 특수 문자 수입니다.
- 클릭하여 변경 사항을 저장하거나 다른 플랫폼 옵션을 구성합니다.
6.2.4. 플랫폼 게이트웨이 데이터베이스 암호 암호화 링크 복사링크가 클립보드에 복사되었습니다!
시스템 관리자는 플랫폼 게이트웨이에서 사용하는 데이터베이스 암호를 암호화하고 구성 파일에 직접 적용하여 SECRET_KEY 로드 순서와 관련된 문제를 해결할 수 있습니다.
플랫폼 게이트웨이는 암호 해독 함수(ansible_encryption.decrypt_string())를 호출하기 전에 SECRET_KEY 를 메모리에 완전히 로드해야 하는 Django 프레임워크를 사용합니다. 키가 로드되기 전에 암호 해독 호출이 실행되면 프로세스가 실패하여 플랫폼 게이트웨이가 데이터베이스에 액세스하지 못하도록 합니다.
프로세스
- 플랫폼 게이트웨이 노드의 명령줄에 액세스합니다.
aap-gateway-manage shell_plus명령을 사용하여 대화형 Django 쉘을 엽니다.aap-gateway-manage shell_plus쉘에서 다음 명령을 실행하여 암호화 라이브러리를 가져오고 암호를 설정한 다음 암호화된 문자열을 생성합니다.
>>> from ansible_base.lib.utils.encryption import ansible_encryption >>> value = 'your-database-password' # REPLACE with your actual password >>> encrypted_value = ansible_encryption.encrypt_string(value) >>> print(encrypted_value)-
$encrypted$로 시작하는 전체 출력 문자열을 복사합니다. 암호화된 암호입니다. -
quit()를 사용하여 쉘을 종료합니다. 편집할 플랫폼 게이트웨이 구성 파일을 엽니다.
vi /etc/ansible-automation-platform/gateway/settings.py-
DATABASES변수를 정의하는 섹션을 찾습니다.DATABASES사전을 정의하기 전에SECRET_KEY를 로드하려면 코드를 삽입해야 합니다. 강조 표시된 코드를 포함하도록 파일을 업데이트하여
PASSWORD키의 자리 표시자 텍스트만 복사한 암호화된 문자열로 바꿉니다.from ansible_base.lib.utils.encryption import ansible_encryption from django.conf import settings # ... other configuration settings ... # The GATEWAY_SECRET_KEY_FILE is typically defined earlier in settings. # The SECRET_KEY must be loaded before the decryption function is called. with open(GATEWAY_SECRET_KEY_FILE, 'rb') as f: settings.SECRET_KEY = f.read().strip() DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql', 'HOST': '10.0.108.77', # Example host, use your value # ... other database settings ... 'PASSWORD': ansible_encryption.decrypt_string('$encrypted$UTF8$AESCBC$Z0FBQUFBQnBBNU... <YOUR_ENCRYPTED_STRING>...QWdPUHM9'), # ... other database settings ... 'PORT': '5432', # Example port, use your value } }- 파일을 저장하고 닫습니다.
플랫폼 게이트웨이를 다시 시작하여 새로 암호화된 구성을 로드합니다.
sudo systemctl restart aap-gateway
검증
플랫폼 게이트웨이가 오류 없이 시작되고 데이터베이스 연결을 나타내는 플랫폼 UI에 액세스할 수 있는지 확인합니다.
6.2.5. 추가 플랫폼 옵션 구성 링크 복사링크가 클립보드에 복사되었습니다!
플랫폼 게이트웨이 설정 페이지에서 추가 플랫폼 옵션을 구성할 수 있습니다.
프로세스
-
탐색 패널에서
. - 플랫폼 게이트웨이 설정 페이지가 표시됩니다.
- 클릭합니다.
다음과 같은 기타 설정을 구성할 수 있습니다.
JWT 만료 버퍼(초 ): 캐시에서 취소할 JWT 토큰 만료 시간(초)입니다.
인증이 발생하면 사용자에 대해 JWT 토큰이 생성되고 해당 토큰이 캐시됩니다. 자동화 컨트롤러 또는 이벤트 기반 Ansible과 같은 서비스에 후속 호출이 발생하면 토큰이 캐시에서 가져와 서비스로 전송됩니다. 토큰 토큰과 캐시 모두 만료 시간이 있습니다. 캐시에서 토큰이 만료되면 인증 프로세스에서 시도하면 401 오류(Unauthorized)가 발생합니다. 이 설정은 토큰이 만료되기 전에 캐시에서 JWT 토큰을 제거하여 Red Hat Ansible Automation Platform에 버퍼를 제공합니다. 캐시에서 토큰이 취소되면 새 만료가 있는 새 토큰이 생성되고 사용자를 위해 캐시됩니다. 결과적으로 캐시에서 만료된 토큰은 사용되지 않습니다. 이 설정의 기본값은 2초입니다. 플랫폼 게이트웨이와 서비스 간에 대기 시간이 많이 있고 401 응답을 관찰하면 401 응답 수를 줄여야 합니다.
- 상태 끝점 백엔드 시간 초과 시간(초) : 백엔드에 연결을 시도할 때 상태 끝점이 대기하는 시간(초)입니다.
- 상태 끝점 백엔드 확인: 개별 노드를 호출할 때 서비스의 SSL 인증서가 확인되는지 여부를 지정합니다.
- request timeout: 프록시가 시간 초과를 보고하고 504를 생성하는 데 걸리는 시간을 지정합니다.
- *외부 사용자가 OAuth2 토큰을 생성할 수 있도록 허용: 보안상의 이유로 LDAP, SAML, SSO, Radius 등과 같은 외부 인증 공급자의 사용자는 OAuth2 토큰을 생성할 수 없습니다. 이 동작을 변경하려면 이 설정을 활성화합니다. 이 설정이 꺼지면 기존 토큰은 삭제되지 않습니다.
- 클릭하여 변경 사항을 저장하거나 다른 플랫폼 옵션을 구성합니다.