리소스에 대한 액세스 관리

IAM 정책을 사용하여 사용자 또는 서비스 ID에 대한 액세스를 관리하려면 계정 소유자이거나 올바른 액세스 권한이 지정되어 있어야 합니다. 리소스에 대한 사용자 액세스 권한를 지정하려면 계정의 모든 서비스에 대한 관리자이거나 특정 서비스 또는 서비스 인스턴스에 대한 지정된 관리자여야 합니다. 서비스 ID에 액세스 권한을 지정하려면 ID 서비스 또는 특정 서비스 ID에 대한 관리자여야 합니다.

리소스에 대한 액세스 지정

두 가지 유형의 정책을 사용하여 리소스에 대한 액세스 권한을 지정할 수 있습니다.

  • 하나의 유형만 또는 모든 유형에 대한 옵션을 포함하여 계정의 리소스에 액세스
  • 하나의 리소스 또는 모든 리소스에 대한 옵션을 포함하여 리소스 그룹 내의 리소스에 액세스합니다

현재 사용 중인 서비스 ID에 대한 기존 정책을 삭제하거나 수정하면 서비스가 중단될 수 있습니다.

사용자가 사용자 초대 및 제거, 비용 청구 및 사용량 보기, 서비스 ID 관리, 액세스 그룹 관리, 사용자 액세스 관리와 같은 계정 관리 태스크를 완료하고 모든 IAM 사용 리소스에 액세스할 수 있도록 하기 위해 전체 관리자 액세스를 가능하게 하려면 해당 사용자에게 다음 액세스 권한을 지정해야 합니다.

  • 관리자 및 관리자 역할이 있는 ID 및 액세스 사용 서비스에 대한 정책입니다.
  • 모든 계정 관리 서비스에 대한 관리자 역할이 있는 정책입니다.

액세스 관리 태그를 설정하여 액세스를 관리할 수도 있습니다. 자세한 정보는 태그를 사용하여 리소스에 대한 액세스 제어를 참조하십시오.

계정 관리 서비스에 대한 관리자 역할이 있는 사용자는 다른 사용자의 액세스 권한을 변경하고 관리자 역할이 있는 다른 사용자를 포함하여 리소스에서 사용자를 제거할 수 있습니다.

콘솔의 리소스에 대한 액세스 권한 지정

계정의 개별 리소스에 대한 액세스 또는 계정의 모든 리소스에 대한 액세스를 지정하려면 다음 단계를 완료하십시오.

  1. IBM Cloud 콘솔에서 관리 > **액세스(IAM)**를 클릭하고 사용자 또는 관리 > **액세스 (IAM)**를 선택한 후 액세스를 지정하려는 ID에 따라 서비스 ID를 선택하십시오.
  2. 액세스 권한을 지정할 사용자 또는 서비스 ID에 대해 조치 아이콘 조치 목록 아이콘 > 액세스 권한 지정을 클릭하십시오.
  3. 서비스 그룹 또는 단일 서비스를 선택합니다. 그런 후 다음 을 클릭하십시오.
  4. 액세스의 범위를 계정의 모든 리소스로 지정하거나, 속성에 기반한 특정 리소스로 지정하십시오.
  5. 다음 을 클릭하십시오.
  6. 지정할 역할의 조합을 선택하고 검토를 클릭하십시오.
  7. 추가를 클릭하여 정책 요약에 정책 구성을 추가하십시오.
  8. (선택사항) 사용자 또는 서비스 ID를 액세스 그룹에 추가하십시오.
    1. 사용자 또는 서비스 ID가 속할 액세스 그룹을 선택하십시오.
    2. 추가 클릭
  9. 지정을 클릭하십시오.

사용자에게 리소스가 포함된 리소스 그룹에 대한 역할이 없는 경우 사용자가 리소스를 볼 수 있지만 계정의 리소스 목록 페이지로 이동하여 리소스에 액세스하고 작업을 시작할 수 없습니다. 리소스 그룹 자체에 뷰어 역할 이상을 지정하여 사용자가 리소스에 액세스할 수 있게 하십시오.

