Skip to content

Commit 167fbeb

Browse files
authored
Update minio-sts-quickstart-guide.md
添加MinIO STS快速入门指南
1 parent 9f33190 commit 167fbeb

File tree

1 file changed

+73
-0
lines changed

1 file changed

+73
-0
lines changed

minio-sts-quickstart-guide.md

+73
Original file line numberDiff line numberDiff line change
@@ -1 +1,74 @@
1+
# MinIO STS快速入门指南 [![Slack](https://slack.min.io/slack?type=svg)](https://slack.min.io)
2+
MinIO安全令牌服务(STS)是一种终结点服务,使客户端可以请求MinIO资源的临时凭据。临时凭据的工作原理几乎与默认管理员凭据相同,但有一些区别:
3+
4+
- 顾名思义,临时证书是短期的。可以将它们配置为持续几分钟到几小时的时间。凭证过期后,MinIO将不再识别它们或允许使用它们发出的API请求进行任何类型的访问。
5+
- 临时凭证不需要与应用程序一起存储,而是动态生成的,并在请求时提供给应用程序。当临时凭证(或什至之前)到期时,应用程序可以请求新凭证。
6+
7+
以下是使用临时凭证的优点:
8+
9+
- 无需在应用程序中嵌入长期凭证。
10+
- 无需提供对存储桶和对象的访问,而无需定义静态凭据。
11+
- 临时凭证的有效期有限,无需旋转或显式吊销它们。过期的临时凭证无法重复使用。
12+
13+
## 身份联盟
14+
|认证网 | 描述 |
15+
| :---------------------- | ------------------------------------------ |
16+
| [**Client grants**](https://github.com/minio/minio/blob/master/docs/sts/client-grants.md) | 让应用程序client_grants使用任何知名的第三方身份提供商(例如KeyCloak,WSO2)进行请求。这被称为客户端授予方法以进行临时访问。使用这种方法可以帮助客户端保持MinIO凭据的安全。MinIO STS支持客户端授权,并针对身份提供商(例如WSO2,KeyCloak)进行了测试。|
17+
| [**WebIdentity**](https://github.com/minio/minio/blob/master/docs/sts/web-identity.md) | 让用户使用任何OpenID(OIDC)兼容的Web身份提供商(例如Facebook,Google等)请求临时凭据。 |
18+
| [**AssumeRole**](https://github.com/minio/minio/blob/master/docs/sts/assume-role.md) | 让MinIO用户使用用户访问权限和密钥请求临时凭证。 |
19+
| [**AD/LDAP**](https://github.com/minio/minio/blob/master/docs/sts/ldap.md) | 让AD / LDAP用户使用AD / LDAP用户名和密码来请求临时凭据。|
20+
21+
## 开始使用
22+
在本文档中,我们将详细说明如何配置所有先决条件。
23+
> 注意:如果仅对AssumeRole API感兴趣,请跳到 [此处](https://github.com/minio/minio/blob/master/docs/sts/assume-role.md)
24+
25+
### 1. 先决条件
26+
- [配置 wso2](https://github.com/minio/minio/blob/master/docs/sts/wso2.md)
27+
- [配置 opa (可选)](https://github.com/minio/minio/blob/master/docs/sts/opa.md)
28+
- [配置 etcd (仅在网关或联合方式下需要可选)](https://github.com/minio/minio/blob/master/docs/sts/etcd.md)
29+
30+
### 2.使用WSO2设置MinIO
31+
确保已按照上一步操作并独立配置每个软件,完成后,我们现在可以继续使用MinIO STS API和MinIO服务器来使用这些凭据来执行对象API操作。
32+
33+
```
34+
export MINIO_ACCESS_KEY=minio
35+
export MINIO_SECRET_KEY=minio123
36+
export MINIO_IDENTITY_OPENID_CONFIG_URL=https://localhost:9443/oauth2/oidcdiscovery/.well-known/openid-configuration
37+
export MINIO_IDENTITY_OPENID_CLIENT_ID="843351d4-1080-11ea-aa20-271ecba3924a"
38+
minio server /mnt/data
39+
```
40+
41+
### 3. 使用WSO2,ETCD设置MinIO网关
42+
确保已按照上一步操作并独立配置每个软件,完成后,我们现在可以继续使用MinIO STS API和MinIO网关来使用这些凭据来执行对象API操作。
43+
44+
> 注意:MinIO网关要求将etcd配置为使用STS API。
45+
46+
```
47+
export MINIO_ACCESS_KEY=aws_access_key
48+
export MINIO_SECRET_KEY=aws_secret_key
49+
export MINIO_IDENTITY_OPENID_CONFIG_URL=https://localhost:9443/oauth2/oidcdiscovery/.well-known/openid-configuration
50+
export MINIO_IDENTITY_OPENID_CLIENT_ID="843351d4-1080-11ea-aa20-271ecba3924a"
51+
export MINIO_ETCD_ENDPOINTS=http://localhost:2379
52+
minio gateway s3
53+
```
54+
55+
### 4. 使用client-grants.go进行测试
56+
57+
在另一个终端上,运行 `client-grants.go` 一个示例客户端应用程序,该应用程序从身份提供者(在我们的情况下为WSO2)获取JWT访问令牌。使用返回的访问令牌响应,通过STS API调用从MinIO服务器获取新的临时凭据 `AssumeRoleWithClientGrants`
58+
59+
```
60+
go run client-grants.go -cid PoEgXP6uVO45IsENRngDXj5Au5Ya -csec eKsw6z8CtOJVBtrOWvhRWL4TUCga
61+
62+
##### Credentials
63+
{
64+
"accessKey": "NUIBORZYTV2HG2BMRSXR",
65+
"secretKey": "qQlP5O7CFPc5m5IXf1vYhuVTFj7BRVJqh0FqZ86S",
66+
"expiration": "2018-08-21T17:10:29-07:00",
67+
"sessionToken": "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJhY2Nlc3NLZXkiOiJOVUlCT1JaWVRWMkhHMkJNUlNYUiIsImF1ZCI6IlBvRWdYUDZ1Vk80NUlzRU5SbmdEWGo1QXU1WWEiLCJhenAiOiJQb0VnWFA2dVZPNDVJc0VOUm5nRFhqNUF1NVlhIiwiZXhwIjoxNTM0ODk2NjI5LCJpYXQiOjE1MzQ4OTMwMjksImlzcyI6Imh0dHBzOi8vbG9jYWxob3N0Ojk0NDMvb2F1dGgyL3Rva2VuIiwianRpIjoiNjY2OTZjZTctN2U1Ny00ZjU5LWI0MWQtM2E1YTMzZGZiNjA4In0.eJONnVaSVHypiXKEARSMnSKgr-2mlC2Sr4fEGJitLcJF_at3LeNdTHv0_oHsv6ZZA3zueVGgFlVXMlREgr9LXA"
68+
}
69+
```
70+
71+
## 进一步探索
72+
- [MinIO管理员完成指南](https://docs.min.io/docs/minio-admin-complete-guide.html)
73+
- [MinIO文档网站](https://docs.min.io)
174

0 commit comments

Comments
 (0)