2.3.11.5. Keystone과 함께 STS Lite를 구성 및 사용 (기술 프리뷰)
Amazon STS(Secure Token Service) 및 S3 API는 동일한 네임스페이스에 공존합니다. STS 옵션은 Keystone 옵션과 함께 구성할 수 있습니다.
S3 및 STS API는 모두 Ceph Object Gateway에서 동일한 끝점을 사용하여 액세스할 수 있습니다.
사전 요구 사항
- Red Hat Ceph Storage 3.2 이상.
- 실행 중인 Ceph 오브젝트 게이트웨이.
- Boto Python 모듈, 버전 3 이상 설치.
절차
다음 옵션을 사용하여
group_vars/rgws.yml
파일을 열고 편집합니다.rgw_sts_key = STS_KEY rgw_s3_auth_use_sts = true
rgw_sts_key = STS_KEY rgw_s3_auth_use_sts = true
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 교체:
-
세션 토큰을 암호화하는 데 사용되는 키가 있는
STS_KEY
.
-
세션 토큰을 암호화하는 데 사용되는 키가 있는
적절한 Ceph Ansible 플레이북을 다시 실행합니다.
베어 메탈 배포:
ansible-playbook site.yml --limit rgws
[user@admin ceph-ansible]$ ansible-playbook site.yml --limit rgws
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 컨테이너 배포:
ansible-playbook site-docker.yml --limit rgws
[user@admin ceph-ansible]$ ansible-playbook site-docker.yml --limit rgws
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
EC2 자격 증명을 생성합니다.
예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 생성된 자격 증명을 사용하여 GetSessionToken API를 사용하여 임시 보안 자격 증명 집합을 가져옵니다.
예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 임시 인증 정보를 얻는 데는 S3를 호출하는 데 사용할 수 있습니다.
예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 새 S3Access 역할을 생성하고 정책을 구성합니다.
관리 CAPS가 있는 사용자를 할당합니다.
구문
radosgw-admin caps add --uid="USER" --caps="roles=*"
radosgw-admin caps add --uid="USER" --caps="roles=*"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
radosgw-admin caps add --uid="gwadmin" --caps="roles=*"
[user@client]$ radosgw-admin caps add --uid="gwadmin" --caps="roles=*"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow S3Access 역할을 생성합니다.
구문
radosgw-admin role create --role-name=ROLE_NAME --path=PATH --assume-role-policy-doc=TRUST_POLICY_DOC
radosgw-admin role create --role-name=ROLE_NAME --path=PATH --assume-role-policy-doc=TRUST_POLICY_DOC
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
radosgw-admin role create --role-name=S3Access --path=/application_abc/component_xyz/ --assume-role-policy-doc=\{\"Version\":\"2012-10-17\",\"Statement\":\[\{\"Effect\":\"Allow\",\"Principal\":\{\"AWS\":\[\"arn:aws:iam:::user/TESTER\"\]\},\"Action\":\[\"sts:AssumeRole\"\]\}\]\}
[user@client]$ radosgw-admin role create --role-name=S3Access --path=/application_abc/component_xyz/ --assume-role-policy-doc=\{\"Version\":\"2012-10-17\",\"Statement\":\[\{\"Effect\":\"Allow\",\"Principal\":\{\"AWS\":\[\"arn:aws:iam:::user/TESTER\"\]\},\"Action\":\[\"sts:AssumeRole\"\]\}\]\}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow S3Access 역할에 권한 정책을 연결합니다.
구문
radosgw-admin role-policy put --role-name=ROLE_NAME --policy-name=POLICY_NAME --policy-doc=PERMISSION_POLICY_DOC
radosgw-admin role-policy put --role-name=ROLE_NAME --policy-name=POLICY_NAME --policy-doc=PERMISSION_POLICY_DOC
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
radosgw-admin role-policy put --role-name=S3Access --policy-name=Policy --policy-doc=\{\"Version\":\"2012-10-17\",\"Statement\":\[\{\"Effect\":\"Allow\",\"Action\":\[\"s3:*\"\],\"Resource\":\"arn:aws:s3:::example_bucket\"\}\]\}
[user@client]$ radosgw-admin role-policy put --role-name=S3Access --policy-name=Policy --policy-doc=\{\"Version\":\"2012-10-17\",\"Statement\":\[\{\"Effect\":\"Allow\",\"Action\":\[\"s3:*\"\],\"Resource\":\"arn:aws:s3:::example_bucket\"\}\]\}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
이제 다른 사용자가
gwadmin
사용자의 역할을 가정할 수 있습니다. 예를 들어gwuser
사용자는gwadmin
사용자의 권한을 가정할 수 있습니다. 가정 사용자의
access_key
및secret_key
값을 기록해 둡니다.예제
radosgw-admin user info --uid=gwuser | grep -A1 access_key
[user@client]$ radosgw-admin user info --uid=gwuser | grep -A1 access_key
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
AssumeRole API 호출을 사용하여 assuming 사용자의
access_key
및secret_key
값을 제공합니다.예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 중요AssumeRole API에는 S3Access 역할이 필요합니다.
추가 리소스
- Boto Python 모듈 설치에 대한 자세한 내용은 Red Hat Ceph Storage Object Gateway 가이드 의 Test S3 Access 섹션을 참조하십시오.
- 자세한 내용은 Red Hat Ceph Storage Object Gateway 가이드 의 Create a User 섹션을 참조하십시오.