관리형 Kafka ACL에 ACL 항목 추가

전체 항목 목록을 대체하지 않고 관리형 Kafka ACL 리소스에 ACL 항목이라는 단일 새 권한 규칙을 추가할 수 있습니다. 이는 특정 권한을 점진적으로 부여하는 데 유용합니다.

이 작업은 단일 Apache Kafka ACL 바인딩을 만드는 것과 유사합니다. ACL 리소스가 이미 존재해야 할 필요가 없으며 동시성 제어를 위한 eTag가 필요하지 않습니다.

필수 역할 및 권한

ACL 항목을 추가하는 데 필요한 권한을 얻으려면 관리자에게 프로젝트에 대한 관리형 Kafka ACL 편집자 (roles/managedkafka.aclEditor) IAM 역할을 부여해 달라고 요청하세요. 역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.

이 사전 정의된 역할에는 ACL 항목을 추가하는 데 필요한 권한이 포함되어 있습니다. 필요한 정확한 권한을 보려면 필수 권한 섹션을 펼치세요.

필수 권한

ACL 항목을 추가하려면 다음 권한이 필요합니다.

  • 상위 클러스터에 이 권한을 부여합니다. managedkafka.acls.updateEntries

커스텀 역할이나 다른 사전 정의된 역할을 사용하여 이 권한을 부여받을 수도 있습니다.

관리형 Kafka ACL 편집자 (roles/managedkafka.aclEditor) 역할에는 개별 ACL 항목을 추가하거나 삭제하는 데 필요한 권한이 포함되어 있습니다. 자세한 내용은 Apache Kafka용 Google Cloud 관리형 서비스 사전 정의된 역할을 참고하세요.

ACL 항목 추가

  1. Install the Google Cloud CLI.

  2. If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

  3. To initialize the gcloud CLI, run the following command:

    gcloud init
  4. gcloud managed-kafka acls add-acl-entry 명령어를 실행합니다.

    gcloud managed-kafka acls add-acl-entry ACL_ID \
      --cluster=CLUSTER_ID \
      --location=LOCATION \
      --principal=PRINCIPAL \
      --operation=OPERATION \
      --permission-type=PERMISSION_TYPE \
      --host=HOST

    다음을 바꿉니다.

    • ACL_ID (필수): ACL 항목을 추가하려는 관리형 Kafka ACL 리소스의 고유 ID입니다. 이는 새 항목이 적용되는 리소스 패턴을 식별합니다. ACL ID에 대한 자세한 내용은 ACL ID를 참고하세요.
    • CLUSTER_ID (필수): ACL 리소스가 포함된 클러스터의 ID입니다.
    • LOCATION (필수): 클러스터가 있는 리전입니다. 지원되는 위치를 참고하세요.
    • PRINCIPAL (필수): ACL 항목이 적용되는 주 구성원 (사용자 또는 서비스 계정)입니다. User:{google_service_account_email} 형식 또는 와일드카드 User:*을 사용합니다.
    • OPERATION (필수사항): ACL 항목이 부여하거나 거부하는 작업 유형입니다. 허용되는 값은 ALL, READ, WRITE, CREATE, DELETE, ALTER, DESCRIBE, CLUSTER_ACTION, DESCRIBE_CONFIGS, ALTER_CONFIGS, IDEMPOTENT_WRITE입니다.
    • PERMISSION_TYPE(선택사항, 기본값 ALLOW): 구성된 액세스 유형입니다(ALLOW 또는 DENY).
    • HOST (선택사항, 기본값 *): 클라이언트 호스트입니다. Apache Kafka용 Google Cloud 관리형 서비스의 경우 와일드 카드 '*'로 설정해야 합니다.

명령어 샘플

다음 명령어를 실행하여 특정 서비스 계정이 us-central1 리전의 test-cluster 클러스터에서 test-topic라는 주제를 읽을 수 있도록 허용합니다.

gcloud managed-kafka acls add-acl-entry topic/test-topic \
  --cluster=test-cluster \
  --location=us-central1 \
  --host='*' \
  --operation=READ \
  --permission-type=ALLOW \
  --principal='User:service-account@test-project.iam.gserviceaccount.com' \

샘플 출력은 다음과 같습니다.

acl:
  aclEntries:
  - host: '*'
    operation: READ
    permissionType: ALLOW
    principal: 'User:service-account@test-project.iam.gserviceaccount.com'
  etag: W/another-new-etag
  name: projects/test-project/locations/us-central1/clusters/test-cluster/acls/topic/test-topic
  patternType: LITERAL
  resourceName: test-topic
  resourceType: TOPIC
aclCreated: false

add-acl-entry 명령어의 출력은 결과 ACL 상태에 관한 정보를 제공합니다.

  • acl: 이 섹션에서는 새 항목이 추가된 후 업데이트된 ACL 리소스를 설명합니다.
    • aclEntries: 이 ACL의 모든 액세스 제어 항목이 포함된 목록입니다. 이 예에서는 이제 방금 추가된 항목이 포함됩니다. 각 항목에는 다음 필드가 있습니다.
      • host: ACL 항목의 호스트입니다.
      • operation: 이 항목이 적용되는 Kafka 작업입니다.
      • permissionType: 액세스가 ALLOW인지 DENY인지 여부입니다.
      • principal: 이 항목이 적용되는 사용자 또는 서비스 계정입니다.
    • etag: 업데이트된 ACL의 항목 태그입니다. 후속 업데이트 중에 낙관적 동시 실행 제어에 사용됩니다. 항목이 추가되면 값이 변경됩니다.
    • name: ACL 리소스의 고유 식별자입니다. projects/{project}/locations/{location}/clusters/{cluster}/acls/{acl_id} 형식을 따릅니다.
    • patternType: 이 ACL의 리소스 패턴 유형입니다.
    • resourceName: 이 ACL이 적용되는 Kafka 리소스의 이름입니다.
    • resourceType: Kafka 리소스의 유형입니다.
  • aclCreated: 이 항목을 추가한 결과로 ACL 리소스가 생성되었는지 여부를 나타내는 불리언 값입니다.

다음 단계

Apache Kafka®는 미국 및/또는 다른 국가에서 사용되는 Apache Software Foundation 또는 해당 계열사의 등록 상표입니다.