일부 계정에서는 서비스 ID에 대한 정책 한도를 늘릴 수 있습니다. 늘어난 정책 한도를 활용하려면 Event Streams 또는 IBM Cloud Object Storage 서비스에 액세스 권한을 할당하세요. 또한 특정 서비스 인스턴스, 리소스 유형 및 리소스 ID로 액세스 정책의 범위를 지정해야 합니다.

콘솔의 리소스 그룹 내 액세스 권한 지정

리소스 그룹의 모든 리소스에 대해 또는 리소스 그룹 내의 하나의 서비스에 대해서만 액세스를 지정하려면 다음 단계를 완료하십시오.

  1. IBM Cloud 콘솔에서 관리 > **액세스(IAM)**를 클릭하고 액세스 권한을 지정할 ID에 따라 사용자 또는 서비스 ID를 선택하십시오.
  2. 액세스 권한을 할당하려는 사용자 또는 서비스 ID를 클릭한 다음 액세스 > 액세스 권한 할당을 클릭합니다.
  3. 서비스 그룹 또는 단일 서비스를 선택합니다. 그런 후 다음 을 클릭하십시오.
  4. 액세스의 범위를 특정 리소스로 지정하십시오. 리소스 그룹 속성 유형을 선택하고 리소스 그룹을 입력합니다.
  5. 다음 을 클릭하십시오.
  6. 리소스 그룹을 관리할 액세스 역할을 선택합니다. 그런 후 다음 을 클릭하십시오.
  7. 지정할 역할의 조합을 선택하고 검토를 클릭하십시오.
  8. 추가를 클릭하여 정책 요약에 정책 구성을 추가하십시오.
  9. 지정을 클릭하십시오.

리소스 그룹을 관리하기 위한 액세스 권한 할당하기

서비스 액세스 권한을 할당하지 않고 리소스 그룹을 보거나 관리할 수 있는 액세스 권한을 할당할 수 있습니다.

관리자는 모든 리소스 그룹에서 Viewer 역할로 액세스 그룹을 만들 수 있습니다. 이렇게 하면 서비스 리소스에 대한 액세스 권한을 할당할 때 리소스 그룹을 보기 위한 추가 정책을 만들 필요가 없습니다. 사용자가 해당 리소스 그룹에서 서비스 인스턴스를 만들려면 리소스 그룹에 대한 보기 역할이 필요합니다.

서비스 액세스 권한을 할당하지 않고 리소스 그룹에 액세스 권한을 할당하려면 다음 단계를 완료하세요:

  1. IBM Cloud 콘솔에서 관리 > **액세스(IAM)**를 클릭하고 액세스 권한을 지정할 ID에 따라 사용자 또는 서비스 ID를 선택하십시오.
  2. 액세스 권한을 할당하려는 사용자 또는 서비스 ID를 클릭한 다음 액세스 > 액세스 권한 할당을 클릭합니다.
  3. 리소스 그룹만 선택합니다.
  4. 조건 추가를 선택합니다.
  5. 리소스 그룹 속성 유형을 선택하고 리소스 그룹을 입력합니다.
  6. 다음 을 클릭하십시오.
  7. 리소스 그룹을 보거나 관리하기 위한 액세스 역할을 선택합니다. 그런 다음 검토를 클릭합니다.
  8. 추가를 클릭하여 정책 요약에 정책 구성을 추가하십시오.
  9. 지정을 클릭하십시오.

계정에서 사용 가능한 각 리소스 그룹에 대해 필요에 따라 이 유형의 정책을 반복하여 계정의 모든 리소스 그룹을 관리할 수 있는 액세스 권한을 할당할 수 있습니다.

