액세스 그룹에 대한 동적 규칙 작성

특정 ID 속성을 기반으로 액세스 그룹에 연합 사용자를 자동으로 추가하기 위한 동적 규칙을 작성할 수 있습니다. 사용자가 연합 ID를 사용하여 로그인하면 ID 제공자(IdP)의 데이터는 사용자가 설정한 규칙에 따라 사용자를 동적으로 액세스 그룹에 맵핑합니다.

사용자가 이미 회사의 도메인 내에 특정 ID 정보를 갖고 있으며, 연합 ID로 로그인하는 경우 SAML 어설션을 사용하여 이 데이터를 전달할 수 있습니다. IdP내에 구성된 SAML 어설션 또는 속성 구문은 각 규칙을 생성하는 데 사용되는 데이터를 제공합니다. 예를 들어, 관리자로 사용자를 정의하는 true 또는 false 속성 명령문이 있을 수 있습니다. 이 정보는 IBM Cloud® 계정에서 작성했던 관리자의 특정 액세스 그룹에 관리자인 모든 사용자를 추가하는 데 사용될 수 있습니다. 자세한 내용은 클라우드 리소스에 대한 액세스를 제어하는 방법에 대한 자습서 및 규칙 예시를 참조하세요.

이미 계정에 초대된 사용자만 동적 규칙을 사용하여 그룹에 액세스하도록 맵핑될 수 있습니다.

콘솔을 사용하여 규칙 설정하기

동적 규칙은 IdP 내에 구성되고 로그인하는 동안 사용자의 연합 ID로 전달되는 데이터와 일치해야 하는 조건을 설정하여 작성됩니다. 규칙에 맞는 둘 이상의 조건을 추가할 수 있습니다. 규칙에 설정된 모든 조건은 사용자가 액세스 그룹에 추가되도록 충족되어야 합니다.

규칙을 작성하려면 다음 단계를 수행하십시오.

  1. IBM Cloud 콘솔에서 관리 > **액세스(IAM)**를 클릭하고 액세스 그룹을 선택하십시오.
  2. 규칙 작성의 대상인 액세스 그룹의 이름을 선택하십시오. 이 조치는 그룹 세부사항 페이지를 엽니다.
  3. 동적 규칙을 선택하십시오.
  4. 규칙 추가를 클릭하십시오.
  5. 규칙 추가 페이지에서 동적으로 제공되는 IdP의 정보를 입력합니다. 다음 목록은 각 필수 필드에 대한 세부사항을 제공합니다.

액세스 그룹 규칙을 키:값 쌍으로 간주할 수 있습니다. 키는 Add users when 필드에 추가하는 것이며 값은 Values 필드에 입력하는 것입니다.

동적 규칙을 작성하는 데 사용되는 필드에 대한 자세한 정보는 IAM 조건 특성의 내용을 참조하십시오.

Terraform을 사용하여 규칙 설정하기

Terraform을 사용하여 규칙을 설정하려면 먼저 다음 사항을 완료해야 합니다:

  • Terraform CLI를 설치하고 IBM Cloud 제공자 플러그인을 구성합니다. 자세한 내용은 테라폼 시작하기 IBM Cloud® 튜토리얼을 참조하세요. 플러그인은 이 태스크를 완료하는 데 사용되는 IBM Cloud API를 요약합니다.
  • 이름이 main.tf인 Terraform 구성 파일을 작성하십시오. 이 파일에서는 HashiCorp 구성 언어를 사용하여 리소스를 정의합니다. 자세한 내용은 테라폼 문서를 참조하세요.

동적 규칙은 IdP 내에 구성되고 로그인하는 동안 사용자의 연합 ID로 전달되는 데이터와 일치해야 하는 조건을 설정하여 작성됩니다. 규칙에 맞는 둘 이상의 조건을 추가할 수 있습니다. 규칙에 설정된 모든 조건은 사용자가 액세스 그룹에 추가되도록 충족되어야 합니다.

