9.5. 역할 관리
스토리지 관리자는 radosgw-admin
명령을 사용하여 역할 및 해당 역할과 연결된 권한을 생성, 삭제 또는 업데이트할 수 있습니다.
역할은 사용자와 유사하며 권한 정책이 연결되어 있습니다. 모든 ID로 간주할 수 있습니다. 사용자가 역할을 가정하면 동적으로 생성된 임시 인증 정보 세트가 사용자에게 반환됩니다. 역할은 일부 S3 리소스에 액세스할 수 있는 권한이 없는 사용자, 애플리케이션 및 서비스에 대한 액세스를 위임하는 데 사용할 수 있습니다.
9.5.1. 역할 생성
radosgw-admin role create
명령을 사용하여 사용자의 역할을 생성합니다. 명령에 assume-role-policy-doc
매개 변수를 사용하여 사용자를 생성해야 합니다. 이 매개 변수는 엔터티에 역할을 가정할 수 있는 권한을 부여하는 신뢰 관계 정책 문서입니다.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
- Ceph Object Gateway 설치
- Ceph Object Gateway 노드에 대한 루트 수준 액세스.
- S3 버킷이 생성되었습니다.
- 사용자 액세스 권한이 있는 S3 사용자
프로세스
역할을 생성합니다.
구문
radosgw-admin role create --role-name=ROLE_NAME [--path=="PATH_TO_FILE"] [--assume-role-policy-doc=TRUST_RELATIONSHIP_POLICY_DOCUMENT]
예
[root@host01 ~]# radosgw-admin role create --role-name=S3Access1 --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\"\]\}\]\} { "RoleId": "ca43045c-082c-491a-8af1-2eebca13deec", "RoleName": "S3Access1", "Path": "/application_abc/component_xyz/", "Arn": "arn:aws:iam:::role/application_abc/component_xyz/S3Access1", "CreateDate": "2022-06-17T10:18:29.116Z", "MaxSessionDuration": 3600, "AssumeRolePolicyDocument": "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Effect\":\"Allow\",\"Principal\":{\"AWS\":[\"arn:aws:iam:::user/TESTER\"]},\"Action\":[\"sts:AssumeRole\"]}]}" }
--path
의 값은 기본적으로/
입니다.
9.5.2. 역할 가져오기
get
명령을 사용하여 역할에 대한 정보를 가져옵니다.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
- Ceph Object Gateway 설치
- Ceph Object Gateway 노드에 대한 루트 수준 액세스.
- S3 버킷이 생성되었습니다.
- 생성된 역할입니다.
- 사용자 액세스 권한이 있는 S3 사용자
프로세스
역할에 대한 정보를 가져옵니다.
구문
radosgw-admin role get --role-name=ROLE_NAME
예
[root@host01 ~]# radosgw-admin role get --role-name=S3Access1 { "RoleId": "ca43045c-082c-491a-8af1-2eebca13deec", "RoleName": "S3Access1", "Path": "/application_abc/component_xyz/", "Arn": "arn:aws:iam:::role/application_abc/component_xyz/S3Access1", "CreateDate": "2022-06-17T10:18:29.116Z", "MaxSessionDuration": 3600, "AssumeRolePolicyDocument": "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Effect\":\"Allow\",\"Principal\":{\"AWS\":[\"arn:aws:iam:::user/TESTER\"]},\"Action\":[\"sts:AssumeRole\"]}]}" }
추가 리소스
- 자세한 내용은 Red Hat Ceph Storage Object Gateway 가이드 의 역할 생성 섹션을 참조하십시오.
9.5.3. 역할 나열
list 명령을 사용하여 특정 경로의 역할을 나열
할 수 있습니다.
모든 역할을 나열하려면 radosgw-admin 역할 목록 --account-id <RGWaccountID> 명령에 계정 ID
를 지정해야 합니다.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
- Ceph Object Gateway 설치
- Ceph Object Gateway 노드에 대한 루트 수준 액세스.
- S3 버킷이 생성되었습니다.
- 생성된 역할입니다.
- 사용자 액세스 권한이 있는 S3 사용자
프로세스
역할을 나열합니다.
구문
radosgw-admin role list
예
[root@host01 ~]# radosgw-admin role list [ { "RoleId": "85fb46dd-a88a-4233-96f5-4fb54f4353f7", "RoleName": "kvm-sts", "Path": "/application_abc/component_xyz/", "Arn": "arn:aws:iam:::role/application_abc/component_xyz/kvm-sts", "CreateDate": "2022-09-13T11:55:09.39Z", "MaxSessionDuration": 7200, "AssumeRolePolicyDocument": "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Effect\":\"Allow\",\"Principal\":{\"AWS\":[\"arn:aws:iam:::user/kvm\"]},\"Action\":[\"sts:AssumeRole\"]}]}" }, { "RoleId": "9116218d-4e85-4413-b28d-cdfafba24794", "RoleName": "kvm-sts-1", "Path": "/application_abc/component_xyz/", "Arn": "arn:aws:iam:::role/application_abc/component_xyz/kvm-sts-1", "CreateDate": "2022-09-16T00:05:57.483Z", "MaxSessionDuration": 3600, "AssumeRolePolicyDocument": "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Effect\":\"Allow\",\"Principal\":{\"AWS\":[\"arn:aws:iam:::user/kvm\"]},\"Action\":[\"sts:AssumeRole\"]}]}" } ]
9.5.4. 역할의 역할 정책 문서 업데이트
modify
명령으로 역할을 가정할 수 있도록 엔터티 권한을 부여하는 assume 역할 정책 문서를 업데이트할 수 있습니다.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
- Ceph Object Gateway 설치
- Ceph Object Gateway 노드에 대한 루트 수준 액세스.
- S3 버킷이 생성되었습니다.
- 생성된 역할입니다.
- 사용자 액세스 권한이 있는 S3 사용자
프로세스
역할의 assume 역할 정책 문서를 수정합니다.
구문
radosgw-admin role-trust-policy modify --role-name=ROLE_NAME --assume-role-policy-doc=TRUST_RELATIONSHIP_POLICY_DOCUMENT
예
[root@host01 ~]# radosgw-admin role-trust-policy modify --role-name=S3Access1 --assume-role-policy-doc=\{\"Version\":\"2012-10-17\",\"Statement\":\[\{\"Effect\":\"Allow\",\"Principal\":\{\"AWS\":\[\"arn:aws:iam:::user/TESTER\"\]\},\"Action\":\[\"sts:AssumeRole\"\]\}\]\} { "RoleId": "ca43045c-082c-491a-8af1-2eebca13deec", "RoleName": "S3Access1", "Path": "/application_abc/component_xyz/", "Arn": "arn:aws:iam:::role/application_abc/component_xyz/S3Access1", "CreateDate": "2022-06-17T10:18:29.116Z", "MaxSessionDuration": 3600, "AssumeRolePolicyDocument": "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Effect\":\"Allow\",\"Principal\":{\"AWS\":[\"arn:aws:iam:::user/TESTER\"]},\"Action\":[\"sts:AssumeRole\"]}]}" }
9.5.5. 역할에 연결된 권한 정책 가져오기
get
명령을 사용하여 역할에 연결된 특정 권한 정책을 가져올 수 있습니다.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
- Ceph Object Gateway 설치
- Ceph Object Gateway 노드에 대한 루트 수준 액세스.
- S3 버킷이 생성되었습니다.
- 생성된 역할입니다.
- 사용자 액세스 권한이 있는 S3 사용자
프로세스
권한 정책을 가져옵니다.
구문
radosgw-admin role-policy get --role-name=ROLE_NAME --policy-name=POLICY_NAME
예
[root@host01 ~]# radosgw-admin role-policy get --role-name=S3Access1 --policy-name=Policy1 { "Permission policy": "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Effect\":\"Allow\",\"Action\":[\"s3:*\"],\"Resource\":\"arn:aws:s3:::example_bucket\"}]}" }
9.5.6. 역할 삭제
연결된 권한 정책을 제거한 후에만 역할을 삭제할 수 있습니다.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
- Ceph Object Gateway 설치
- Ceph Object Gateway 노드에 대한 루트 수준 액세스.
- 생성된 역할입니다.
- S3 버킷이 생성되었습니다.
- 사용자 액세스 권한이 있는 S3 사용자
프로세스
역할에 연결된 정책을 삭제합니다.
구문
radosgw-admin role policy delete --role-name=ROLE_NAME --policy-name=POLICY_NAME
예
[root@host01 ~]# radosgw-admin role policy delete --role-name=S3Access1 --policy-name=Policy1
역할을 삭제합니다.
구문
radosgw-admin role delete --role-name=ROLE_NAME
예
[root@host01 ~]# radosgw-admin role delete --role-name=S3Access1
9.5.7. 역할에 연결된 정책 업데이트
put
명령을 사용하여 역할에 연결된 인라인 정책을 추가하거나 업데이트할 수 있습니다.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
- Ceph Object Gateway 설치
- Ceph Object Gateway 노드에 대한 루트 수준 액세스.
- S3 버킷이 생성되었습니다.
- 생성된 역할입니다.
- 사용자 액세스 권한이 있는 S3 사용자
프로세스
인라인 정책을 업데이트합니다.
구문
radosgw-admin role-policy put --role-name=ROLE_NAME --policy-name=POLICY_NAME --policy-doc=PERMISSION_POLICY_DOCUMENT
예
[root@host01 ~]# radosgw-admin role-policy put --role-name=S3Access1 --policy-name=Policy1 --policy-doc=\{\"Version\":\"2012-10-17\",\"Statement\":\[\{\"Effect\":\"Allow\",\"Action\":\[\"s3:*\"\],\"Resource\":\"arn:aws:s3:::example_bucket\"\}\]\}
이 예제에서는
Policy1
을example_bucket
의 모든 S3 작업을 허용하는S3Access1
역할에 연결합니다.
9.5.8. 역할에 연결된 권한 정책 나열
list 명령을 사용하여 역할에 연결된 권한 정책의 이름을 나열
할 수 있습니다.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
- Ceph Object Gateway 설치
- Ceph Object Gateway 노드에 대한 루트 수준 액세스.
- S3 버킷이 생성되었습니다.
- 생성된 역할입니다.
- 사용자 액세스 권한이 있는 S3 사용자
프로세스
권한 정책의 이름을 나열합니다.
구문
radosgw-admin role-policy list --role-name=ROLE_NAME
예
[root@host01 ~]# radosgw-admin role-policy list --role-name=S3Access1 [ "Policy1" ]
9.5.9. 역할에 연결된 정책 삭제
rm
명령을 사용하여 역할에 연결된 권한 정책을 삭제할 수 있습니다.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
- Ceph Object Gateway 설치
- Ceph Object Gateway 노드에 대한 루트 수준 액세스.
- S3 버킷이 생성되었습니다.
- 생성된 역할입니다.
- 사용자 액세스 권한이 있는 S3 사용자
프로세스
권한 정책을 삭제합니다.
구문
radosgw-admin role policy delete --role-name=ROLE_NAME --policy-name=POLICY_NAME
예
[root@host01 ~]# radosgw-admin role policy delete --role-name=S3Access1 --policy-name=Policy1
9.5.10. 역할의 세션 기간 업데이트
update
명령을 사용하여 역할의 세션 기간을 업데이트하여 제공된 인증 정보를 사용하여 사용자에게 로그인할 수 있는 시간을 제어할 수 있습니다.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
- Ceph Object Gateway 설치
- Ceph Object Gateway 노드에 대한 루트 수준 액세스.
- S3 버킷이 생성되었습니다.
- 생성된 역할입니다.
- 사용자 액세스 권한이 있는 S3 사용자
프로세스
update
명령을 사용하여 max-session-duration을 업데이트합니다.구문
[root@node1 ~]# radosgw-admin role update --role-name=ROLE_NAME --max-session-duration=7200
예
[root@node1 ~]# radosgw-admin role update --role-name=test-sts-role --max-session-duration=7200
검증
역할을 나열하여 업데이트를 확인합니다.
예
[root@node1 ~]#radosgw-admin role list [ { "RoleId": "d4caf33f-caba-42f3-8bd4-48c84b4ea4d3", "RoleName": "test-sts-role", "Path": "/", "Arn": "arn:aws:iam:::role/test-role", "CreateDate": "2022-09-07T20:01:15.563Z", "MaxSessionDuration": 7200, <<<<<< "AssumeRolePolicyDocument": "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Effect\":\"Allow\",\"Principal\":{\"AWS\":[\"arn:aws:iam:::user/kvm\"]},\"Action\":[\"sts:AssumeRole\"]}]}" } ]
추가 리소스
- 자세한 내용은 Red Hat Ceph Storage 개발자 가이드 의 역할 조작 섹션을 참조하십시오.