CLI를 사용하여 리소스에 대한 액세스 권한 지정

  1. IBM Cloud® CLI에 로그인하십시오. 여러 계정이 있는 경우 사용할 계정을 선택하라는 프롬프트가 표시됩니다. -r 플래그로 지역을 지정하지 않은 경우, 지역도 선택해야 합니다.

    ibmcloud login
    

    인증 정보가 거부되는 경우 연합 ID를 사용 중일 수 있습니다. 연합 ID로 로그인하려면 --sso 플래그를 사용하십시오. 자세한 정보는 연합 ID로 로그인을 참조하십시오.

    처음으로 IBM Cloud CLI를 사용하는 경우 시작하기 튜토리얼을 확인하십시오.

  2. 액세스 정책을 만들고 다음 명령을 사용하여 사용자 또는 서비스 ID에 할당합니다 ibmcloud iam user-policy-create.

    • 이 예에서는 sample-service 서비스의 모든 인스턴스에 대해 Administrator 역할로 계정의 개별 리소스에 대한 액세스 권한을 할당합니다:
    ibmcloud iam user-policy-create name@example.com --roles Administrator --service-name sample-service
    
    • 이 예에서는 Administrator 역할로 모든 계정 관리 서비스에 대한 액세스 권한을 할당합니다:
    ibmcloud iam service-policy-create name@example.com --roles Administrator --account-management
    
    • 이 예에서는 Administrator 역할로 모든 ID 및 액세스 사용 서비스에 대한 액세스 권한을 할당합니다:
    ibmcloud iam service-policy-create name@example.com --roles Administrator --attributes serviceType=service
    
    • 이 예에서는 Administrator 역할로 모든 IAM 계정 관리 서비스에 대한 액세스 권한을 할당합니다:
    ibmcloud iam service-policy-create name@example.com --roles Administrator --attributes service_group_id=IAM
    

    일부 계정에서는 서비스 ID에 대한 정책 한도를 늘릴 수 있습니다. 늘어난 정책 한도를 활용하려면 Event Streams 또는 IBM Cloud Object Storage 서비스에 액세스 권한을 할당하세요. 또한 특정 서비스 인스턴스, 리소스 유형 및 리소스 ID로 액세스 정책의 범위를 지정해야 합니다.

    • 이 예에서는 Object StorageManager 역할로 액세스 권한을 할당합니다. 특정 서비스 인스턴스, 리소스 유형 및 리소스 ID에 대한 액세스 범위를 지정합니다:
    ibmcloud iam service-policy-create SERVICE_ID service-name cloud-object-storage --service-instance SERVICE_INSTANCE_GUID --resource-type RESOURCE_TYPE --resource RESOURCE --roles Manager
    

CLI를 사용하여 리소스 그룹 내 액세스 권한 지정

ibmcloud user-policy-create 명령을 입력하여 리소스 그룹의 모든 리소스에 대한 액세스 권한 또는 리소스 그룹 내 하나의 서비스에 대한 액세스 권한을 지정하십시오. 이 예제에서는 ID가 name@example.com인 리소스 그룹에 대한 Operator dda27e49d2a1efca58083a01dfde18f6 역할을 제공합니다.

ibmcloud iam user-policy-create name@example.com --roles Operator --resource-type resource-group --resource dda27e49d2a1efca58083a01dfde18f6

ibmcloud iam service-policy-create 명령을 입력하여 리소스 그룹의 모든 리소스에 대한 액세스 권한 또는 리소스 그룹 내 하나의 서비스에 대한 액세스 권한을 지정하십시오. 이 예제에서는 서비스 test에 리소스 그룹 Administrator에 대한 sample-resource-group 역할을 제공합니다.

ibmcloud iam service-policy-create test --roles Administrator --resource-group-name sample-resource-group

CLI를 사용하여 리소스 그룹을 관리하기 위한 액세스 권한 할당하기

서비스 액세스 권한을 할당하지 않고 리소스 그룹을 보거나 관리할 수 있는 액세스 권한을 할당할 수 있습니다.

