使用CEPH RGW admin ops API 進行用戶user AK/SK管理的祕訣

需求: 雲平臺面板上須要支持爲不一樣的用戶建立不一樣的RGW 的AK/SK用戶祕鑰,以完成對象存儲的用戶隔離,並能夠管理bucket和查看bucket容量信息。 java

分析:查閱CEPH官網文檔 S3 API 沒有用戶管理的功能,而Admin Ops API有這個用戶管理功能。 根據文檔管理API的鑑權方式和S3的鑑權方式一致。
node

         而使用Admin Ops API的要點是要建立一個admin用戶並賦予user管理的相關權限,這是文檔中沒有描述的,通過深刻思考和分析,我才獲得這個祕訣。python

實現:git

1. 建立admin用戶,獲得AK/SK。github

   命令: radosgw-admin user create --uid admin --display_name adminui

2. 賦予admin用戶 user usage bucket 讀寫權限,這樣就能夠對象

   命令:radosgw-admin caps add --uid=admin --caps="users=read, write; usage=read,write;buckets=read, write"接口

3. 使用S3提供的sdk 如java sdk/python sdk中的鑑權方法和步驟1中的AK/SK 調用Admin Ops API文檔

    https://github.com/aws/aws-sdk-java/tree/master/aws-java-sdk-s3get

   能夠參考以下2個語言的SDK實現,實現java/其餘語言的 rgw admin的接口。

    python rgwadmin sdk:    https://pypi.python.org/pypi/rgwadmin/1.1.5

    node js  rgwadmin sdk:  https://github.com/tobilg/ceph-admin-ops-client

相關文章
相關標籤/搜索