Describes how to configure Object Store with S3-Compatible API.
MEP 7.1.0 and later supports Object Store 2.1.0.
To configure the Object Store with S3-Compatible API, add the
Object Store
superadmin and change the deployment mode in the
minio.json file. After you update and save the file, restart the
objectstore service.
To change the global configuration of the Object Store update the configuration file located in
/opt/mapr/objectstore-client/objectstore-client-<version>/conf/minio.json.
The configuration file for Object Store 2.1.0 differs from previous versions; it includes LDAP, distributed mode, and skip secure verification configuration updates.
{
"version": "2",
"fsPath": "/mapr//apps/s3/",
"deploymentMode": "S3",
"distributedHosts": "",
"accessKey": "minioadmin",
"secretKey": "minioadmin",
"oldAccessKey": "",
"oldSecretKey": "",
"port": "9000",
"domain": "",
"logPath": "/opt/mapr/objectstore-client/objectstore-client-2.1.0/logs/minio.log",
"logLevel": 4,
"insecureSkipVerify": false,
"ldap": {
"serverAddr": "",
"usernameFormat": "",
"userDNSearchBaseDN": "",
"userDNSearchFilter": "",
"groupSearchFilter": "",
"groupSearchBaseDn": "",
"lookUpBindDN": "",
"lookUpBindPassword": "",
"stsExpiry": "",
"tlsSkipVerify": "",
"serverStartTls": "",
"serverInsecure": ""
}
}
{
"fsPath":"/mapr//apps/s3/",
"deploymentMode":"S3",
"accessKey":"minioadmin",
"secretKey":"minioadmin",
"oldAccessKey":"",
"oldSecretKey":"",
"port":"9000",
"domain":"",
"logPath":"/opt/mapr/objectstore-client/objectstore-client-2.0.0/logs/minio.log",
"logLevel":4,
"ldap":{
"serverAddr":"",
"usernameFormat":"",
"usernameSearchFilter":"",
"groupSearchFilter":"",
"groupSearchBaseDn":"",
"usernameSearchBaseDn":"",
"groupNameAttribute":"",
"stsExpiry":"",
"tlsSkipVerify":"",
"serverStartTls":"",
"severInsecure":""
}
}
To change the port and log path requires you to reconfigure Warden for the server node and restart the Object Store. Other properties require only an Object Store restart.
superadmin CredentialsYou can configure the superadmin user name and password with properties
accessKey and secretKey. If you configure the Object Store for the first time, then it is enough just
to change them. If you would like to change the superadmin credentials on
an already configured instance, you also have to set previous values
oldAccessKey to the and oldSecretKey.
The deployment mode sets the type of authorization being used. The default deployment mode
is S3. To change the deployment mode setting, you can edit the
deploymentMode parameter in the
/opt/mapr/objectstore-client/objectstore-client-<version>/conf/minio.json
file.
| Option | Deployment Mode | Description |
|---|---|---|
| 1 | FS |
Enforced by filesystem file permissions only. The S3 bucket policy is
disabled. Access is granted based on the bucket owner UID and GID (not on read,
write, or execute permissions).
|
| 2 | S3 |
Enforced by S3 bucket policy only:
Important: To prevent unauthorized access to data, upload the
corresponding S3 policies after Object Store starts.
|
FS deployment mode, you must set the path to mount the file
system:
| Node Type | How to Set the Path |
|---|---|
| Server node | In the minio.json file, set the fsPath
parameter to the file-system mount path. By default, the path is set to
/mapr/<clustername>/apps/s3/<nodename>. If you want to share
existing folders with users, set the fsPath parameter to point to
the directory with the folders that you want to share. All the folders in the
directory to which fsPath points are accessible as buckets.Important: All folders in the parent folder (fsPath parameter) will
be accessible as buckets. Set filesystem permissions on folders to prevent
unauthorized access to data.
|
| Edge node | If you completed the edge-node installation steps, no action is required. This is because you already set the path
to mount the filesystem when you ran the Object Store
configure.sh script with the --path
parameter. |
Object Store 2.1.0 supports distributed mode. Object Store 2.0.x does not support distributed mode.
/opt/mapr/objectstore-client/objectstore-client-<version>/conf/minio.json
file with the accessKey, secretKey, and
ldap. The value for each of these properties must be identical across
all the minio.json files.distributedHosts property contains the list of nodes with
mount paths, for
example:"distributedHosts": "http(s)://HOST1:PORT1/MOUNT_PATH1 http(s)://HOST2:PORT2/MOUNT_PATH2" Note
that the mount path on all nodes should target the same folder in the filesystem./opt/mapr/objectstore-client/objectstore-client-<version>/conf/certs/CAs
directory. To ignore validation of the certificates, set "insecureSkipVerify":
true. You can enable the virtual hosting of buckets by setting the domain
property in the
/opt/mapr/objectstore-client/objectstore-client-<version>/conf/minio.json
configuration file. For more information, see the Domain section in the MinIO Server Config Guide.
You can set LDAP integration in the ldap section of the
/opt/mapr/objectstore-client/objectstore-client-<version>/conf/minio.json
configuration file. For descriptions and examples of the properties for LDAP integration,
seeMinIO LDAP documentation.
For LDAP integration information, refer to Integrating Object Store 2.1.0 with LDAP/AD.
"ldap": {
"serverAddr": "localhost:389",
"usernameFormat": "cn=%s,dc=mapr,dc=local",
"userDNSearchBaseDN": "",
"userDNSearchFilter": "(cn=%s)",
"groupSearchFilter": "(&(objectclass=group)(member=%s))",
"groupSearchBaseDn": "dc=mapr,dc=local",
"lookUpBindDN": "",
"lookUpBindPassword": "",
"stsExpiry": "60h",
"tlsSkipVerify": "on",
"serverStartTls": "",
"serverInsecure": "on"
} "ldap":{
"serverAddr":"10.244.0.11:636",
"usernameFormat":"uid=%s,ou=users,dc=example,dc=com",
"usernameSearchFilter":"(uid=%s)",
"groupSearchFilter":"",
"groupSearchBaseDn":"ou=users,dc=example,dc=com",
"usernameSearchBaseDn":"",
"groupNameAttribute":"",
"stsExpiry":"60h",
"tlsSkipVerify":"on",
"serverStartTls":"",
"severInsecure":"off"
}LDAP Limitations
In the S3 world, credentials represent the application and not the identity of the end user. The application layer is responsible for end-user verification. The S3 administrator must assign S3 credentials for the application or set of applications and, optionally, map those S3 credentials to a data-fabric identity.
As defined in the Amazon S3 documentation, the S3 REST API uses a “key” and “secret” (in a REST-like manner) as credentials to authenticate to the underlying object store and authorize access to data.
The Object Store supports a multitenant scenario in which the S3 administrator can configure one or more credentials with the appropriate data-fabric credential mapping. The S3 administrator can assign credentials to a user and, optionally, map them to a data-fabric identity.
For an overview of tenants and multi-tenancy, see Multitenancy on MapR Filesystem.
You add credentials and policies by using the MinIO Client (mc), which is located here:
/opt/mapr/objectstore-client/objectstore-client-<version>/util/mc. For
examples of using the MinIO Client, see the MinIO Admin Complete Guide.
FS mode is working. For
example:mc admin user add SERVER_ALIAS USERNAME PASSWORD UID GIDYou start, restart, or stop the Object Store by using the command appropriate for the node:
/opt/mapr/bin/maprcli node services -name objectstore -nodes <node_name> -action [ start |
restart | stop ]Edge Node
sudo /opt/mapr/objectstore-client/objectstore-client-<version>/bin/objectstore.sh [ start |
stop ]