관리자는 모든 리소스 그룹에서 Viewer 역할로 액세스 그룹을 만들 수 있습니다. 이렇게 하면 서비스 리소스에 대한 액세스 권한을 할당할 때 리소스 그룹을 보기 위한 추가 정책을 만들 필요가 없습니다. 사용자가 해당 리소스 그룹에서 서비스 인스턴스를 만들려면 리소스 그룹에 대한 보기 역할이 필요합니다.

다음 예에서는 특정 리소스 그룹의 Viewer에 대한 정책을 만듭니다:

iam user-policy-create name@example.com --roles Viewer --resource-type resource-group --resource fec6c95e6a0a44c5bcca138bfe5a1f9e

다음 예에서는 계정의 모든 리소스 그룹에 대한 보기에 대한 정책을 만듭니다.

iam user-policy-create name@example.com --roles Viewer --resource-type resource-group

다음 예에서는 리소스 그룹에 있는 모든 리소스의 Viewer에 대한 정책을 만듭니다

iam user-policy-create name@example.com --roles Viewer --resource-group-name satellite-test

API를 사용하여 리소스에 대한 액세스 권한 지정

다음 샘플 요청에 표시된 대로 IBM Cloud® Identity and Access Management(IAM)정책 관리 API를 호출하여 계정의 개별 리소스에 대한 액세스 권한을 할당하거나 계정의 리소스 목록에 대한 액세스 권한을 할당할 수 있습니다. 샘플 요청에서는 서비스 인스턴스에 대한 Administrator 역할 액세스 권한을 제공합니다.

curl -X POST 'https://iam.cloud.ibm.com/v1/policies' -H 'Authorization: Bearer $TOKEN' \
-H 'Content-Type: application/json' -d '{
  "type": "access",
  "description": "Administrator role for SERVICE_NAME's RESOURCE_NAME",
  "subjects": [
    {
      "attributes": [
        {
          "name": "iam_id",
          "value": "IBMid-123453user"
        }
      ]
    }'
  ],
  "roles":[
    {
      "role_id": "crn:v1:bluemix:public:iam::::role:Administrator"
    }
  ],
  "resources":[
    {
      "attributes": [
        {
          "name": "accountId",
          "value": "$ACCOUNT_ID"
        },
        {
          "name": "serviceName",
          "value": "$SERVICE_NAME"
        },
        {
          "name": "resource",
          "value": "$RESOURCE_NAME",
          "operator": "stringEquals"
        }
      ]
    }
  ]
}'
SubjectAttribute subjectAttribute = new SubjectAttribute.Builder()
      .name("iam_id")
      .value("EXAMPLE_USER_ID")
      .build();

PolicySubject policySubjects = new PolicySubject.Builder()
      .addAttributes(subjectAttribute)
      .build();

PolicyRole policyRoles = new PolicyRole.Builder()
      .roleId("crn:v1:bluemix:public:iam::::role:Administrator")
      .build();

ResourceAttribute accountIdResourceAttribute = new ResourceAttribute.Builder()
      .name("accountId")
      .value(exampleAccountId)
      .operator("stringEquals")
      .build();

ResourceAttribute serviceNameResourceAttribute = new ResourceAttribute.Builder()
      .name("serviceName")
      .value("service")
      .operator("stringEquals")
      .build();

PolicyResource policyResources = new PolicyResource.Builder()
      .addAttributes(accountIdResourceAttribute)
      .addAttributes(serviceNameResourceAttribute)
      .build();

CreatePolicyOptions options = new CreatePolicyOptions.Builder()
      .type("access")
      .subjects(Arrays.asList(policySubjects))
      .roles(Arrays.asList(policyRoles))
      .resources(Arrays.asList(policyResources))
      .build();

Response<Policy> response = service.createPolicy(options).execute();
Policy policy = response.getResult();

