A.16. 用于操作角色的 REST API
除了 radosgw-admin role
命令外,您还可以使用 REST API 来操作角色。
若要调用 REST admin API,请创建一个具有 admin caps 的用户。
示例
radosgw-admin --uid TESTER --display-name "TestUser" --access_key TESTER --secret test123 user create radosgw-admin caps add --uid="TESTER" --caps="roles=*"
[root@host01 ~]# radosgw-admin --uid TESTER --display-name "TestUser" --access_key TESTER --secret test123 user create
[root@host01 ~]# radosgw-admin caps add --uid="TESTER" --caps="roles=*"
创建角色:
语法
POST “<hostname>?Action=CreateRole&RoleName=ROLE_NAME&Path=PATH_TO_FILE&AssumeRolePolicyDocument=TRUST_RELATIONSHIP_POLICY_DOCUMENT”
POST “<hostname>?Action=CreateRole&RoleName=ROLE_NAME&Path=PATH_TO_FILE&AssumeRolePolicyDocument=TRUST_RELATIONSHIP_POLICY_DOCUMENT”
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
POST “<hostname>?Action=CreateRole&RoleName=S3Access&Path=/application_abc/component_xyz/&AssumeRolePolicyDocument={"Version":"2022-06-17","Statement":[{"Effect":"Allow","Principal":{"AWS":["arn:aws:iam:::user/TESTER"]},"Action":["sts:AssumeRole"]}]}”
POST “<hostname>?Action=CreateRole&RoleName=S3Access&Path=/application_abc/component_xyz/&AssumeRolePolicyDocument={"Version":"2022-06-17","Statement":[{"Effect":"Allow","Principal":{"AWS":["arn:aws:iam:::user/TESTER"]},"Action":["sts:AssumeRole"]}]}”
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 响应示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 获取角色:
语法
POST “<hostname>?Action=GetRole&RoleName=ROLE_NAME”
POST “<hostname>?Action=GetRole&RoleName=ROLE_NAME”
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
POST “<hostname>?Action=GetRole&RoleName=S3Access”
POST “<hostname>?Action=GetRole&RoleName=S3Access”
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 响应示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 列出角色:
语法
POST “<hostname>?Action=GetRole&RoleName=ROLE_NAME&PathPrefix=PATH_PREFIX”
POST “<hostname>?Action=GetRole&RoleName=ROLE_NAME&PathPrefix=PATH_PREFIX”
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 请求示例
POST “<hostname>?Action=ListRoles&RoleName=S3Access&PathPrefix=/application”
POST “<hostname>?Action=ListRoles&RoleName=S3Access&PathPrefix=/application”
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 响应示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 更新假定的角色策略文档:
语法
POST “<hostname>?Action=UpdateAssumeRolePolicy&RoleName=ROLE_NAME&PolicyDocument=TRUST_RELATIONSHIP_POLICY_DOCUMENT”
POST “<hostname>?Action=UpdateAssumeRolePolicy&RoleName=ROLE_NAME&PolicyDocument=TRUST_RELATIONSHIP_POLICY_DOCUMENT”
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
POST “<hostname>?Action=UpdateAssumeRolePolicy&RoleName=S3Access&PolicyDocument={"Version":"2022-06-17","Statement":[{"Effect":"Allow","Principal":{"AWS":["arn:aws:iam:::user/TESTER2"]},"Action":["sts:AssumeRole"]}]}”
POST “<hostname>?Action=UpdateAssumeRolePolicy&RoleName=S3Access&PolicyDocument={"Version":"2022-06-17","Statement":[{"Effect":"Allow","Principal":{"AWS":["arn:aws:iam:::user/TESTER2"]},"Action":["sts:AssumeRole"]}]}”
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 更新附加到角色的策略:
语法
POST “<hostname>?Action=PutRolePolicy&RoleName=ROLE_NAME&PolicyName=POLICY_NAME&PolicyDocument=TRUST_RELATIONSHIP_POLICY_DOCUMENT”
POST “<hostname>?Action=PutRolePolicy&RoleName=ROLE_NAME&PolicyName=POLICY_NAME&PolicyDocument=TRUST_RELATIONSHIP_POLICY_DOCUMENT”
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
POST “<hostname>?Action=PutRolePolicy&RoleName=S3Access&PolicyName=Policy1&PolicyDocument={"Version":"2022-06-17","Statement":[{"Effect":"Allow","Action":["s3:CreateBucket"],"Resource":"arn:aws:s3:::example_bucket"}]}”
POST “<hostname>?Action=PutRolePolicy&RoleName=S3Access&PolicyName=Policy1&PolicyDocument={"Version":"2022-06-17","Statement":[{"Effect":"Allow","Action":["s3:CreateBucket"],"Resource":"arn:aws:s3:::example_bucket"}]}”
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 列出附加到角色的权限策略名称:
语法
POST “<hostname>?Action=ListRolePolicies&RoleName=ROLE_NAME”
POST “<hostname>?Action=ListRolePolicies&RoleName=ROLE_NAME”
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
POST “<hostname>?Action=ListRolePolicies&RoleName=S3Access” <PolicyNames> <member>Policy1</member> </PolicyNames>
POST “<hostname>?Action=ListRolePolicies&RoleName=S3Access” <PolicyNames> <member>Policy1</member> </PolicyNames>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 获取附加到角色的权限策略:
语法
POST “<hostname>?Action=GetRolePolicy&RoleName=ROLE_NAME&PolicyName=POLICY_NAME”
POST “<hostname>?Action=GetRolePolicy&RoleName=ROLE_NAME&PolicyName=POLICY_NAME”
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 删除附加到角色的策略:
语法
POST “hostname>?Action=DeleteRolePolicy&RoleName=ROLE_NAME&PolicyName=POLICY_NAME“
POST “hostname>?Action=DeleteRolePolicy&RoleName=ROLE_NAME&PolicyName=POLICY_NAME“
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
POST “<hostname>?Action=DeleteRolePolicy&RoleName=S3Access&PolicyName=Policy1”
POST “<hostname>?Action=DeleteRolePolicy&RoleName=S3Access&PolicyName=Policy1”
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 删除角色:
注意只有在角色没有附加任何权限策略时,才能删除角色。
语法
POST “<hostname>?Action=DeleteRole&RoleName=ROLE_NAME"
POST “<hostname>?Action=DeleteRole&RoleName=ROLE_NAME"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
POST “<hostname>?Action=DeleteRole&RoleName=S3Access"
POST “<hostname>?Action=DeleteRole&RoleName=S3Access"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow