이 페이지에서는 액세스 정책이 사용자 그룹에 적용되는 방식을 정의하는 기존 액세스 바인딩을 관리하는 방법을 설명합니다. 필요에 따라 이러한 바인딩을 보고 수정하고 삭제할 수 있습니다. 액세스 바인딩은 액세스 수준과 세션 제어가 사용자 그룹에 적용되는 방식을 결정합니다.
액세스 바인딩을 만드는 방법과 액세스 수준 및 세션 제어에 관한 자세한 내용은 액세스 바인딩으로 사용자 그룹에 정책 적용을 참고하세요.
액세스 바인딩 보기
사용자 그룹에 대해 액세스 바인딩이 생성되면 바인딩 액세스 수준의 만족도를 기준으로Google Cloud 콘솔 Google Cloud 및 API에 대한 액세스가 제어됩니다.
개발자는 생성한 액세스 바인딩의 세부정보를 열람, 수정, 삭제할 수 있습니다.
콘솔
Google Cloud 콘솔에서 Access Context Manager 페이지로 이동합니다.
메시지가 표시되면 프로젝트를 선택합니다. 액세스 바인딩 목록이 Access Context Manager 페이지에 표시됩니다.
gcloud
모든 액세스 바인딩을 보려면 다음 명령어를 실행합니다.
gcloud access-context-manager cloud-bindings list \ --organization ORG_ID
ORG_ID: 조직 ID입니다.
access-context-manager/organization
속성이 설정되지 않은 경우 선택사항인--organization
플래그의ORG_ID
를GcpAccessAdmin
역할을 만들 때 사용한 조직의 ID로 바꿉니다.액세스 바인딩 세부정보를 보려면 다음 명령어를 실행합니다.
gcloud access-context-manager cloud-bindings describe \ --binding=BINDING_ID
BINDING_ID
는 액세스 바인딩의 액세스 바인딩 또는 정규화된 식별자의 ID입니다.
API
모든 액세스 바인딩을 확인합니다.
요청 데이터를 사용하기 전에 다음을 바꿉니다.
-
ORG_ID
는GcpAccessAdmin
역할을 만들 때 사용한 조직의 ID입니다. 만약access-context-manager/organization
속성이 설정되지 않았다면, 선택사항인--organization
플래그의ORG_ID
를GcpAccessAdmin
역할을 만들 때 사용한 조직의 ID로 바꾸세요.
HTTP 메서드 및 URL:
GET https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings
요청을 보내려면 다음 옵션 중 하나를 선택합니다.
curl
다음 명령어를 실행합니다.
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings"PowerShell
다음 명령어를 실행합니다.
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings" | Select-Object -Expand Content다음과 비슷한 JSON 응답이 표시됩니다.
{ "name": string, "groupKey": string, "accessLevels": [ string ] "dryRunAccessLevels": [ string ] }
-
액세스 바인딩 세부정보를 확인합니다.
HTTP 메서드 및 URL:
GET https://accesscontextmanager.googleapis.com/v1/BINDING_ID
요청을 보내려면 다음 옵션 중 하나를 선택합니다.
curl
다음 명령어를 실행합니다.
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://accesscontextmanager.googleapis.com/v1/BINDING_ID"PowerShell
다음 명령어를 실행합니다.
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://accesscontextmanager.googleapis.com/v1/BINDING_ID" | Select-Object -Expand Content다음과 비슷한 JSON 응답이 표시됩니다.
{ "name": "organizations/427391306986/gcpUserAccessBindings/aAQS-YRSviv2hC12vZFUN3AZzvwa6KV2hJ89iMytB_nHUcT1l", "groupKey": "045jfvxd0ybeul8", "accessLevels": [ "accessPolicies/305009197125/accessLevels/device_lock" ], "dryRunAccessLevels": [ "accessPolicies/305009197125/accessLevels/another" ] }
액세스 바인딩 업데이트
액세스 바인딩을 업데이트하여 다음 작업을 할 수 있습니다.
- 정책이 적용되는 애플리케이션을 추가, 삭제 또는 변경합니다.
- 사용자 그룹 내 애플리케이션의 액세스 수준을 수정합니다.
- 새 테스트 실행 액세스 수준을 추가하거나 기존 액세스 수준을 라이브 수준으로 승격합니다.
콘솔
Google Cloud 콘솔에서 Access Context Manager 페이지로 이동합니다.
메시지가 표시되면 프로젝트를 선택합니다.
Access Context Manager 페이지에서 액세스 바인딩을 선택한 다음 수정을 클릭하여 업데이트합니다.
Google Cloud 콘솔에서는 테스트 실행 액세스 수준 또는 세션 제어로 액세스 바인딩을 업데이트할 수 없습니다.
gcloud
YAML 바인딩 파일을 만듭니다.
gcloud access-context-manager cloud-bindings update --binding ACCESS_BINDING --binding-file BINDING_FILE_PATH [ --level DEFAULT_ACCESS_LEVEL ] [ --dry-run-level DEFAULT_DRY_RUN_ACCESS_LEVEL ] [ --session-length=DEFAULT_SESSION_LENGTH ] [ --session-reauth-method=DEFAULT_SESSION_REAUTH_METHOD ]
다음을 바꿉니다.
-
ACCESS_BINDING
은organizations/ORG_ID/gcpUserAccessBindings/ACCESS_BINDING_NAME
형식입니다. -
BINDING_FILE_PATH: 액세스 바인딩 스키마가 포함된 YAML 파일의 경로입니다.
바인딩 파일은
scopedAccessSettings
만 지원합니다. -
DEFAULT_ACCESS_LEVEL: 선택적 액세스 수준 이름으로,
accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME
형식을 취합니다.POLICY_ID
을 액세스 정책 ID로 바꾸고ACCESS_LEVEL_NAME
을 액세스 수준 이름으로 바꿉니다. - DEFAULT_DRY_RUN_ACCESS_LEVEL_2: `accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME` 형식의 선택적 액세스 수준 이름입니다. YAML에 지정되지 않은 경우 지정된 액세스 수준을 기본적으로 모든 애플리케이션에 적용하려면 이 플래그를 포함하세요.
-
DEFAULT_SESSION_LENGTH: ISO 8601 기간 형식을 사용하는 선택적 세션 기간입니다(예: 30분의 경우
30m
, 2시간의 경우2h
). -
DEFAULT_SESSION_REAUTH_METHOD: 사용자가 신원을 재인증하도록 요청하는 선택적 메서드입니다. 다음 중 하나여야 합니다.
LOGIN
: MFA 또는 기타 Workspace 정의 요소를 포함할 수 있는 표준 로그인을 적용합니다.PASSWORD
: 다른 요소가 정의되어 있어도 비밀번호만 요구합니다. 외부 IdP를 사용하여 비밀번호를 관리하는 경우 사용자는 IdP로 리디렉션됩니다. IdP 세션이 활성 상태이면 사용자가 암시적으로 다시 인증됩니다. IdP가 활성화되지 않은 경우 사용자는 IdP를 통해 로그인해야 합니다.SECURITY_KEY
: 하드웨어 보안 키가 필요합니다.
--level
및--binding-file
인수가 함께 작동하는 방식--binding-file
만 사용하는 경우 파일의 애플리케이션에만 정책이 적용됩니다.--level
만 사용하는 경우 액세스 수준이 모든 애플리케이션에 적용됩니다.- 두 가지를 모두 사용하면 규칙이 결합됩니다.
--level
값은 모든 애플리케이션에 적용되는 반면--binding-file
로 지정된 YAML 파일의 정책은 파일에 정의된 애플리케이션에만 적용됩니다.
세션 컨트롤 작업
- 모든 애플리케이션의 기본 세션 제어를 설정하려면
--session-length
및--session-reauth-method
를 사용하세요. - YAML 파일에 세션 제어를 정의하는 경우 해당 세션 제어가 특정 애플리케이션의 기본 설정을 재정의합니다.
--session-length
및--session-reauth-method
를 함께 사용해야 합니다.
기본 액세스 수준 또는 기본 테스트 실행 액세스 수준을 삭제하려면
--level=
또는--dry-run-level=
과 같은 빈 문자열을 제공합니다. 이러한 인수가 제공되지 않으면update
명령어가 아무것도 변경하지 않습니다.세션 제어를 삭제하려면
--session-length=0
를 설정합니다.-
API
JSON 본문을 만듭니다.
{ "accessLevels": [ "DEFAULT_ACCESS_LEVEL" ], "scopedAccessSettings": [ { "scope": { "clientScope": { "restrictedClientApplication": { "clientId": "CLIENT_ID" } } }, "activeSettings": { "accessLevels": [ "ACCESS_LEVEL_A" ], "sessionSettings": [ { "sessionLength": "SESSION_LENGTH", "sessionReauthMethod": "SESSION_REAUTH_METHOD", "sessionLengthEnabled": true } ] } }, { "scope": { "clientScope": { "restrictedClientApplication": { "name": "CLIENT_NAME" } }, "activeSettings": { "accessLevels": [ "ACCESS_LEVEL_C" ] } } } ] }
다음을 바꿉니다.
-
DEFAULT_ACCESS_LEVEL: 선택적 액세스 수준 이름으로,
accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME
형식을 취합니다.POLICY_ID
을 액세스 정책 ID로 바꾸고ACCESS_LEVEL_NAME
을 액세스 수준 이름으로 바꿉니다. - CLIENT_ID: OAuth 클라이언트 ID입니다. 애플리케이션에
sessionSettings
가 포함된 경우clientId
를 사용해야 합니다. - ACCESS_LEVEL_A:
accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME
형식의 액세스 수준 이름입니다. - SESSION_LENGTH: 세션 지속 시간입니다. ISO 8601 지속 시간 형식을 사용합니다(예: 30분의 경우
30m
, 2시간의 경우2h
). SESSION_REAUTH_METHOD: 사용자의 신원을 재인증하도록 요청하는 선택적 메서드입니다. 다음 중 하나여야 합니다.
LOGIN
: MFA 또는 기타 Workspace 정의 요소를 포함할 수 있는 표준 로그인을 적용합니다.PASSWORD
: 다른 요소가 정의된 경우에도 비밀번호만 요구합니다. 외부 IdP를 사용하여 비밀번호를 관리하는 경우 사용자는 IdP로 리디렉션됩니다. IdP 세션이 활성 상태이면 사용자가 암시적으로 재인증됩니다. IdP가 활성화되지 않은 경우 사용자는 IdP를 통해 로그인해야 합니다.SECURITY_KEY
: 하드웨어 보안 키가 필요합니다.
CLIENT_NAME: 클라이언트 이름입니다. 애플리케이션에
sessionSettings
이 포함된 경우 클라이언트 이름을 사용할 수 없습니다. 대신 OAuth 클라이언트 ID를 사용하세요.ACCESS_LEVEL_C:
accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME
형식의 액세스 수준 이름입니다.
-
DEFAULT_ACCESS_LEVEL: 선택적 액세스 수준 이름으로,
PATCH 요청을 전송합니다.
PATCH https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING?fieldMask=FIELDMASK
다음을 바꿉니다.
-
ACCESS_BINDING
은organizations/ORG_ID/gcpUserAccessBindings/ACCESS_BINDING_NAME
형식입니다. - FIELD_MASK: 업데이트할 필드의 필수 쉼표로 구분된 목록입니다. 액세스 바인딩의 어떤 부분을 수정할지 API에 알려줍니다.
fieldMask
에는 업데이트하려는 요청 본문의 최상위 JSON 키가 포함되어야 하며, 여기에는accessLevels
,dryRunAccessLevels
,scopedAccessSettings
가 포함될 수 있습니다.성공하면 JSON 객체의 표현이 표시됩니다. 문제가 있으면 오류 메시지가 표시됩니다.
-
액세스 바인딩 삭제
콘솔
Google Cloud 콘솔에서 Access Context Manager 페이지로 이동합니다.
메시지가 표시되면 프로젝트를 선택합니다.
Access Context Manager 페이지에서 액세스 바인딩을 선택한 다음 삭제를 클릭합니다.
gcloud
gcloud access-context-manager cloud-bindings delete \
--binding ACCESS_BINDING
다음을 바꿉니다.
-
ACCESS_BINDING
은organizations/ORG_ID/gcpUserAccessBindings/ACCESS_BINDING_NAME
형식입니다. -
ACCESS_BINDING_NAME
은 액세스 바인딩이 만들어졌을 때name
식별자에 반환된 고유 문자열입니다.
API
요청 데이터를 사용하기 전에 다음을 바꿉니다.
-
ACCESS_BINDING_NAME
은 액세스 바인딩이 만들어졌을 때name
식별자에 반환된 고유 문자열입니다.
HTTP 메서드 및 URL:
DELETE https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME
요청을 보내려면 다음 옵션 중 하나를 선택합니다.
curl
다음 명령어를 실행합니다.
curl -X DELETE \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME"
PowerShell
다음 명령어를 실행합니다.
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method DELETE `
-Headers $headers `
-Uri "https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME" | Select-Object -Expand Content
성공 상태 코드(2xx)와 빈 응답을 받게 됩니다.