MinIO STS快速入门指南 Slack

MinIO安全令牌服务(STS)是一种终结点服务,使客户端可以请求MinIO资源的临时凭据。临时凭据的工作原理几乎与默认管理员凭据相同,但有一些区别:

以下是使用临时凭证的优点:

身份联盟

认证网 描述
Client grants 让应用程序client_grants使用任何知名的第三方身份提供商(例如KeyCloak,WSO2)进行请求。这被称为客户端授予方法以进行临时访问。使用这种方法可以帮助客户端保持MinIO凭据的安全。MinIO STS支持客户端授权,并针对身份提供商(例如WSO2,KeyCloak)进行了测试。
WebIdentity 让用户使用任何OpenID(OIDC)兼容的Web身份提供商(例如Facebook,Google等)请求临时凭据。
AssumeRole 让MinIO用户使用用户访问权限和密钥请求临时凭证。
AD/LDAP 让AD / LDAP用户使用AD / LDAP用户名和密码来请求临时凭据。

开始使用

在本文档中,我们将详细说明如何配置所有先决条件。

注意:如果仅对AssumeRole API感兴趣,请跳到 此处

1. 先决条件

2.使用WSO2设置MinIO

确保已按照上一步操作并独立配置每个软件,完成后,我们现在可以继续使用MinIO STS API和MinIO服务器来使用这些凭据来执行对象API操作。

export MINIO_ACCESS_KEY=minio
export MINIO_SECRET_KEY=minio123
export MINIO_IDENTITY_OPENID_CONFIG_URL=https://localhost:9443/oauth2/oidcdiscovery/.well-known/openid-configuration
export MINIO_IDENTITY_OPENID_CLIENT_ID="843351d4-1080-11ea-aa20-271ecba3924a"
minio server /mnt/data

3. 使用WSO2,ETCD设置MinIO网关

确保已按照上一步操作并独立配置每个软件,完成后,我们现在可以继续使用MinIO STS API和MinIO网关来使用这些凭据来执行对象API操作。

注意:MinIO网关要求将etcd配置为使用STS API。

export MINIO_ACCESS_KEY=aws_access_key
export MINIO_SECRET_KEY=aws_secret_key
export MINIO_IDENTITY_OPENID_CONFIG_URL=https://localhost:9443/oauth2/oidcdiscovery/.well-known/openid-configuration
export MINIO_IDENTITY_OPENID_CLIENT_ID="843351d4-1080-11ea-aa20-271ecba3924a"
export MINIO_ETCD_ENDPOINTS=http://localhost:2379
minio gateway s3

4. 使用client-grants.go进行测试

在另一个终端上,运行 client-grants.go 一个示例客户端应用程序,该应用程序从身份提供者(在我们的情况下为WSO2)获取JWT访问令牌。使用返回的访问令牌响应,通过STS API调用从MinIO服务器获取新的临时凭据 AssumeRoleWithClientGrants

go run client-grants.go -cid PoEgXP6uVO45IsENRngDXj5Au5Ya -csec eKsw6z8CtOJVBtrOWvhRWL4TUCga

##### Credentials
{
    "accessKey": "NUIBORZYTV2HG2BMRSXR",
    "secretKey": "qQlP5O7CFPc5m5IXf1vYhuVTFj7BRVJqh0FqZ86S",
    "expiration": "2018-08-21T17:10:29-07:00",
    "sessionToken": "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJhY2Nlc3NLZXkiOiJOVUlCT1JaWVRWMkhHMkJNUlNYUiIsImF1ZCI6IlBvRWdYUDZ1Vk80NUlzRU5SbmdEWGo1QXU1WWEiLCJhenAiOiJQb0VnWFA2dVZPNDVJc0VOUm5nRFhqNUF1NVlhIiwiZXhwIjoxNTM0ODk2NjI5LCJpYXQiOjE1MzQ4OTMwMjksImlzcyI6Imh0dHBzOi8vbG9jYWxob3N0Ojk0NDMvb2F1dGgyL3Rva2VuIiwianRpIjoiNjY2OTZjZTctN2U1Ny00ZjU5LWI0MWQtM2E1YTMzZGZiNjA4In0.eJONnVaSVHypiXKEARSMnSKgr-2mlC2Sr4fEGJitLcJF_at3LeNdTHv0_oHsv6ZZA3zueVGgFlVXMlREgr9LXA"
}

进一步探索