Privileged Access Manager로 일시적으로 승격된 액세스 권한 요청

권한을 일시적으로 승격하려면 Privileged Access Manager(PAM)에서 고정된 기간 동안 사용 권한에 대해 권한 부여를 요청할 수 있습니다.

사용 권한에는 권한 부여 요청이 성공한 후 사용자에게 부여되는 역할이 포함되어 있습니다. 이러한 역할은 권한 부여가 종료될 때 Privileged Access Manager에서 삭제됩니다.

사용 권한에 대해 권한 부여를 요청할 때는 다음 사항에 유의하세요.

  • 자신이 추가된 사용 권한에 대해서만 권한 부여를 요청할 수 있습니다. 사용 권한에 추가되려면 해당 사용 권한을 관리하는 주 구성원에게 문의하세요.

  • 설정된 방법에 따라 권한 부여 요청을 위해 승인이 필요할 수 있습니다.

  • 권한 부여 요청에 승인이 필요하고 24시간 내에 승인 또는 거부되지 않으면 권한 부여 상태가 Expired로 변경됩니다. 이후에도 권한 승격이 필요하면 권한 부여를 새로 요청해야 합니다.

  • 성공한 권한 부여 요청은 적용하는 데 몇 분 정도 걸릴 수 있습니다.

Google Cloud 콘솔을 사용하여 권한 부여 요청

사용 권한에 대해 권한 부여를 요청하려면 다음 안내를 따르세요.

  1. Privileged Access Manager 페이지로 이동합니다.

    Privileged Access Manager로 이동

  2. 권한 부여를 요청하려는 조직, 폴더, 프로젝트를 선택합니다.

  3. 내 사용 권한 탭에서 요청하려는 사용 권한을 찾고 같은 행에서 권한 부여 요청을 클릭합니다.

  4. 다음과 같은 정보를 입력합니다.

    • 사용 권한에 설정된 최대 기간까지 권한 부여에 필요한 기간을 입력합니다.

    • 필요한 경우 권한 부여의 이유를 입력합니다.

    • 선택사항: 권한 부여 요청 알림을 표시할 이메일 주소를 입력합니다. 승인 담당자와 연결된 Google ID에 자동으로 알림이 표시됩니다. 하지만 특히 직원 ID 제휴를 사용하는 경우 다른 이메일 주소 집합에 알림을 보내야 할 수 있습니다.

  5. 권한 부여 요청을 클릭합니다.

  6. 승인 상태를 포함한 권한 부여 기록을 보려면 권한 부여 탭과 내 권한 부여 탭을 차례로 클릭합니다.

프로그래매틱 방식으로 권한 부여 요청

사용 권한에 대해 권한 부여를 요청하려면 다음 단계를 완료해야 합니다.

  1. 권한 부여를 요청할 수 있는 사용 가능한 사용 권한 ID를 검색합니다.

  2. 권한 부여를 요청합니다.

그런 후 권한 부여 상태를 보고 임시 승격이 수신되었는지 활성 여부를 확인할 수 있습니다.

사용 가능한 사용 권한 검색

gcloud

gcloud beta pam entitlements search 명령어는 grant-requester 호출자 액세스 유형과 함께 권한 부여를 요청할 수 있는 사용 권한을 검색합니다.

아래의 명령어 데이터를 사용하기 전에 다음을 바꿉니다.

  • RESOURCE_TYPE: 선택사항. 사용 권한이 속한 리소스 유형입니다. organization, folder, project 값을 사용합니다.
  • RESOURCE_ID: RESOURCE_TYPE에 사용됩니다. 사용 권한을 관리하려는 Google Cloud 프로젝트, 폴더 또는 조직의 ID입니다. 프로젝트 ID는 my-project와 같은 영숫자 문자열입니다. 폴더 및 조직 ID는 123456789012와 같은 숫자입니다.

다음 명령어를 실행합니다.

Linux, macOS 또는 Cloud Shell

gcloud beta pam entitlements search \
    --caller-access-type=grant-requester \
    --location=global \
    --RESOURCE_TYPE=RESOURCE_ID

Windows(PowerShell)

