Cassandra 인증 사용 설정

기본적으로 Cassandra는 인증이 사용 설정되지 않은 상태로 설치됩니다. 즉, 누구나 Cassandra에 액세스할 수 있습니다. Edge를 설치한 후 또는 설치 프로세스의 일부로 인증을 사용 설정할 수 있습니다.

Cassandra CREATE/ALTER/DROP USER 문을 사용하여 사용자를 추가, 삭제, 수정할 수 있습니다. 자세한 내용은 Cassandra SQL 셸 명령어를 참고하세요.

  • Edge 구성요소를 설치하거나 업그레이드하는 데 사용하는 구성 파일에서 작동하는 Cassandra 사용자 이름과 비밀번호를 업데이트해야 합니다. 이렇게 하면 에지 작업 중에 발생하는 중단을 없애거나 최소화할 수 있습니다.
  • 설치 중에 Cassandra 인증 사용 설정

    설치 시 Cassandra 인증을 사용 설정할 수 있습니다.

    설치 시 Cassandra 인증을 사용 설정하려면 모든 Cassandra 노드의 구성 파일에 CASS_AUTH 속성을 포함합니다.

    CASS_AUTH=y # The default value is n.

    다음 Edge 구성요소가 Cassandra에 액세스합니다.

    • 관리 서버
    • 메시지 프로세서
    • 라우터
    • Qpid 서버
    • Postgres 서버

    이러한 구성요소를 설치할 때는 구성 파일에서 사용자 이름과 비밀번호를 설정해야 합니다.

    CASS_USERNAME=cassandra_username
    CASS_PASSWORD=cassandra_password

    Cassandra를 설치한 후 Cassandra 사용자 인증 정보를 변경할 수 있습니다. 하지만 관리 서버, 메시지 프로세서, 라우터, Qpid 서버 또는 Postgres 서버를 이미 설치한 경우 새 사용자 인증 정보를 사용하도록 이러한 구성요소도 업데이트해야 합니다.

    Cassandra를 설치한 후 Cassandra 사용자 인증 정보를 변경하려면 다음 단계를 따르세요.

    1. cqlsh 도구와 기본 사용자 인증 정보를 사용하여 Cassandra 노드 중 하나에 로그인합니다. 한 노드에서만 비밀번호를 변경하면 링의 모든 Cassandra 노드로 브로드캐스트됩니다.
      /opt/apigee/apigee-cassandra/bin/cqlsh cassIP 9042 -u cassandra_username -p cassandra_password

      각 항목의 의미는 다음과 같습니다.

      1. cassIP는 Cassandra 노드의 IP 주소입니다.
      2. 9042는 기본 Cassandra 포트입니다.
    2. cqlsh> 프롬프트에서 다음 명령어를 실행하여 비밀번호를 업데이트합니다.
      ALTER USER cassandra_username/var> WITH PASSWORD 'new_cassandra_password';
    3. 다음 예와 같이 cqlsh 도구를 종료합니다.
      exit
    4. 관리 서버, 메시지 프로세서, 라우터, Qpid 서버 또는 Postgres 서버를 아직 설치하지 않은 경우 구성 파일에서 다음 속성을 설정한 다음 해당 구성요소를 설치합니다.
      CASS_USERNAME=cassandra_username
      CASS_PASSWORD=new_cassandra_password
    5. 관리 서버, 메시지 프로세서, 라우터, Qpid 서버 또는 Postgres 서버를 이미 설치한 경우 새 비밀번호를 사용하도록 이러한 구성요소를 업데이트하는 절차는 Edge 비밀번호 재설정을 참고하세요.

    설치 후 Cassandra 인증 사용 설정

    설치 후 인증을 사용 설정하려면 다음 단계를 따르세요.

    Cassandra에 연결되는 Edge 구성요소 업데이트

    다음 절차에 따라 Cassandra와 통신하는 모든 Edge 구성요소를 새 사용자 인증 정보로 업데이트합니다. Cassandra 사용자 인증 정보를 실제로 업데이트하기 전에 이 단계를 실행합니다.

    1. 관리 서버 노드에서 다음 명령어를 실행합니다.
      /opt/apigee/apigee-service/bin/apigee-service edge-management-server
        store_cassandra_credentials -u cassandra_username -p cassandra_password

      원하는 경우 새 사용자 이름과 비밀번호가 포함된 파일을 명령어에 전달할 수 있습니다.

      apigee-service edge-management-server store_cassandra_credentials  -f configFile

      여기서 configFile에는 다음이 포함됩니다.

      CASS_USERNAME=cassandra_username # Default is cassandra
      CASS_PASSWORD='cassandra_password' # Default is cassandra; wrap in single quotes if it includes special chars

      이 명령어는 관리 서버를 자동으로 다시 시작합니다.

    2. 다음 서비스 각각에 대해 1단계를 반복합니다.
      • 모든 메시지 프로세서
      • 모든 라우터
      • 모든 Qpid 서버 (edge-qpid-server)
      • Postgres 서버 (edge-postgres-server)

      각 서비스에 대해 1단계를 반복할 때 위 명령어에서 edge-management-server를 적절한 서비스 이름으로 바꿉니다. 예를 들어 라우터 서비스의 단계를 실행할 때는 다음 명령어를 사용합니다.

      /opt/apigee/apigee-service/bin/apigee-service edge-router
        store_cassandra_credentials -u cassandra -p cassandra

    인증 사용 설정

    다음 절차에 따라 Cassandra 인증을 사용 설정하고 사용자 이름과 비밀번호를 설정합니다.

    1. 아래 콘텐츠로 무음 구성 파일을 만듭니다.
      # Specify IP address or DNS name of cassandra node
      IP1=192.168.1.1
      IP2=192.168.1.2
      IP3=192.168.1.3
      # Must resolve to IP address or DNS name of host
      HOSTIP=$(hostname -i)
      # Set to ‘y’ to enable Cassandra authentication.
      CASS_AUTH=y # Possible values are ‘y/n’
      # Cassandra username. If it does not exist, this user would be created as a SUPERUSER
      CASS_USERNAME=cassandra_username # Default value is cassandra - don't use for production
      # Cassandra Password. If CASS_USERNAME does not exist, create SUPERUSER with this as password
      CASS_PASSWORD=cassandra_password # Default value is cassandra - don't use for production
      # Space-separated IP/DNS names of the Cassandra hosts
      CASS_HOSTS="$IP1:1,1 $IP2:1,1 $IP3:1,1"
      
      # Username of an existing C* user. Only needed if you have disabled or changed details of the default cassandra user(‘cassandra’)
      CASS_EXISTING_USERNAME=existing_cassandra_username
      # Password of an existing C* user. Only needed if you have disabled or change password of the default cassandra user(‘cassandra’)
      CASS_EXISTING_PASSWORD=existing_cassandra_password
      # Cassandra port
      CASS_PORT=9042 # The default port is 9042.
    2. 첫 번째 Cassandra 노드에 로그인하고 다음 명령어를 실행합니다.

      apigee-service apigee-cassandra enable_cassandra_authentication -f CONFIG

      원하는 경우 다음 예와 같이 속성을 명령어 인수로 스크립트에 전달할 수 있습니다.

      CASS_AUTH=y HOSTIP=$(hostname -i) CASS_PORT=9042 CASS_EXISTING_USERNAME=existing_cassandra_username CASS_EXISTING_PASSWORD=existing_cassandra_password CASS_USERNAME=cassandra_username CASS_PASSWORD=cassandra_password  CASS_HOSTS="192.168.1.1:1,1 192.168.1.2:1,1 192.168.1.3:1,1" apigee-service apigee-cassandra enable_cassandra_authentication

      참고:

      • 기본 Cassandra 사용자 인증 정보의 경우 위 명령어는 Cassandra 인증을 사용 설정하고 Cassandra를 다시 시작합니다.
      • 기본이 아닌 사용자 인증 정보의 경우 이 명령어는 복제 인수도 변경하고, 슈퍼 사용자를 만들고, system_auth keyspace에서 수리를 실행합니다.
    3. 모든 Cassandra 노드에서 1단계와 2단계를 반복합니다.