System.out.println(policy);
const policySubjects = [
  {
    attributes: [
      {
        name: 'iam_id',
        value: 'exampleUserId',
      },
    ],
  },
];
const policyRoles = [
  {
    role_id: 'crn:v1:bluemix:public:iam::::role:Administrator',
  },
];
const accountIdResourceAttribute = {
  name: 'accountId',
  value: exampleAccountId,
  operator: 'stringEquals',
};
const serviceNameResourceAttribute = {
  name: 'serviceName',
  value: 'service',
  operator: 'stringEquals',
};
const policyResources = [
  {
    attributes: [accountIdResourceAttribute, serviceNameResourceAttribute]
  },
];
const params = {
  type: 'access',
  subjects: policySubjects,
  roles: policyRoles,
  resources: policyResources,
};

iamPolicyManagementService.createPolicy(params)
  .then(res => {
    examplePolicyId = res.result.id;
    console.log(JSON.stringify(res.result, null, 2));
  })
  .catch(err => {
    console.warn(err)
  });
policy_subjects = PolicySubject(
  attributes=[SubjectAttribute(name='iam_id', value='example_user_id')])
policy_roles = PolicyRole(
  role_id='crn:v1:bluemix:public:iam::::role:Administrator')
account_id_resource_attribute = ResourceAttribute(
  name='accountId', value=example_account_id)
service_name_resource_attribute = ResourceAttribute(
  name='serviceName', value='service')
policy_resources = PolicyResource(
  attributes=[account_id_resource_attribute,
        service_name_resource_attribute])

policy = iam_policy_management_service.create_policy(
  type='access',
  subjects=[policy_subjects],
  roles=[policy_roles],
  resources=[policy_resources]
).get_result()

print(json.dumps(policy, indent=2))
subjectAttribute := &iampolicymanagementv1.SubjectAttribute{
  Name:  core.StringPtr("iam_id"),
  Value: core.StringPtr("exampleUserID"),
}
policySubjects := &iampolicymanagementv1.PolicySubject{
  Attributes: []iampolicymanagementv1.SubjectAttribute{*subjectAttribute},
}
policyRoles := &iampolicymanagementv1.PolicyRole{
  RoleID: core.StringPtr("crn:v1:bluemix:public:iam::::role:Administrator"),
}
accountIDResourceAttribute := &iampolicymanagementv1.ResourceAttribute{
  Name:     core.StringPtr("accountId"),
  Value:    core.StringPtr(exampleAccountID),
  Operator: core.StringPtr("stringEquals"),
}
serviceNameResourceAttribute := &iampolicymanagementv1.ResourceAttribute{
  Name:     core.StringPtr("serviceName"),
  Value:    core.StringPtr("service"),
  Operator: core.StringPtr("stringEquals"),
}
policyResources := &iampolicymanagementv1.PolicyResource{
  Attributes: []iampolicymanagementv1.ResourceAttribute{
    *accountIDResourceAttribute, *serviceNameResourceAttribute}
}

options := iamPolicyManagementService.NewCreatePolicyOptions(
  "access",
  []iampolicymanagementv1.PolicySubject{*policySubjects},
  []iampolicymanagementv1.PolicyRole{*policyRoles},
  []iampolicymanagementv1.PolicyResource{*policyResources},
)

policy, response, err := iamPolicyManagementService.CreatePolicy(options)
if err != nil {
  panic(err)
}
b, _ := json.MarshalIndent(policy, "", "  ")
fmt.Println(string(b))

서비스 그룹에 액세스 권한을 할당할 수 있습니다. 모든 ID 및 액세스 사용 서비스에 대한 액세스 권한을 할당하려면 name 속성에 serviceType 을 지정하고 value service 을 사용합니다. 모든 계정 관리 서비스에 대한 액세스 권한을 할당하려면 name 속성에 serviceType 을 지정하고 value platform_service 을 사용합니다. 계정 관리 서비스의 하위 집합인 모든 IAM 계정 관리 서비스에 대한 액세스 권한을 할당하려면 name 속성에 service_group_id 을 지정하고 value IAM 을 사용합니다.

