创建角色
#语法:
radosgw-admin role create --role-name={role-name} [--path=="{path to the role}"] [--assume-role-policy-doc={trust-policy-document}]
#实例:
[ceph@ceph03 ~]$ 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": "8220c880-4497-46c1-a49f-84ed3fd13a4f",
"RoleName": "S3Access1",
"Path": "/application_abc/component_xyz/",
"Arn": "arn:aws:iam:::role/application_abc/component_xyz/S3Access1",
"CreateDate": "2020-05-26T08:26:02.894Z",
"MaxSessionDuration": 3600,
"AssumeRolePolicyDocument": "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Effect\":\"Allow\",\"Principal\":{\"AWS\":[\"arn:aws:iam:::user/TESTER\"]},\"Action\":[\"sts:AssumeRole\"]}]}"
}
删除角色
radosgw-admin role rm --role-name={role-name}
获取角色
radosgw-admin role get --role-name={role-name}
列出角色
#列出具有指定路径前缀的角色,语法:
radosgw-admin role list [--path-prefix ={path prefix}]
#实例:
[ceph@ceph03 ~]$ radosgw-admin role list --path-prefix="/application"
[
{
"RoleId": "8220c880-4497-46c1-a49f-84ed3fd13a4f",
"RoleName": "S3Access1",
"Path": "/application_abc/component_xyz/",
"Arn": "arn:aws:iam:::role/application_abc/component_xyz/S3Access1",
"CreateDate": "2020-05-26T08:26:02.894Z",
"MaxSessionDuration": 3600,
"AssumeRolePolicyDocument": "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Effect\":\"Allow\",\"Principal\":{\"AWS\":[\"arn:aws:iam:::user/TESTER\"]},\"Action\":[\"sts:AssumeRole\"]}]}"
},
{
"RoleId": "be6291a0-898b-4055-b5ca-06c07527c085",
"RoleName": "S3Access2",
"Path": "/application/component/",
"Arn": "arn:aws:iam:::role/application/component/S3Access2",
"CreateDate": "2020-05-26T08:28:21.176Z",
"MaxSessionDuration": 3600,
"AssumeRolePolicyDocument": "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Effect\":\"Allow\",\"Principal\":{\"AWS\":[\"arn:aws:iam:::user/TESTER\"]},\"Action\":[\"sts:AssumeRole\"]}]}"
}
]
更新角色的策略文档
#语法:
radosgw-admin role modify --role-name={role-name} --assume-role-policy-doc={trust-policy-document}
#实例:
[ceph@ceph03 ~]$ radosgw-admin role modify --role-name=S3Access1 --assume-role-policy-doc=\{\"Version\":\"2012-10-17\",\"Statement\":\[\{\"Effect\":\"Allow\",\"Principal\":\{\"AWS\":\[\"arn:aws:iam:::user/TESTER2\"\]\},\"Action\":\[\"sts:AssumeRole\"\]\}\]\}
Assume role policy document updated successfully for role: S3Access
添加/更新附加到角色的策略
#语法:
radosgw-admin role policy put --role-name={role-name} --policy-name={policy-name} --policy-doc={permission-policy-doc}
#实例:
[ceph@ceph03 ~]$ 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\"\}\]\}
Permission policy attached successfully
列出附加到角色的权限策略名称
[ceph@ceph03 ~]$ radosgw-admin role-policy list --role-name=S3Access1
[
"Policy1"
]
获取附加到角色的权限策略
[ceph@ceph03 ~]$ 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\"}]}"
}
删除附加到角色的策略
radosgw-admin role policy rm --role-name={role-name} --policy-name={policy-name}
REST API操纵角色
除了上面的radosgw-admin命令之外,还可以使用以下REST API来操纵角色。有关请求参数及其说明,请参阅上面的部分。
为了调用REST管理API,需要创建一个具有管理员权限的用户。
radosgw-admin --uid TESTER --display-name "TestUser" --access_key TESTER --secret test123 user create
radosgw-admin caps add --uid="TESTER" --caps="roles=*"
文档更新时间: 2020-05-26 16:47 作者:子木