# 4주차 과제 - 빈정원 (1)

**URL:** <https://forum.openinfra-kr.org/t/4-1/212>\
**Category:** 컨트리뷰션\
**Tags:** 2025컨트리뷰션, 컨트리뷰션\
**Created:** [8월 12, 2025, 9:46오전 UTC](https://forum.openinfra-kr.org/t/4-1/212 "2025-08-12T09:46:18Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![jbeen](https://forum.openinfra-kr.org/letter_avatar_proxy/v4/letter/j/8e8cbc/32.png) [@jbeen](https://forum.openinfra-kr.org/u/jbeen)\
**Post date:** [8월 12, 2025, 9:46오전 UTC](https://forum.openinfra-kr.org/t/4-1/212/1 "2025-08-12T09:46:18Z")

</div>

# 필수 과제

## 과제 선택

- [image] glance
- 경로 : `openstacksdk/openstack/tests/functional/image/v2/test_member`
- 명령어 : `openstack image member [get | list]`

## CLI 사용법 정리

- 이미지는 멤버를 생성하여 프로젝트 간에 이미지를 공유할 수 있음
- 이미지 멤버는 이미지에 대해 읽기 전용 권한을 가짐
- 이미지의 owner 속성 값이 project\_id인 오픈스택 클라우드에서는 member\_id로 소비자의 project\_id를 사용해야 함
- 이미지 공유는 프로젝트 간에 이루어지므로 공유받은 프로젝트 내의 모든 개별 사용자는 해당 이미지에 접근할 수 있음 (대상 프로젝트의 특정 사용자 한 명에게만 이미지를 공유할 수는 없음)
- 이미지가 공유되면 멤버는 해당 이미지에 즉시 접근할 수 있지만 다른 사용자들의 이미지 목록에 스팸이 발생하는 것을 방지하기 위해 공유된 이미지는 멤버가 이미지를 “accept”할 때까지 이미지 목록에 나타나지 않음
- 이미지 owner만 멤버를 생성할 수 있으며 이미지 멤버만 멤버 상태를 수정할 수 있음
- 참고 문서
  - [Image Service API v2 (CURRENT) — glance documentation](https://docs.openstack.org/api-ref/image/v2/index.html#sharing)
  - [Sharing Images using the Image API v2 — Glance Specs 0.0.1.dev496 documentation](https://specs.openstack.org/openstack/glance-specs/specs/api/v2/sharing-image-api-v2.html)

## CLI 테스트 (admin → demo로 공유)

1. 이미지 공유 테스트를 위해 admin 프로젝트에서 visibility가 shared인 이미지 생성  

2. 1번에서 생성한 이미지에 demo 프로젝트를 멤버로 추가  

3. admin 프로젝트에서 이미지 멤버 목록 확인 `openstack --os-cloud=admin image member list`  

4. admin 프로젝트에서 이미지 멤버 확인 `openstack --os-cloud=admin image member get`  

5. demo 프로젝트에서 이미지 목록 확인 (스팸이 발생하는 것을 방지하기 위해 보이지 않음)  
demo 프로젝트에서 --member-status=pending 옵션으로 이미지 목록 확인 (이미지가 공유되면 멤버는 해당 이미지에 즉시 접근할 수 있음)  

6. demo 프로젝트에서 이미지 확인 (이미지가 공유되면 멤버는 해당 이미지에 즉시 접근할 수 있음)  

7. demo 프로젝트에서 member-status를 accept로 변경 후 이미지 목록 확인 (공유받은 이미지가 보임)  

8. demo 프로젝트에서 이미지 목록 확인 `openstack --os-cloud=demo image member list`  

9. demo 프로젝트에서 이미지 멤버 확인 `openstack --os-cloud=demo image member get`