일부 계정에서는 서비스 ID에 대한 정책 한도를 늘릴 수 있습니다. 늘어난 정책 한도를 활용하려면 Event Streams 또는 IBM Cloud Object Storage 서비스에 액세스 권한을 할당하세요. 또한 특정 서비스 인스턴스, 리소스 유형 및 리소스 ID로 액세스 정책의 범위를 지정해야 합니다.

다음 샘플 요청은 서비스 ID Reader 역할에 Object Storage 인스턴스에 대한 액세스 권한을 부여합니다. 특정 서비스 인스턴스, 리소스 유형 및 리소스 ID에 대한 액세스 범위를 지정합니다:

curl -X POST 'https://iam.cloud.ibm.com/v1/policies' -H 'Authorization: Bearer $TOKEN' -H 'Content-Type: application/json' -d '{
  "type": "access",
  "description": "Reader role for SERVICE_NAME's RESOURCE_NAME",
  "subjects": [
    {
      "attributes": [
        {
          "name": "iam_id",
          "value": "$SERVICE_ID"
        }
      ]
    }'
  ],
  "roles":[
    {
      "role_id": "crn:v1:bluemix:public:iam::::serviceRole:Reader"
    }
  ],
  "resources":[
    {
      "attributes": [
        {
          "name": "accountId",
          "value": "$ACCOUNT_ID"
        },
        {
          "name": "serviceName",
          "value": "cloud-object-storage"
        },,
        {
          "name": "serviceInstance",
          "value": "$INSTANCE_ID",
          "operator": "stringEquals"
        }
        {
          "name": "resourceType",
          "value": "$RESOURCE_TYPE",
          "operator": "stringEquals"
        },
        {
          "name": "resource",
          "value": "$RESOURCE_NAME",
          "operator": "stringEquals"
        }
      ]
    }
  ]
}'

API를 사용하여 리소스 그룹 내 액세스 권한 지정

이 조치는 UI 또는 CLI를 통해서만 수행할 수 있습니다. 단계를 보려면 UI 또는 CLI 지시사항으로 전환하십시오.

시작하기 전에

Terraform을 사용하여 리소스에 대한 액세스 권한을 할당하려면 먼저 다음을 완료해야 합니다:

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

Terraform을 사용하여 리소스에 대한 액세스 권한 지정

Terraform을 사용하여 리소스에 대한 액세스 권한을 할당하려면 다음 단계를 따르세요:

  1. main.tf 파일에서 ibm_iam_user_policy resource 인수를 사용하여 리소스에 대한 액세스 권한을 할당합니다.

    다음 예에서는 ibm_iam_user_policy를 사용하여 kms 서비스의 모든 인스턴스에 대해 test@in.ibm.com Viewer 역할을 부여합니다.

    resource "ibm_iam_user_policy" "policy" {
     ibm_id = "test@in.ibm.com"
     roles  = ["Viewer"]
    
    resources {
     service = "kms"
    }
    }
    

    일부 계정에서는 서비스 ID에 대한 정책 한도를 늘릴 수 있습니다. 늘어난 정책 한도를 활용하려면 Event Streams 또는 IBM Cloud Object Storage 서비스에 액세스 권한을 할당하세요. 또한 특정 서비스 인스턴스, 리소스 유형 및 리소스 ID로 액세스 정책의 범위를 지정해야 합니다.

    다음 예에서는 ibm_iam_user_policy를 사용하여 서비스 ID에 Object Storage 인스턴스에 대한 Reader 역할 액세스 권한을 부여합니다. 특정 서비스 인스턴스, 리소스 유형 및 리소스 ID에 대한 액세스 범위를 지정합니다:

    resource "ibm_iam_service_policy" "policy" {
     iam_service_id = "$SERVICE_ID"
     roles          = ["Reader"]
    
    resources {
     service              = "cloud_object_storage"
     resource_instance_id = "$SERVICE_INSTANCE_ID"
     resource_type = "$RESOURCE_TYPE"
     resource      = "$RESOURCE"
    }
    }
    

    service 옵션에서 액세스 권한 지정의 대상인 서비스의 이름을 지정할 수 있습니다. 자세한 내용은 Terraform Identity and Access Management(IAM) 페이지의 인수 참조 세부 정보를 참조하세요.

    정책 기반 권한에 대한 IAM 액세스 그룹 모듈로 리소스 액세스를 제어하세요. 액세스 전략을 위한 Terraform IBM 모듈에 대해 알아보세요.

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

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

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

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

      terraform apply
      