gcloud beta pam entitlements search `
    --caller-access-type=grant-requester `
    --location=global `
    --RESOURCE_TYPE=RESOURCE_ID

Windows(cmd.exe)

gcloud beta pam entitlements search ^
    --caller-access-type=grant-requester ^
    --location=global ^
    --RESOURCE_TYPE=RESOURCE_ID

다음과 비슷한 응답이 표시됩니다.

additionalNotificationTargets: {}
approvalWorkflow:
  manualApprovals:
    requireApproverJustification: true
    steps:
    - approvalsNeeded: 1
      approvers:
      - principals:
        - user:alex@example.com
createTime: '22024-03-26T11:07:37.009498890Z'
etag: ETAG
maxRequestDuration: 3600s
name: projects/my-project/locations/global/entitlements/ENTITLEMENT_ID
privilegedAccess:
  gcpIamAccess:
    resource: //cloudresourcemanager.googleapis.com/projects/my-project
    resourceType: cloudresourcemanager.googleapis.com/Project
    roleBindings:
    - role: roles/storage.admin
requesterJustificationConfig:
  notMandatory: {}
state: AVAILABLE
updateTime: '2024-03-26T11:07:40.056780645Z'

REST

GRANT_REQUESTER 호출자 액세스 유형과 함께 Privileged Access Manager API의 searchEntitlements 메서드는 권한 부여를 요청할 수 있는 사용 권한을 검색합니다.

요청 데이터를 사용하기 전에 다음을 바꿉니다.

  • SCOPE: 사용 권한이 있는 조직, 폴더, 프로젝트로, organizations/ORGANIZATION_ID, folders/FOLDER_ID 또는 projects/PROJECT_ID 형식입니다. 프로젝트 ID는 my-project와 같은 영숫자 문자열입니다. 폴더 및 조직 ID는 123456789012와 같은 숫자입니다.
  • FILTER: 선택사항. 필드 값이 AIP-160 표현식과 일치하는 사용 권한을 반환합니다.
  • PAGE_SIZE: 선택사항. 응답에 반환할 항목 수입니다.
  • PAGE_TOKEN: 선택사항. 이전 응답에서 반환된 페이지 토큰을 사용하여 응답을 시작하는 페이지입니다.

HTTP 메서드 및 URL:

GET https://privilegedaccessmanager.googleapis.com/v1beta/SCOPE/locations/global/entitlements:search?callerAccessType=GRANT_REQUESTER&filter=FILTER&pageSize=PAGE_SIZE&pageToken=PAGE_TOKEN

요청을 보내려면 다음 옵션 중 하나를 펼칩니다.

다음과 비슷한 JSON 응답이 표시됩니다.

[
  {
    "name": "projects/my-project/locations/global/entitlements/ENTITLEMENT_ID",
    "createTime": "2023-11-21T17:28:39.962144708Z",
    "updateTime": "2023-11-21T17:28:43.160309410Z",
    "eligibleUsers": [
      {
        "principals": [
          "user:alex@example.com"
        ]
      }
    ],
    "approvalWorkflow": {
      "manualApprovals": {
        "steps": [
          {
            "approvers": [
              {
                "principals": [
                  "user:bola@example.com"
                ]
              }
            ],
            "approvalsNeeded": 1
          }
        ]
      }
    },
    "privilegedAccess": {
      "gcpIamAccess": {
        "resourceType": "cloudresourcemanager.googleapis.com/Project",
        "resource": "//cloudresourcemanager.googleapis.com/projects/my-project",
        "roleBindings": [
          {
            "role": "roles/storage.admin"
          }
        ]
      }
    },
    "maxRequestDuration": "14400s",
    "state": "AVAILABLE",
    "requesterJustificationConfig": {
      "unstructured": {}
    },
    "additionalNotificationTargets": {
      "adminEmailRecipients": [
        "alex@example.com"
      ]
    },
    "etag": "ETAG"
  }
]

사용 권한에 대한 권한 부여 요청

gcloud

gcloud beta pam grants create 명령어는 권한 부여를 요청합니다.

아래의 명령어 데이터를 사용하기 전에 다음을 바꿉니다.

  • ENTITLEMENT_ID: 권한 부여를 만들려는 사용 권한 ID입니다.
  • GRANT_DURATION: 요청된 권한 부여 기간(초)입니다.
  • JUSTIFICATION: 권한 부여를 요청하는 근거입니다.
  • EMAIL_ADDRESS: 선택사항. 권한 부여 요청에 대한 알림을 표시할 추가적인 이메일 주소입니다. 승인 담당자와 연결된 Google ID에 자동으로 알림이 표시됩니다. 하지만 특히 직원 ID 제휴를 사용하는 경우 다른 이메일 주소 집합에 알림을 표시해야 할 수 있습니다.
  • RESOURCE_TYPE: 선택사항. 사용 권한이 속한 리소스 유형입니다. organization, folder, project 값을 사용합니다.
  • RESOURCE_ID: RESOURCE_TYPE에 사용됩니다. 사용 권한을 관리하려는 Google Cloud 프로젝트, 폴더 또는 조직의 ID입니다. 프로젝트 ID는 my-project와 같은 영숫자 문자열입니다. 폴더 및 조직 ID는 123456789012와 같은 숫자입니다.

다음 명령어를 실행합니다.

Linux, macOS 또는 Cloud Shell

gcloud beta pam grants create \
    --entitlement=ENTITLEMENT_ID \
    --requested-duration="GRANT_DURATIONs" \
    --justification="JUSTIFICATION" \
    --location=global \
    [--additional-email-recipients=EMAIL_ADDRESS_1, EMAIL_ADDRESS_2] \
    --RESOURCE_TYPE=RESOURCE_ID

Windows(PowerShell)

gcloud beta pam grants create `
    --entitlement=ENTITLEMENT_ID `
    --requested-duration="GRANT_DURATIONs" `
    --justification="JUSTIFICATION" `
    --location=global `
    [--additional-email-recipients=EMAIL_ADDRESS_1, EMAIL_ADDRESS_2] `
    --RESOURCE_TYPE=RESOURCE_ID

Windows(cmd.exe)

gcloud beta pam grants create ^
    --entitlement=ENTITLEMENT_ID ^
    --requested-duration="GRANT_DURATIONs" ^
    --justification="JUSTIFICATION" ^
    --location=global ^
    [--additional-email-recipients=EMAIL_ADDRESS_1, EMAIL_ADDRESS_2] ^
    --RESOURCE_TYPE=RESOURCE_ID

다음과 비슷한 응답이 표시됩니다.

Created [GRANT_ID].

REST

Privileged Access Manager API의 createGrant 메서드가 권한 부여를 요청합니다.

요청 데이터를 사용하기 전에 다음을 바꿉니다.

  • SCOPE: 사용 권한이 있는 조직, 폴더, 프로젝트로, organizations/ORGANIZATION_ID, folders/FOLDER_ID 또는 projects/PROJECT_ID 형식입니다. 프로젝트 ID는 my-project와 같은 영숫자 문자열입니다. 폴더 및 조직 ID는 123456789012와 같은 숫자입니다.
  • ENTITLEMENT_ID: 권한 부여를 만들려는 사용 권한 ID입니다.
  • REQUEST_ID: 선택사항. 0이 아닌 UUID여야 합니다. 요청 ID가 포함된 요청이 서버에 수신되는 경우 해당 ID를 사용하는 다른 요청이 최근 60분 내에 이미 완료되었는지 확인합니다. 그러면 새 요청이 무시됩니다.
  • GRANT_DURATION: 요청된 권한 부여 기간(초)입니다.
  • JUSTIFICATION: 권한 부여를 요청하는 근거입니다.
  • EMAIL_ADDRESS: 선택사항. 권한 부여 요청에 대한 알림을 표시할 추가적인 이메일 주소입니다. 승인 담당자와 연결된 Google ID에 자동으로 알림이 표시됩니다. 하지만 특히 직원 ID 제휴를 사용하는 경우 다른 이메일 주소 집합에 알림을 표시해야 할 수 있습니다.

HTTP 메서드 및 URL:

POST https://privilegedaccessmanager.googleapis.com/v1beta/SCOPE/locations/global/entitlements/ENTITLEMENT_ID/grants?requestId=REQUEST_ID

JSON 요청 본문:

{
  "requestedDuration": "GRANT_DURATIONs",
  "justification": {
    "unstructuredJustification": "JUSTIFICATION"
  },
  "additionalEmailRecipients": [
    "EMAIL_ADDRESS_1",
    "EMAIL_ADDRESS_2",
    ...
  ]
}

요청을 보내려면 다음 옵션 중 하나를 펼칩니다.

다음과 비슷한 JSON 응답이 표시됩니다.

{
  "name": "projects/my-project/locations/global/entitlements/ENTITLEMENT_ID/grants/GRANT_ID",
  "createTime": "2024-03-06T03:08:49.330577625Z",
  "updateTime": "2024-03-06T03:08:49.330577625Z",
  "requester": "bola@example.com",
  "requestedDuration": "3600s",
  "justification": {
    "unstructuredJustification": "Emergency service for outage"
  },
  "state": "APPROVAL_AWAITED",
  "timeline": {
    "events": [
      {
        "eventTime": "2024-03-06T03:08:49.462765846Z",
        "requested": {
          "expireTime": "2024-03-07T03:08:49.462765846Z"
        }
      }
    ]
  },
  "privilegedAccess": {
    "gcpIamAccess": {
      "resourceType": "cloudresourcemanager.googleapis.com/Project",
      "resource": "//cloudresourcemanager.googleapis.com/projects/my-project",
      "roleBindings": [
        {
          "role": "roles/storage.admin"
        }
      ]
    }
  },
  "additionalEmailRecipients": [
    "alex@example.com"
  ]
}

권한 부여 요청 상태 확인

gcloud

had-created 호출자 관계와 함께 사용된 gcloud beta pam grants search 명령어는 사용자가 만든 권한 부여를 검색합니다. 상태를 확인하려면 응답에서 state 필드를 찾습니다.

아래의 명령어 데이터를 사용하기 전에 다음을 바꿉니다.

  • ENTITLEMENT_ID: 권한 부여가 속한 사용 권한의 ID입니다.
  • RESOURCE_TYPE: 선택사항. 사용 권한이 속한 리소스 유형입니다. organization, folder, project 값을 사용합니다.
  • RESOURCE_ID: RESOURCE_TYPE에 사용됩니다. 사용 권한을 관리하려는 Google Cloud 프로젝트, 폴더 또는 조직의 ID입니다. 프로젝트 ID는 my-project와 같은 영숫자 문자열입니다. 폴더 및 조직 ID는 123456789012와 같은 숫자입니다.

다음 명령어를 실행합니다.

Linux, macOS 또는 Cloud Shell

gcloud beta pam grants search \
    --entitlement=ENTITLEMENT_ID \
    --caller-relationship=had-created \
    --location=global \
    --RESOURCE_TYPE=RESOURCE_ID

Windows(PowerShell)

gcloud beta pam grants search `
    --entitlement=ENTITLEMENT_ID `
    --caller-relationship=had-created `
    --location=global `
    --RESOURCE_TYPE=RESOURCE_ID

Windows(cmd.exe)

gcloud beta pam grants search ^
    --entitlement=ENTITLEMENT_ID ^
    --caller-relationship=had-created ^
    --location=global ^
    --RESOURCE_TYPE=RESOURCE_ID

다음과 비슷한 응답이 표시됩니다.

additionalEmailRecipients:
- bola@example.com
createTime: '2024-03-07T00:34:32.557017289Z'
justification:
  unstructuredJustification: Renaming a file to mitigate issue #312
name: projects/my-project/locations/global/entitlements/ENTITLEMENT_ID/grants/GRANT_ID
privilegedAccess:
  gcpIamAccess:
    resource: //cloudresourcemanager.googleapis.com/projects/my-project
    resourceType: cloudresourcemanager.googleapis.com/Project
    roleBindings:
    - role: roles/storage.admin
requestedDuration: 3600s
requester: cruz@example.com
state: DENIED
timeline:
  events:
  - eventTime: '2024-03-07T00:34:32.793769042Z'
    requested:
      expireTime: '2024-03-08T00:34:32.793769042Z'
  - denied:
      actor: alex@example.com
      reason: Issue has already been resolved
    eventTime: '2024-03-07T00:36:08.309116203Z'
updateTime: '2024-03-07T00:34:32.926967128Z'

권한 부여의 상태는 다음과 같습니다.

상태 설명
ACTIVATING 권한 부여가 활성화되는 중입니다.
ACTIVATION_FAILED Privileged Access Manager가 재시도할 수 없는 오류로 인해 역할을 부여할 수 없습니다.
활성 권한 부여가 활성화되었고 주 구성원에 해당 역할에 허용되는 리소스에 대한 액세스 권한이 있습니다.
APPROVAL_AWAITED 권한 부여 요청이 승인 담당자의 결정을 기다리는 중입니다.
거부됨 승인 담당자가 권한 부여 요청을 거부했습니다.
ENDED 권한 부여가 종료되었고 역할이 주 구성원에서 삭제되었습니다.
만료됨 24시간 내에 승인이 부여되지 않아서 권한 부여 요청이 만료되었습니다.
REVOKED 권한 부여가 취소되었고 역할에 허용되는 리소스에 대한 액세스 권한이 더 이상 주 구성원에게 없습니다.
REVOKING 권한 부여를 취소하는 중입니다.

REST

HAD_CREATED 호출자 관계와 함께 사용되는 Privileged Access Manager API의 searchGrants 메서드는 사용자가 만든 권한 부여를 검색합니다. 상태를 확인하려면 응답에서 state 필드를 찾습니다.

요청 데이터를 사용하기 전에 다음을 바꿉니다.

  • SCOPE: 사용 권한이 있는 조직, 폴더, 프로젝트로, organizations/ORGANIZATION_ID, folders/FOLDER_ID 또는 projects/PROJECT_ID 형식입니다. 프로젝트 ID는 my-project와 같은 영숫자 문자열입니다. 폴더 및 조직 ID는 123456789012와 같은 숫자입니다.
  • ENTITLEMENT_ID: 권한 부여가 속한 사용 권한의 ID입니다.
  • FILTER: 선택사항. 필드 값이 AIP-160 표현식과 일치하는 권한 부여를 반환합니다.
  • PAGE_SIZE: 선택사항. 응답에 반환할 항목 수입니다.
  • PAGE_TOKEN: 선택사항. 이전 응답에서 반환된 페이지 토큰을 사용하여 응답을 시작하는 페이지입니다.

HTTP 메서드 및 URL:

GET https://privilegedaccessmanager.googleapis.com/v1beta/SCOPE/locations/global/entitlements/ENTITLEMENT_ID/grants:search?callerRelationship=HAD_CREATED&filter=FILTER&pageSize=PAGE_SIZE&pageToken=PAGE_TOKEN

요청을 보내려면 다음 옵션 중 하나를 펼칩니다.

다음과 비슷한 JSON 응답이 표시됩니다.

{
  "grants": [
    {
      "name": "projects/my-project/locations/global/entitlements/ENTITLEMENT_ID/grants/GRANT_ID",
      "createTime": "2024-03-06T03:08:49.330577625Z",
      "updateTime": "2024-03-06T03:08:49.625874598Z",
      "requester": "alex@example.com",
      "requestedDuration": "3600s",
      "justification": {
        "unstructuredJustification": "Emergency service for outage"
      },
      "state": "APPROVAL_AWAITED",
      "timeline": {
        "events": [
          {
            "eventTime": "2024-03-06T03:08:49.462765846Z",
            "requested": {
              "expireTime": "2024-03-07T03:08:49.462765846Z"
            }
          }
        ]
      },
      "privilegedAccess": {
        "gcpIamAccess": {
          "resourceType": "cloudresourcemanager.googleapis.com/Project",
          "resource": "//cloudresourcemanager.googleapis.com/projects/my-project",
          "roleBindings": [
            {
              "role": "roles/storage.admin"
            }
          ]
        }
      },
      "additionalEmailRecipients": [
        "bola@google.com"
      ]
    }
  ]
}

다음 표에서는 권한 부여 상태에 대해 자세히 설명합니다.

상태 설명
ACTIVATING 권한 부여가 활성화되는 중입니다.
ACTIVATION_FAILED Privileged Access Manager가 재시도할 수 없는 오류로 인해 역할을 부여할 수 없습니다.
활성 권한 부여가 활성화되었고 주 구성원에 해당 역할에 허용되는 리소스에 대한 액세스 권한이 있습니다.
APPROVAL_AWAITED 권한 부여 요청이 승인 담당자의 결정을 기다리는 중입니다.
거부됨 승인 담당자가 권한 부여 요청을 거부했습니다.
ENDED 권한 부여가 종료되었고 역할이 주 구성원에서 삭제되었습니다.
만료됨 24시간 내에 승인이 부여되지 않아서 권한 부여 요청이 만료되었습니다.
REVOKED 권한 부여가 취소되었고 역할에 허용되는 리소스에 대한 액세스 권한이 더 이상 주 구성원에게 없습니다.
REVOKING 권한 부여를 취소하는 중입니다.