정책 나열 및 가져오기
이 페이지에서는 정책을 나열하고 가져오는 방법을 보여주는 코드 예시를 제공합니다.
시작하기 전에
정책 API 설정을 완료합니다.
정책 나열
다음 예는 조직의 정책을 나열하는 방법을 보여줍니다.
Python
다음 예에서는 Python을 사용하여 정책을 나열하는 방법을 보여줍니다.
"""Sample script to demonstrate the use of the List method in the Policy API."""
import json
import pprint
import time
import urllib.request
import google.auth.transport.requests
from absl import app
from google.oauth2 import service_account
SCOPES = ['https://www.googleapis.com/auth/cloud-identity.policies']
BASE_URL = 'https://cloudidentity.googleapis.com/'
# Change this to the location of the service-account credentials.
SA_FILE = ''
# Enter the administrator to call as here.
ADMIN_EMAIL = ''
PAGE_SIZE = 100
# To list all policies, set FILTER to '';
# To list policies for a specific customer, set FILTER to
# 'customer == "customers/{obfuscated_target_customer_id}"';
# To list policies for a specific Application, such as Gmail, set FILTER to
# 'setting.type.matches("gmail.*")';
# To list policies for a specific Setting, such as service_status, set FILTER to
# 'setting.type.matches(".*service_status")'.
FILTER = ''
def create_delegated_credentials(user_email):
credentials = service_account.Credentials.from_service_account_file(
SA_FILE, scopes=SCOPES
)
delegated_credentials = credentials.with_subject(user_email)
return delegated_credentials
def build_list_policies_request(page_size, filter, page_token, access_token):
list_url = (
BASE_URL
+ 'v1beta1/'
+ 'policies?'
+ 'page_size='
+ str(page_size)
+ '&filter='
+ filter
+ '&page_token='
+ page_token
)
request = urllib.request.Request(list_url)
request.add_header('Authorization', 'Bearer ' + access_token)
return request
def call_list_policies_api(request):
content = urllib.request.urlopen(request).read()
response = json.loads(content)
return response
def call_list_policies_api_till_last_page(access_token):
page_token = ''
# Paginate until the last page.
while True:
list_policies_request = build_list_policies_request(
PAGE_SIZE, FILTER, page_token, access_token
)
list_policies_response = call_list_policies_api(list_policies_request)
print_list_policies_response(list_policies_response)
if 'nextPageToken' not in list_policies_response or not list_policies_response['nextPageToken']:
print('This is the last page.')
break
page_token = list_policies_response['nextPageToken']
time.sleep(1)
def print_list_policies_response(response):
pp = pprint.PrettyPrinter(indent=4)
if 'policies' in response:
for policy in response['policies']:
pp.pprint(policy)
if 'nextPageToken' in response:
print('Next page token: ' + response['nextPageToken'])
def main(unused_argv):
dc = create_delegated_credentials(ADMIN_EMAIL)
dc.refresh(google.auth.transport.requests.Request())
call_list_policies_api_till_last_page(dc.token)
if __name__ == '__main__':
app.run(main)
정책 가져오기
다음 예는 특정 정책을 가져오는 방법을 보여줍니다.
Python
다음 예에서는 Python을 사용하여 특정 정책을 가져오는 방법을 보여줍니다.
"""Sample script to demonstrate the use of the get method in the Policy API."""
import json
import pprint
import time
import urllib.request
import google.auth.transport.requests
from absl import app
from google.oauth2 import service_account
SCOPES = ['https://www.googleapis.com/auth/cloud-identity.policies']
BASE_URL = 'https://cloudidentity.googleapis.com/'
# Change this to the location of the service-account credentials.
SA_FILE = ''
# Enter the administrator to call as here.
ADMIN_EMAIL = ''
# Set POLICY_NAME to policy.name (policies/{obfuscated_policy_id}) to call
# GetPolicy API.
POLICY_NAME = 'policies/...'
def build_get_policy_request(policy_name, access_token):
list_url = BASE_URL + 'v1beta1/' + policy_name
request = urllib.request.Request(list_url)
request.add_header('Authorization', 'Bearer ' + access_token)
return request
def call_get_policy_api(access_token):
request = build_get_policy_request(POLICY_NAME, access_token)
content = urllib.request.urlopen(request).read()
response = json.loads(content)
print_get_policy_response(response)
def print_get_policy_response(response):
pp = pprint.PrettyPrinter(indent=4)
pp.pprint(response)
def main(unused_argv):
dc = create_delegated_credentials(ADMIN_EMAIL)
dc.refresh(google.auth.transport.requests.Request())
call_get_policy_api(dc.token)
if __name__ == '__main__':
app.run(main)
할당량
각 Google Cloud 프로젝트의 경우 Cloud Identity Policy API는 초당 1개의 쿼리 (QPS)를 지원합니다. Cloud Identity Policy API는 고객이 여러 개의 Google Cloud 프로젝트를 만들더라도 고객별로 총 1개의 QPS를 지원합니다.
할당량 증가는 지원되지 않습니다.