Apigee Edge 문서 보기
이 주제에서는 Apigee 조직에 Apigee 스페이스를 만들어 대규모로 Apigee API 리소스의 Identity and Access Management 정책을 관리하는 방법을 설명합니다.
이 가이드에서는 다음에 필요한 단계를 간략하게 설명합니다.
Apigee 스페이스를 사용하여 API 리소스를 관리하는 데 따르는 이점에 대한 자세한 내용은 Apigee 스페이스를 참조하세요.
시작하기 전에
스페이스를 시작하기 전에 다음 사항을 확인하세요.
- Apigee 프로비저닝 사용할 Apigee 구독 또는 사용한 만큼만 지불 조직이 프로비저닝되었는지 확인합니다. Apigee를 프로비저닝하는 데 필요한 단계에 대한 자세한 내용은 프로비저닝 소개를 참조하세요.
- 인증 사용자 인증 정보를 가져옵니다. 명령줄에서 스페이스를 만들고 관리하는 명령어를 실행하기 전에 다음 명령어를 사용하여
gcloud
인증 사용자 인증 정보를 가져옵니다.export TOKEN=$(gcloud auth print-access-token)
필수 역할 및 권한
Make sure that you have the following role or roles on the project: Apigee > Apigee Organization Admin
Check for the roles
-
In the Google Cloud console, go to the IAM page.
Go to IAM - Select the project.
-
In the Principal column, find all rows that identify you or a group that you're included in. To learn which groups you're included in, contact your administrator.
- For all rows that specify or include you, check the Role column to see whether the list of roles includes the required roles.
Grant the roles
-
In the Google Cloud console, go to the IAM page.
IAM으로 이동 - 프로젝트를 선택합니다.
- 액세스 권한 부여를 클릭합니다.
-
새 주 구성원 필드에 사용자 식별자를 입력합니다. 일반적으로 Google 계정의 이메일 주소입니다.
- 역할 선택 목록에서 역할을 선택합니다.
- 역할을 추가로 부여하려면 다른 역할 추가를 클릭하고 각 역할을 추가합니다.
- 저장을 클릭합니다.
스페이스 만들기
이 태스크를 수행하려면 apigee.spaces.create
권한이 필요합니다.
이 권한은 Apigee Organization Admin
역할에 포함되어 있습니다.
Apigee 조직에서 스페이스를 만들려면 다음 명령어를 사용합니다.
curl -X POST -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \ "https://apigee.googleapis.com/v1/organizations/ORG_NAME/spaces" \ --data-raw '{ "name":"SPACE_NAME" }'
각 항목의 의미는 다음과 같습니다.
- ORG_NAME는 Apigee 조직의 이름입니다.
- SPACE_NAME은 만들려는 스페이스의 이름입니다.
예를 들어 다음 명령어는 acme 조직에 red라는 스페이스를 만듭니다.
curl -X POST -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \ https://apigee.googleapis.com/v1/organizations/acme/spaces \ --data-raw '{ "name":"red", }'
스페이스에서 구성원 및 역할 관리
스페이스를 만든 후에는 팀 구성원을 스페이스에 추가하고 스페이스에서 API 리소스를 만들고 관리하는 데 필요한 IAM 역할을 할당할 수 있습니다. Apigee 사용자는 적절한 권한이 부여된 팀 구성원이 있는 스페이스에서만 리소스를 만들고 관리할 수 있습니다. IAM 액세스 제어는 스페이스 수준에서 부여되므로 조직 구성원은 스페이스에 특별히 추가되지 않는 한 스페이스 API 리소스에 액세스하거나 관리할 수 없습니다. 스페이스 리소스를 관리하는 데 필요한 IAM 역할 및 권한에 관한 개요는 필요한 역할 및 권한을 참조하세요.
스페이스에 조직 구성원 추가
조직 구성원이 스페이스에 추가되면 두 개의 인수를 사용하는 스페이스에 대해 IAM 정책 바인딩이 생성됩니다.
- 스페이스 구성원 목록
- 구성원에게 부여된 역할 또는 역할 목록
이 태스크를 수행하려면 apigee.spaces.setIamPolicy
권한이 필요합니다.
이 권한은 Apigee Organization Admin
역할에 포함되어 있습니다.
조직 구성원을 스페이스에 추가하고 IAM 역할을 할당하려면 다음 명령어를 사용합니다.
curl -X POST -H "Authorization: Bearer $TOKEN" -H "Content-type: application/json" \ "https://apigee.googleapis.com/v1/organizations/ORG_NAME/spaces/SPACE_NAME:setIamPolicy" -d \ '{ "policy":{ "bindings":[ { "members": ["user:USER_EMAIL"], "role": "roles/IAM_ROLE" } ] } }'
각 항목의 의미는 다음과 같습니다.
- ORG_NAME은 Apigee 조직의 이름입니다.
- SPACE_NAME은 스페이스 이름입니다.
- USER_EMAIL은 스페이스에 추가할 사용자의 이메일 주소입니다.
- IAM_ROLE은 사용자에게 스페이스 구성원으로 할당할 IAM 역할의 이름입니다.
예를 들어 다음 명령어는 acme 조직의 red 스페이스에 my-email@acme.com 사용자를 추가하고 IAM 역할 apigee.apiAdminV2
를 부여합니다.
curl -X POST -H "Authorization: Bearer $TOKEN" -H "Content-type: application/json" \ "https://apigee.googleapis.com/v1/organizations/acme/spaces/red:setIamPolicy" -d \ '{ "policy":{ "bindings":[ { "members": ["user:my-email@acme.com"], "role": "roles/apigee.apiAdminV2" } ] } }'
스페이스의 IAM 정책을 업데이트하여 스페이스 구성원에게 추가 역할과 권한을 추가할 수 있습니다. 스페이스에 대한 IAM 정책을 업데이트하려면 수정된 원하는 역할 및 권한 목록을 사용하여 이 섹션에 설명된 setIamPolicy
메서드를 사용합니다. 이렇게 하면 역할과 권한이 적절하게 조정된 스페이스의 새 IAM 정책이 생성됩니다.
스페이스에 팀 구성원 추가하기
또는 스페이스에 팀 구성원을 추가하고 IAM 역할을 할당할 수 있습니다. 팀 구성원을 스페이스에 추가하고 IAM 역할을 할당하려면 다음 명령어를 사용합니다.
curl -X POST -H "Authorization: Bearer $TOKEN" -H "Content-type: application/json" \ "https://apigee.googleapis.com/v1/organizations/ORG_NAME/spaces/SPACE_NAME:setIamPolicy" -d \ '{ "policy":{ "bindings":[ { "members": ["group:GROUP_EMAIL"], "role": "roles/IAM_ROLE" } ] } }'
각 항목의 의미는 다음과 같습니다.
- ORG_NAME은 Apigee 조직의 이름입니다.
- SPACE_NAME은 스페이스 이름입니다.
- GROUP_EMAIL은 스페이스에 추가할 그룹의 이메일 주소입니다.
- IAM_ROLE은 스페이스 구성원으로 팀에 할당할 IAM 역할의 이름입니다.
예를 들어 다음 명령어는 acme-team@acme.com 그룹을 acme 조직의 red 스페이스에 추가하고 그룹에 apigee.apiAdminV2
역할을 부여합니다.
curl -X POST -H "Authorization: Bearer $TOKEN" -H "Content-type: application/json" \ "https://apigee.googleapis.com/v1/organizations/acme/spaces/red:setIamPolicy" -d \ '{ "policy":{ "bindings":[ { "members": ["group:red-team@acme.com"], "role": "roles/apigee.apiAdminV2" } ] } }'
스페이스에 조직 구성원 추가에 설명된 대로 IAM 역할 apigee.apiAdminV2
에는 스페이스 리소스를 관리하는 데 필요한 많은 권한이 포함되어 있습니다.
하지만 특정 태스크를 수행하려면 사용자에게 추가 역할을 부여해야 할 수 있습니다.
스페이스 IAM 정책 할당 확인
이 태스크를 수행하려면 apigee.spaces.getIamPolicy
권한이 필요합니다.
이 권한은 Apigee Organization Admin
역할에 포함되어 있습니다.
스페이스에 IAM 정책이 올바르게 설정되어 있는지 확인하려면 다음 명령어를 사용합니다.
curl -X GET -H "Authorization: Bearer $TOKEN" \ "https://apigee.googleapis.com/v1/organizations/ORG_NAME/spaces/SPACE_NAME:getIamPolicy"
각 항목의 의미는 다음과 같습니다.
- ORG_NAME은 Apigee 조직의 이름입니다.
- SPACE_NAME은 스페이스 이름입니다.
예를 들어 다음 명령어는 acme 조직의 red 스페이스에 대한 IAM 정책이 올바르게 설정되어 있는지 확인하는 데 사용됩니다.
curl -X GET -H "Authorization: Bearer $TOKEN" \ "https://apigee.googleapis.com/v1/organizations/acme/spaces/red:getIamPolicy"
명령어의 출력은 스페이스에 대한 현재 IAM 정책을 반환하며 다음과 같이 표시되어야 합니다.
{ "version": "0", "bindings": [ { "role": "roles/apigee.apiAdminV2", "members": [ "group:red-team@acme.com" ] } ] }
이 예시에서 스페이스의 IAM 정책은 스페이스 구성원(이 경우 red-team@acme.com 그룹의 구성원)에게 apigee.apiAdminV2
역할을 부여합니다.
red 팀 구성원만 red 스페이스에 대한 액세스 권한을 부여받은 조직 구성원입니다. 즉, red 팀 구성원만 red 스페이스에서 API 리소스를 만들고 관리할 수 있습니다. team-blue@acme.com과 같은 다른 조직 팀 구성원이 team-blue@acme.com 스페이스에서 생성된 API 프록시에 액세스하려고 하면 다음 오류가 표시됩니다.
{ "error": { "code": 403, "message": "Permission denied on resource \"organizations\/acme\/apis\/proxy-1\" (or it may not exist).", "status": "PERMISSION_DENIED" } }
스페이스에서 구성원 삭제하기
스페이스에서 구성원 또는 구성원 그룹을 삭제하려면 수정된 구성원 또는 그룹 목록으로 스페이스의 새 IAM 정책을 설정해야 합니다. setIamPolicy
메서드를 사용하면 역할과 구성원이 적절하게 조정된 스페이스의 새 IAM 정책이 생성됩니다.
예를 들어 blue 팀 스페이스의 구성원을 업데이트하려면 먼저 다음 명령어를 사용하여 현재 IAM 정책을 확인할 수 있습니다.
curl -X GET -H "Authorization: Bearer $TOKEN" \ "https://apigee.googleapis.com/v1/organizations/acme/spaces/blue:getIamPolicy"
명령어의 출력은 스페이스에 대한 현재 IAM 정책을 반환하며 다음과 같이 표시되어야 합니다.
{ "version": "0", "bindings": [ { "role": "roles/apigee.apiAdminV2", "members": [ "group: blue-team@acme.com", "users: user-a@acme.com, user-b@acme.com, user-c@acme.com" ] } ] }
스페이스에서 user-b@acme.com을 삭제하려면 다음 명령어를 사용합니다.
curl -X POST -H "Authorization: Bearer $TOKEN" -H "Content-type: application/json" \ "https://apigee.googleapis.com/v1/organizations/acme/spaces/blue:setIamPolicy" -d \ '{ "policy":{ "bindings":[ { "members": [ "group:blue-team@acme.com", "users: user-a@acme.com, user-c@acme.com" ] "role": "roles/apigee.apiAdminV2" } ] } }'
스페이스의 새 IAM 정책에는 더 이상 user-b@acme.com이 포함되지 않습니다.
스페이스에 포함된 그룹에서 구성원을 삭제하려면 먼저 그룹에서 구성원을 삭제한 다음 setIamPolicy 명령어를 다시 실행하여 스페이스의 IAM 정책을 그룹 이메일 별칭의 올바른 멤버십으로 업데이트합니다.
조직의 모든 스페이스 나열
이 태스크를 수행하려면 apigee.spaces.list
권한이 필요합니다.
이 권한은 Apigee Organization Admin
역할에 포함되어 있습니다.
Apigee 조직의 모든 스페이스를 나열하려면 다음 명령어를 사용합니다.
curl -X GET -H "Authorization: Bearer $TOKEN" \ "https://apigee.googleapis.com/v1/organizations/ORG_NAME/spaces"
여기서 ORG_NAME은 Apigee 조직 이름입니다.
예를 들어 다음 명령어는 acme 조직의 모든 스페이스를 나열합니다.
curl -X GET -H "Authorization: Bearer $TOKEN" \ "https://apigee.googleapis.com/v1/organizations/acme/spaces"
이 명령어는 다음과 같은 결과를 반환합니다.
{ "spaces": [ { "name": "red", "createTime": "2024-08-02T23:26:03.001512Z", "updateTime": "2024-08-02T23:26:03.001512Z" }, { "name": "blue", "createTime": "2024-08-02T00:34:54.159331Z", "updateTime": "2024-08-02T00:34:54.159331Z" } ] }
스페이스 세부정보 가져오기
이 태스크를 수행하려면 apigee.spaces.get
권한이 필요합니다.
이 권한은 Apigee Organization Admin
역할에 포함되어 있습니다.
다음 명령어를 사용하여 스페이스 세부정보를 가져옵니다.
curl -X GET -H "Authorization: Bearer $TOKEN" \ "https://apigee.googleapis.com/v1/organizations/ORG_NAME/spaces/SPACE_NAME"
각 항목의 의미는 다음과 같습니다.
- ORG_NAME은 Apigee 조직의 이름입니다.
- SPACE_NAME은 스페이스 이름입니다.
예를 들어 다음 명령어는 acme 조직의 red 스페이스에 대한 세부정보를 가져옵니다.
curl -X GET -H "Authorization: Bearer $TOKEN" \ "https://apigee.googleapis.com/v1/organizations/acme/spaces/red"
이 명령어는 다음과 같은 결과를 반환합니다.
{ "name": "red", "createTime": "2024-08-02T23:26:03.001512Z", "updateTime": "2024-08-02T23:26:03.001512Z" }
스페이스 업데이트
이 태스크를 수행하려면 apigee.spaces.update
권한이 필요합니다.
이 권한은 Apigee Organization Admin
역할에 포함되어 있습니다.
Apigee 조직의 스페이스를 업데이트하려면 다음 명령어를 사용합니다.
curl -X PATCH -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \ "https://apigee.googleapis.com/v1/organizations/ORG_NAME/spaces/SPACE_NAME" \ --data-raw '{ "displayName":"DISPLAY_NAME" }'
각 항목의 의미는 다음과 같습니다.
- ORG_NAME은 Apigee 조직의 이름입니다.
- SPACE_NAME은 스페이스 이름입니다.
- DISPLAY_NAME은 스페이스의 새 표시 이름입니다.
예를 들어 다음 명령어는 acme 조직에서 red 스페이스의 표시 이름을 업데이트합니다.
curl -X PATCH -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \ "https://apigee.googleapis.com/v1/organizations/acme/spaces/red" -d \ '{ "displayName": "Red team space" }'
스페이스 삭제
이 태스크를 수행하려면 apigee.spaces.delete
권한이 필요합니다.
이 권한은 Apigee Organization Admin
역할에 포함되어 있습니다. 스페이스를 삭제하기 전에 스페이스의 모든 리소스도 삭제되었는지 확인합니다.
Apigee 조직에서 스페이스를 삭제하려면 다음 명령어를 사용합니다.
curl -X DELETE -H "Authorization: Bearer $TOKEN" \ "https://apigee.googleapis.com/v1/organizations/ORG_NAME/spaces/SPACE_NAME"
예를 들어 다음 명령어는 acme 조직의 red 스페이스를 삭제합니다.
curl -X DELETE -H "Authorization: Bearer $TOKEN" \ "https://apigee.googleapis.com/v1/organizations/acme/spaces/red"
활성 리소스가 아직 연결된 스페이스를 삭제하려고 하면 다음 오류가 표시됩니다.
{ "error": { "code": 400, "message": "Space \"red\" has resources associated with it. Please delete the resources before deleting the space.", "status": "FAILED_PRECONDITION" } }
이 오류를 해결하려면 스페이스의 리소스를 삭제하거나 이동한 후 스페이스를 삭제해 보세요.
다음 단계
- Apigee 스페이스 자세히 알아보기
- Apigee 스페이스로 API 리소스를 관리하는 방법 알아보기
- Identity and Access Management(IAM) 문서 검토하기