이 페이지에서는 액세스 정책이 사용자 그룹에 적용되는 방식을 정의하는 기존 액세스 바인딩을 관리하는 방법을 설명합니다. 필요에 따라 이러한 바인딩을 보고 수정하고 삭제할 수 있습니다. 액세스 바인딩은 액세스 수준 및 세션 제어가 사용자 그룹에 적용되는 방식을 결정합니다.
액세스 결합을 만드는 방법과 액세스 수준 및 세션 제어에 관한 자세한 내용은 액세스 결합을 사용하여 사용자 그룹에 정책 적용을 참고하세요.
액세스 바인딩 보기
사용자 그룹에 대해 액세스 바인딩이 생성되면 바인딩 액세스 수준의 만족도를 기준으로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
만 사용하는 경우 액세스 수준이 모든 애플리케이션에 적용됩니다.- 둘 다 사용하는 경우 YAML 파일의 규칙이 우선 적용됩니다.
--level
값은 파일에 나열되지 않은 모든 애플리케이션에 적용됩니다.
세션 관리 컨트롤 사용하기
- 모든 애플리케이션에 기본 세션 제어를 설정하려면
--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)와 빈 응답을 받게 됩니다.