Terraform을 사용하여 리소스 그룹 내 액세스 권한 지정

Terraform을 사용하여 리소스 그룹 내에서 액세스 권한을 할당하려면 다음 단계를 따르세요.

  1. main.tf 파일에 있는 ibm_iam_user_policy 리소스를 사용하여 리소스 그룹 내에서 액세스 권한을 할당합니다.

    다음 예에서는 ibm_iam_user_policy를 사용하여 ID가 data.ibm_resource_group.group.id 인 리소스 그룹에 test@in.ibm.com Viewer 역할을 부여합니다.

    data "ibm_resource_group" "group" {
     name = "default"
    }
    
    resource "ibm_iam_user_policy" "policy" {
     ibm_id = "test@in.ibm.com"
     roles  = ["Viewer"]
    
    resources {
     service           = "containers-kubernetes"
     resource_group_id = data.ibm_resource_group.group.id
    }
    }
    

    resource_group_id 옵션에서 액세스 권한을 할당할 리소스 그룹의 ID를 지정할 수 있습니다. 자세한 내용은 Terraform Identity and Access Management(IAM) 페이지의 인수 참조 세부 정보를 참조하세요.

    세분화된 제어를 위해 IAM 액세스 그룹 모듈을 사용하여 리소스 그룹에 대한 액세스 범위를 지정하세요. 리소스 그룹 정책에 대한 Terraform IBM 모듈을 검토하세요.

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

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

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

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

      terraform apply
      

콘솔에서 액세스 권한 제거

사용자 또는 서비스 ID에 대한 액세스를 제거하는 경우 적용되는 데 최대 10분이 걸릴 수 있습니다.

  1. IBM Cloud 콘솔에서 관리 > **액세스(IAM)**를 클릭하고 관리할 ID에 따라 사용자 또는 서비스 ID를 선택하십시오.
  2. 액세스를 제거할 사용자의 이름 또는 서비스 ID를 선택하십시오.
  3. 액세스 탭에서 제거하려는 정책의 행에서 작업 아이콘 작업 아이콘 > 제거를 클릭합니다.
  4. 제거할 정책 세부사항을 검토한 후 제거를 클릭하여 확인하십시오.

또한 제거할 사용자 또는 서비스 ID의 선택란을 선택하고 제거를 클릭하여 액세스 그룹에서 사용자와 서비스 ID를 제거할 수 있습니다. 그런 다음 제거를 다시 클릭하여 프로세스를 승인하십시오.

CLI를 사용하여 액세스 권한 제거

CLI를 사용하여 사용자 정책을 제거하기 위해 ibmcloud iam user-policy-delete 명령을 사용할 수 있습니다.

ibmcloud iam user-policy-delete USER_ID POLICY_ID [-f, --force]

CLI를 사용하여 서비스 ID 정책을 제거하기 위해 ibmcloud iam service-policy-delete 명령을 사용할 수 있습니다.

ibmcloud iam service-policy-delete SERVICE_ID POLICY_ID [-f, --force]

API를 사용하여 액세스 권한 제거

다음 샘플 요청에 표시된 대로 정책 ID를 제공하고 IBM Cloud® Identity and Access Management(IAM)정책 관리 API를 호출하여 정책을 삭제합니다:

curl -X DELETE 'https://iam.cloud.ibm.com/v1/policies/$POLICY_ID' \
-H 'Authorization: Bearer $TOKEN' \
-H 'Content-Type: application/json'
DeletePolicyOptions options = new DeletePolicyOptions.Builder()
      .policyId(examplePolicyId)
      .build();

service.deletePolicy(options).execute();
const params = {
  policyId: examplePolicyId,
};

iamPolicyManagementService.deletePolicy(params)
.then(res => {
  console.log(JSON.stringify(res, null, 2));
})
.catch(err => {
  console.warn(err)
});
response = iam_policy_management_service.delete_policy(
  policy_id=example_policy_id
).get_result()

print(json.dumps(response, indent=2))
options := iamPolicyManagementService.NewDeletePolicyOptions(
  examplePolicyID,
)

response, err := iamPolicyManagementService.DeletePolicy(options)
if err != nil {
  panic(err)
}

주제 ID에 잠긴 서비스 ID가 있는 경우 정책을 삭제할 수 없습니다.

콘솔에서 지정된 액세스 권한 검토

추가된 계정에서 지정된 액세스 권한을 검토해야 하는 경우에는 다음 단계를 완료하십시오.

  1. IBM Cloud 콘솔에서 관리 > **액세스(IAM)**를 클릭하고 검토할 ID에 따라 사용자 또는 서비스 ID를 선택하십시오.
  2. 이름 또는 서비스 ID를 선택하십시오.
  3. 액세스 탭에서 할당된 액세스 권한을 검토합니다.

추가 액세스가 필요한 경우에는 계정 소유자에게 문의하여 액세스를 업데이트하거나 서비스 또는 서비스 인스턴스의 관리자에게 문의하여 액세스 정책을 업데이트해야 합니다.

CLI를 사용하여 지정된 액세스 권한 검토

추가된 계정에서 지정된 액세스 권한을 검토해야 하는 경우 ibmcloud iam user-policies 명령을 사용할 수 있습니다. 이 예제에는 사용자 name@example.com의 정책이 나열됩니다.

ibmcloud iam user-policies name@example.com

API를 사용하여 지정된 액세스 권한 검토

API를 사용하여 계정에서 모든 정책을 검색하고 속성 값을 기준으로 필터링할 수 있습니다. IBM Cloud 콘솔에서 관리 > 사용자 > 사용자 아이디 > 액세스 권한으로 이동하여 계정에서 할당된 액세스 권한을 확인할 수 있습니다. 정책을 검색하려면 다음 샘플 요청에 표시된 대로 IBM Cloud® Identity and Access Management(IAM)정책 관리 API를 호출합니다:

curl -X GET 'https://iam.cloud.ibm.com/v1/policies?account_id=$ACCOUNT_ID' \
-H 'Authorization: Bearer $TOKEN' \
-H 'Content-Type: application/json'
ListPoliciesOptions options = new ListPoliciesOptions.Builder()
    .accountId(exampleAccountId)
    .iamId(EXAMPLE_USER_ID)
    .build();

Response<PolicyList> response = service.listPolicies(options).execute();
PolicyList policyList = response.getResult();

System.out.println(policyList);
const params = {
  accountId: exampleAccountId,
  iamId: exampleUserId
};

iamPolicyManagementService.listPolicies(params)
 .then(res => {
   console.log(JSON.stringify(res.result, null, 2));
 })
 .catch(err => {
   console.warn(err)
 });
policy_list = iam_policy_management_service.list_policies(
 account_id=example_account_id, iam_id=example_user_id
).get_result()

print(json.dumps(policy_list, indent=2))
options := iamPolicyManagementService.NewListPoliciesOptions(
 exampleAccountID,
)
options.SetIamID(exampleUserID)

policyList, response, err := iamPolicyManagementService.ListPolicies(options)
if err != nil {
 panic(err)
}
b, _ := json.MarshalIndent(policyList, "", "  ")
fmt.Println(string(b))