Terraform을 사용하여 규칙을 작성하려면 다음 단계를 수행하십시오.

  1. main.tf 파일에 인수를 생성합니다. 다음 예제에서는 ibm_iam_access_group_dynamic_rule 자원을 사용하여 액세스 그룹에 대한 새 동적 규칙을 작성합니다. 여기서 name 은 동적 규칙을 식별하는 고유 이름입니다.

     resource "ibm_iam_access_group_dynamic_rule" "rule1" {
       name              = "newrule"
       access_group_id   = "AccessGroupId-dsnd4bvsaf"
       expiration        = 4
       identity_provider = "test-idp.com"
       conditions {
         claim    = "blueGroups"
         operator = "CONTAINS"
         value    = "\"test-bluegroup-saml\""
       }
     }
    

    자세한 정보는 Terraform 문서 페이지의 인수 참조 세부사항을 참조하십시오.

페더레이션 사용자 관리를 위해 IAM 액세스 그룹 모듈로 동적 멤버십을 자동화하세요. Terraform IBM 모듈에 대해 알아보세요.

다음 예는 Terraform IBM 모듈(TIM)을 사용하여 동적 규칙이 있는 액세스 그룹을 만드는 방법을 보여줍니다:

module "access_group" {
  source  = "terraform-ibm-modules/iam-access-group/ibm"
  version = "X.X.X" # Replace with the latest version

  access_group_name        = "federated-managers"
  access_group_description = "Access group for federated managers"

  dynamic_rules = [
    {
      name              = "manager-rule"
      expiration        = 12
      identity_provider = "https://idp.example.org/SAML2"
      conditions = [
        {
          claim    = "isManager"
          operator = "EQUALS"
          value    = "true"
        }
      ]
    }
  ]
}

자세한 구성 옵션 및 예는 IAM 액세스 그룹 모듈 설명서를 참조하세요.

  1. 구성 파일 빌드를 완료한 후 Terraform CLI를 초기화합니다. 자세한 내용은 작업 디렉터리 초기화를 참조하세요.

    terraform init
    
  2. main.tf 파일에서 리소스를 프로비저닝합니다. 자세한 내용은 Terraform으로 인프라 프로비저닝을 참조하세요.

    1. terraform plan 을 실행하여 테라폼 실행 계획을 생성하여 제안된 작업을 미리 볼 수 있습니다.

      terraform plan
      
    2. terraform apply 을 실행하여 플랜에 정의된 리소스를 만듭니다.

      terraform apply
      

동적 규칙을 작성하는 데 사용되는 필드에 대한 자세한 정보는 IAM 조건 특성의 내용을 참조하십시오.

액세스 그룹의 동적 구성원 보기

동적 규칙을 사용하여 액세스 그룹에 추가된 사용자를 볼 수 있습니다. 액세스 그룹의 동적 구성원의 목록을 보려면 IBM Cloud 콘솔에서 관리 > 액세스(IAM) > 액세스 그룹으로 이동하십시오. 액세스 그룹을 선택하고 사용자를 클릭하십시오. 동적으로 추가된 사용자는 유형 Dynamic(으)로 표시됩니다.

다음 사용자는 테이블에 표시되지 않습니다.

  • 아직 로그인하지 않은 사용자를 동적으로 추가했습니다.
  • 세션이 만료된 사용자를 동적으로 추가했습니다.

로그아웃하였으나 세션이 아직 유효한 동적 사용자는 세션이 만료될 때까지 테이블에 계속 표시됩니다.

동적 사용자는 수동으로 제거할 수 없습니다. 동적 사용자를 제거하려면 동적 규칙을 조정하십시오.

사용자의 동적 멤버십 보기

다음 단계를 완료하여 동적 규칙에 따라 사용자가 추가된 액세스 그룹의 목록을 볼 수도 있습니다.

  1. IBM Cloud 콘솔에서 관리 > 액세스(IAM) > 사용자로 이동하십시오.
  2. 사용자를 클릭하십시오.
  3. 액세스를 클릭합니다.
  4. 사용자가 동적 구성원인 액세스 그룹은 유형 Dynamic(으)로 표시됩니다.

규칙 예:

다음 예제에는 동적 규칙의 각 필드에 대한 값이 포함되어 있습니다. 이 규칙의 연합 IdP 내에서 관리자로 식별되는 사용자는 관리자에 대해서만 특정 액세스 세트가 있는 IBM Cloud 액세스 그룹에 맵핑됩니다.

액세스 그룹에 대한 동적 규칙 예제
필드
이름 관리자 그룹 규칙
ID 제공자 https://idp.example.org/SAML2
만료(시) 12
다음과 같은 경우 사용자 추가 isManager
비교 연산자 같음