You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@ignite.apache.org by GitBox <gi...@apache.org> on 2020/09/10 11:35:21 UTC

[GitHub] [ignite] dgarus opened a new pull request #8237: IGNITE-12443 Document the Ignite Sandbox

dgarus opened a new pull request #8237:
URL: https://github.com/apache/ignite/pull/8237


   Thank you for submitting the pull request to the Apache Ignite.
   
   In order to streamline the review of the contribution 
   we ask you to ensure the following steps have been taken:
   
   ### The Contribution Checklist
   - [ ] There is a single JIRA ticket related to the pull request. 
   - [ ] The web-link to the pull request is attached to the JIRA ticket.
   - [ ] The JIRA ticket has the _Patch Available_ state.
   - [ ] The pull request body describes changes that have been made. 
   The description explains _WHAT_ and _WHY_ was made instead of _HOW_.
   - [ ] The pull request title is treated as the final commit message. 
   The following pattern must be used: `IGNITE-XXXX Change summary` where `XXXX` - number of JIRA issue.
   - [ ] A reviewer has been mentioned through the JIRA comments 
   (see [the Maintainers list](https://cwiki.apache.org/confluence/display/IGNITE/How+to+Contribute#HowtoContribute-ReviewProcessandMaintainers)) 
   - [ ] The pull request has been checked by the Teamcity Bot and 
   the `green visa` attached to the JIRA ticket (see [TC.Bot: Check PR](https://mtcga.gridgain.com/prs.html))
   
   ### Notes
   - [How to Contribute](https://cwiki.apache.org/confluence/display/IGNITE/How+to+Contribute)
   - [Coding abbreviation rules](https://cwiki.apache.org/confluence/display/IGNITE/Abbreviation+Rules)
   - [Coding Guidelines](https://cwiki.apache.org/confluence/display/IGNITE/Coding+Guidelines)
   - [Apache Ignite Teamcity Bot](https://cwiki.apache.org/confluence/display/IGNITE/Apache+Ignite+Teamcity+Bot)
   
   If you need any help, please email dev@ignite.apache.org or ask anу advice on http://asf.slack.com _#ignite_ channel.
   


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [ignite] dgarus commented on a change in pull request #8237: IGNITE-12443 Document the Ignite Sandbox

Posted by GitBox <gi...@apache.org>.
dgarus commented on a change in pull request #8237:
URL: https://github.com/apache/ignite/pull/8237#discussion_r494065805



##########
File path: docs/_docs/security/sandbox.adoc
##########
@@ -0,0 +1,80 @@
+= The Ignite Sandbox
+
+== Overview
+Ignite allows using a user-defined code that can be a compute job, event filter, message listener, etc.

Review comment:
       Great I like your version!

##########
File path: docs/_docs/security/sandbox.adoc
##########
@@ -0,0 +1,80 @@
+= The Ignite Sandbox
+
+== Overview
+Ignite allows using a user-defined code that can be a compute job, event filter, message listener, etc.
+This user-defined code can utilize Java features to get access to host resources.
+For example, it can create/update/delete files; create sockets; read/update/delete system properties; use reflection API and so on.
+To restrict user-defined code options you may use the Ignite Sandbox based on the Java Sandbox model.
+
+You can read about the Java Sandbox model link:https://docs.oracle.com/en/java/javase/11/security/java-se-platform-security-architecture.html#GUID-C203D80F-C730-45C3-AB95-D4E61FD6D89C[here,window=_blank].
+
+== Ignite Sandbox activation

Review comment:
       ok

##########
File path: docs/_docs/security/sandbox.adoc
##########
@@ -0,0 +1,80 @@
+= The Ignite Sandbox
+
+== Overview
+Ignite allows using a user-defined code that can be a compute job, event filter, message listener, etc.
+This user-defined code can utilize Java features to get access to host resources.
+For example, it can create/update/delete files; create sockets; read/update/delete system properties; use reflection API and so on.
+To restrict user-defined code options you may use the Ignite Sandbox based on the Java Sandbox model.
+
+You can read about the Java Sandbox model link:https://docs.oracle.com/en/java/javase/11/security/java-se-platform-security-architecture.html#GUID-C203D80F-C730-45C3-AB95-D4E61FD6D89C[here,window=_blank].
+
+== Ignite Sandbox activation
+
+There are some conditions to activate the Ignite Sandbox.
+
+- The first condition is _the SecurityManager must be installed_.

Review comment:
       ok

##########
File path: docs/_docs/security/sandbox.adoc
##########
@@ -0,0 +1,80 @@
+= The Ignite Sandbox
+
+== Overview
+Ignite allows using a user-defined code that can be a compute job, event filter, message listener, etc.
+This user-defined code can utilize Java features to get access to host resources.
+For example, it can create/update/delete files; create sockets; read/update/delete system properties; use reflection API and so on.
+To restrict user-defined code options you may use the Ignite Sandbox based on the Java Sandbox model.
+
+You can read about the Java Sandbox model link:https://docs.oracle.com/en/java/javase/11/security/java-se-platform-security-architecture.html#GUID-C203D80F-C730-45C3-AB95-D4E61FD6D89C[here,window=_blank].
+
+== Ignite Sandbox activation
+
+There are some conditions to activate the Ignite Sandbox.

Review comment:
       ok

##########
File path: docs/_docs/security/sandbox.adoc
##########
@@ -0,0 +1,80 @@
+= The Ignite Sandbox
+
+== Overview
+Ignite allows using a user-defined code that can be a compute job, event filter, message listener, etc.
+This user-defined code can utilize Java features to get access to host resources.
+For example, it can create/update/delete files; create sockets; read/update/delete system properties; use reflection API and so on.
+To restrict user-defined code options you may use the Ignite Sandbox based on the Java Sandbox model.
+
+You can read about the Java Sandbox model link:https://docs.oracle.com/en/java/javase/11/security/java-se-platform-security-architecture.html#GUID-C203D80F-C730-45C3-AB95-D4E61FD6D89C[here,window=_blank].
+
+== Ignite Sandbox activation
+
+There are some conditions to activate the Ignite Sandbox.
+
+- The first condition is _the SecurityManager must be installed_.
+
+Due to the fact, that Ignite Sandbox is based on the Java Sandbox model, and the SecurityManager is an important part of that model, you need to have it installed.
+The SecurityManager is responsible for checking, which security policy is currently in effect. It also performs access control checks.
+The security manager is not automatically installed when an application is running. If you run Ignite as a separate application,
+you must invoke the Java Virtual Machine with the `-Djava.security.manager` command-line argument (which sets the value of the `java.security.manager property`).
+There is also a -Djava.security.policy command-line argument, defining, which policy files are utilized.
+If you don't include `-Djava.security.policy` into the command line, then the policy files specified in the security properties file will be used.
+
+You can read more about Security Management link:https://docs.oracle.com/javase/8/docs/technotes/guides/security/spec/security-spec.doc6.html#a19349[here,window=_blank].
+
+NOTE: It may be convenient adding the security manager and the policy command-line arguments to `{IGNITE-HOME}/bin/ignite.sh|ignite.bat` script.
+Read more about link:/quick-start/java#starting_a_node[starting a node].
+
+NOTE: Ignite should have enough permissions to work correctly.
+You may apply the most straightforward way that is granting to Ignite the `java.security.AllPermission` permission,
+but you should remember the "giving permissions as low as possible" security principle.
+
+- The second condition to activate the Ignite Sandbox is _an implementation of the `GridSecurityProcessor` interface must be installed_.

Review comment:
       ok




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [ignite] dgarus commented on a change in pull request #8237: IGNITE-12443 Document the Ignite Sandbox

Posted by GitBox <gi...@apache.org>.
dgarus commented on a change in pull request #8237:
URL: https://github.com/apache/ignite/pull/8237#discussion_r490772636



##########
File path: docs/_docs/security/sandbox.adoc
##########
@@ -0,0 +1,31 @@
+= The Ignite Sandbox
+
+== Overview
+Ignite allows using a user-defined code that can be a compute job, event filter, message listener, etc.
+This user-defined code can utilize Java features to get access to host resources.
+For example, it can create/update/delete files; create sockets; read/update/delete system properties; use reflection API and so on.
+To restrict user-defined code options you may use the Ignite Sandbox based on the Java Sandbox model.
+
+You can read about the Java Sandbox model link:https://docs.oracle.com/en/java/javase/11/security/java-se-platform-security-architecture.html#GUID-C203D80F-C730-45C3-AB95-D4E61FD6D89C[here].
+
+There are a few conditions to run user-defined code with restrictions:
+
+- link:/security/authentication[GridSecurityProcessor] is installed;
+- the method _GridSecurityProcessor#sandboxEnabled_ returns true;
+- link:https://docs.oracle.com/javase/8/docs/technotes/guides/security/spec/security-spec.doc6.html#a19349[SecurityManager] is installed.
+
+
+If the Ignite Sandbox is turned on, you can see the following trace line:

Review comment:
       Hello, Denis!
   Thank you for your feedback! 
   I tried to solve your comments. Could you please have a look?




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [ignite] dgarus commented on a change in pull request #8237: IGNITE-12443 Document the Ignite Sandbox

Posted by GitBox <gi...@apache.org>.
dgarus commented on a change in pull request #8237:
URL: https://github.com/apache/ignite/pull/8237#discussion_r494067191



##########
File path: docs/_docs/security/sandbox.adoc
##########
@@ -0,0 +1,80 @@
+= The Ignite Sandbox
+
+== Overview
+Ignite allows using a user-defined code that can be a compute job, event filter, message listener, etc.
+This user-defined code can utilize Java features to get access to host resources.
+For example, it can create/update/delete files; create sockets; read/update/delete system properties; use reflection API and so on.
+To restrict user-defined code options you may use the Ignite Sandbox based on the Java Sandbox model.
+
+You can read about the Java Sandbox model link:https://docs.oracle.com/en/java/javase/11/security/java-se-platform-security-architecture.html#GUID-C203D80F-C730-45C3-AB95-D4E61FD6D89C[here,window=_blank].
+
+== Ignite Sandbox activation
+
+There are some conditions to activate the Ignite Sandbox.

Review comment:
       ok




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [ignite] dgarus commented on a change in pull request #8237: IGNITE-12443 Document the Ignite Sandbox

Posted by GitBox <gi...@apache.org>.
dgarus commented on a change in pull request #8237:
URL: https://github.com/apache/ignite/pull/8237#discussion_r494065805



##########
File path: docs/_docs/security/sandbox.adoc
##########
@@ -0,0 +1,80 @@
+= The Ignite Sandbox
+
+== Overview
+Ignite allows using a user-defined code that can be a compute job, event filter, message listener, etc.

Review comment:
       Great I like your version!




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [ignite] dgarus commented on a change in pull request #8237: IGNITE-12443 Document the Ignite Sandbox

Posted by GitBox <gi...@apache.org>.
dgarus commented on a change in pull request #8237:
URL: https://github.com/apache/ignite/pull/8237#discussion_r494066896



##########
File path: docs/_docs/security/sandbox.adoc
##########
@@ -0,0 +1,80 @@
+= The Ignite Sandbox
+
+== Overview
+Ignite allows using a user-defined code that can be a compute job, event filter, message listener, etc.
+This user-defined code can utilize Java features to get access to host resources.
+For example, it can create/update/delete files; create sockets; read/update/delete system properties; use reflection API and so on.
+To restrict user-defined code options you may use the Ignite Sandbox based on the Java Sandbox model.
+
+You can read about the Java Sandbox model link:https://docs.oracle.com/en/java/javase/11/security/java-se-platform-security-architecture.html#GUID-C203D80F-C730-45C3-AB95-D4E61FD6D89C[here,window=_blank].
+
+== Ignite Sandbox activation
+
+There are some conditions to activate the Ignite Sandbox.
+
+- The first condition is _the SecurityManager must be installed_.

Review comment:
       ok




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [ignite] dmagda merged pull request #8237: IGNITE-12443 Document the Ignite Sandbox

Posted by GitBox <gi...@apache.org>.
dmagda merged pull request #8237:
URL: https://github.com/apache/ignite/pull/8237


   


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [ignite] dmagda commented on a change in pull request #8237: IGNITE-12443 Document the Ignite Sandbox

Posted by GitBox <gi...@apache.org>.
dmagda commented on a change in pull request #8237:
URL: https://github.com/apache/ignite/pull/8237#discussion_r493882213



##########
File path: docs/_docs/security/sandbox.adoc
##########
@@ -0,0 +1,80 @@
+= The Ignite Sandbox
+
+== Overview
+Ignite allows using a user-defined code that can be a compute job, event filter, message listener, etc.

Review comment:
       How about this version for the opening paragraph?
   
   Ignite allows executing custom logic via various APIs including compute tasks, event filters, message listeners. This user-defined logic can utilize Java APIs to get access to host resources. For example, it can create/update/delete files or system properties, open network connections, use reflection and other APIs to get full control of the host environment. Ignite Sandbox is based on the [Java Sandbox model](https://docs.oracle.com/en/java/javase/11/security/java-se-platform-security-architecture.html#GUID-C203D80F-C730-45C3-AB95-D4E61FD6D89C) and allows you to restrict the scope of user-defined logic executed via Ignite APIs.

##########
File path: docs/_docs/security/sandbox.adoc
##########
@@ -0,0 +1,80 @@
+= The Ignite Sandbox
+
+== Overview
+Ignite allows using a user-defined code that can be a compute job, event filter, message listener, etc.
+This user-defined code can utilize Java features to get access to host resources.
+For example, it can create/update/delete files; create sockets; read/update/delete system properties; use reflection API and so on.
+To restrict user-defined code options you may use the Ignite Sandbox based on the Java Sandbox model.
+
+You can read about the Java Sandbox model link:https://docs.oracle.com/en/java/javase/11/security/java-se-platform-security-architecture.html#GUID-C203D80F-C730-45C3-AB95-D4E61FD6D89C[here,window=_blank].
+
+== Ignite Sandbox activation
+
+There are some conditions to activate the Ignite Sandbox.
+
+- The first condition is _the SecurityManager must be installed_.

Review comment:
       Just say - "Install the SecurityManager ..."

##########
File path: docs/_docs/security/sandbox.adoc
##########
@@ -0,0 +1,80 @@
+= The Ignite Sandbox
+
+== Overview
+Ignite allows using a user-defined code that can be a compute job, event filter, message listener, etc.
+This user-defined code can utilize Java features to get access to host resources.
+For example, it can create/update/delete files; create sockets; read/update/delete system properties; use reflection API and so on.
+To restrict user-defined code options you may use the Ignite Sandbox based on the Java Sandbox model.
+
+You can read about the Java Sandbox model link:https://docs.oracle.com/en/java/javase/11/security/java-se-platform-security-architecture.html#GUID-C203D80F-C730-45C3-AB95-D4E61FD6D89C[here,window=_blank].
+
+== Ignite Sandbox activation
+
+There are some conditions to activate the Ignite Sandbox.

Review comment:
       I would say it this way:
   
   * Use the following procedure to activate Ignite Sandbox or
   * Follow the steps below to activate Ignite Sandbox

##########
File path: docs/_docs/security/sandbox.adoc
##########
@@ -0,0 +1,80 @@
+= The Ignite Sandbox
+
+== Overview
+Ignite allows using a user-defined code that can be a compute job, event filter, message listener, etc.
+This user-defined code can utilize Java features to get access to host resources.
+For example, it can create/update/delete files; create sockets; read/update/delete system properties; use reflection API and so on.
+To restrict user-defined code options you may use the Ignite Sandbox based on the Java Sandbox model.
+
+You can read about the Java Sandbox model link:https://docs.oracle.com/en/java/javase/11/security/java-se-platform-security-architecture.html#GUID-C203D80F-C730-45C3-AB95-D4E61FD6D89C[here,window=_blank].
+
+== Ignite Sandbox activation

Review comment:
       Ignite Sandbox activation => Ignite Sandbox Activation
   
   All the letters have to be capitalized (the rule doesn't apply to prepositions and articles)

##########
File path: docs/_docs/security/sandbox.adoc
##########
@@ -0,0 +1,80 @@
+= The Ignite Sandbox
+
+== Overview
+Ignite allows using a user-defined code that can be a compute job, event filter, message listener, etc.
+This user-defined code can utilize Java features to get access to host resources.
+For example, it can create/update/delete files; create sockets; read/update/delete system properties; use reflection API and so on.
+To restrict user-defined code options you may use the Ignite Sandbox based on the Java Sandbox model.
+
+You can read about the Java Sandbox model link:https://docs.oracle.com/en/java/javase/11/security/java-se-platform-security-architecture.html#GUID-C203D80F-C730-45C3-AB95-D4E61FD6D89C[here,window=_blank].
+
+== Ignite Sandbox activation
+
+There are some conditions to activate the Ignite Sandbox.
+
+- The first condition is _the SecurityManager must be installed_.
+
+Due to the fact, that Ignite Sandbox is based on the Java Sandbox model, and the SecurityManager is an important part of that model, you need to have it installed.
+The SecurityManager is responsible for checking, which security policy is currently in effect. It also performs access control checks.
+The security manager is not automatically installed when an application is running. If you run Ignite as a separate application,
+you must invoke the Java Virtual Machine with the `-Djava.security.manager` command-line argument (which sets the value of the `java.security.manager property`).
+There is also a -Djava.security.policy command-line argument, defining, which policy files are utilized.
+If you don't include `-Djava.security.policy` into the command line, then the policy files specified in the security properties file will be used.
+
+You can read more about Security Management link:https://docs.oracle.com/javase/8/docs/technotes/guides/security/spec/security-spec.doc6.html#a19349[here,window=_blank].
+
+NOTE: It may be convenient adding the security manager and the policy command-line arguments to `{IGNITE-HOME}/bin/ignite.sh|ignite.bat` script.
+Read more about link:/quick-start/java#starting_a_node[starting a node].
+
+NOTE: Ignite should have enough permissions to work correctly.
+You may apply the most straightforward way that is granting to Ignite the `java.security.AllPermission` permission,
+but you should remember the "giving permissions as low as possible" security principle.
+
+- The second condition to activate the Ignite Sandbox is _an implementation of the `GridSecurityProcessor` interface must be installed_.

Review comment:
       Just say "Provide an implementation of the GridSecurityProcessor...."




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [ignite] dmagda merged pull request #8237: IGNITE-12443 Document the Ignite Sandbox

Posted by GitBox <gi...@apache.org>.
dmagda merged pull request #8237:
URL: https://github.com/apache/ignite/pull/8237


   


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [ignite] Silberfuchs1 commented on a change in pull request #8237: IGNITE-12443 Document the Ignite Sandbox

Posted by GitBox <gi...@apache.org>.
Silberfuchs1 commented on a change in pull request #8237:
URL: https://github.com/apache/ignite/pull/8237#discussion_r490716285



##########
File path: docs/_docs/security/sandbox.adoc
##########
@@ -6,26 +6,75 @@ This user-defined code can utilize Java features to get access to host resources
 For example, it can create/update/delete files; create sockets; read/update/delete system properties; use reflection API and so on.
 To restrict user-defined code options you may use the Ignite Sandbox based on the Java Sandbox model.
 
-You can read about the Java Sandbox model link:https://docs.oracle.com/en/java/javase/11/security/java-se-platform-security-architecture.html#GUID-C203D80F-C730-45C3-AB95-D4E61FD6D89C[here].
+You can read about the Java Sandbox model link:https://docs.oracle.com/en/java/javase/11/security/java-se-platform-security-architecture.html#GUID-C203D80F-C730-45C3-AB95-D4E61FD6D89C[here,window=_blank].
 
-There are a few conditions to run user-defined code with restrictions:
+== The Ignite Sandbox activation

Review comment:
       I don't think you need an article here.

##########
File path: docs/_docs/security/sandbox.adoc
##########
@@ -6,26 +6,75 @@ This user-defined code can utilize Java features to get access to host resources
 For example, it can create/update/delete files; create sockets; read/update/delete system properties; use reflection API and so on.
 To restrict user-defined code options you may use the Ignite Sandbox based on the Java Sandbox model.
 
-You can read about the Java Sandbox model link:https://docs.oracle.com/en/java/javase/11/security/java-se-platform-security-architecture.html#GUID-C203D80F-C730-45C3-AB95-D4E61FD6D89C[here].
+You can read about the Java Sandbox model link:https://docs.oracle.com/en/java/javase/11/security/java-se-platform-security-architecture.html#GUID-C203D80F-C730-45C3-AB95-D4E61FD6D89C[here,window=_blank].
 
-There are a few conditions to run user-defined code with restrictions:
+== The Ignite Sandbox activation
 
-- link:/security/authentication[GridSecurityProcessor] is installed;
-- the method _GridSecurityProcessor#sandboxEnabled_ returns true;
-- link:https://docs.oracle.com/javase/8/docs/technotes/guides/security/spec/security-spec.doc6.html#a19349[SecurityManager] is installed.
+There are a few conditions to activate the Ignite Sandbox.
 
+- The first condition is _the SecurityManager must be installed_.
+
+Due to the Ignite Sandbox is based on the Java Sandbox model, you need to have installed the SecurityManager that is an important part of that model.

Review comment:
       'Due to the fact, that Ignite Sandbox is based on the Java Sandbox model, and the SecurityManager is an important part of that model, you need to have it installed.'

##########
File path: docs/_docs/security/sandbox.adoc
##########
@@ -6,26 +6,75 @@ This user-defined code can utilize Java features to get access to host resources
 For example, it can create/update/delete files; create sockets; read/update/delete system properties; use reflection API and so on.
 To restrict user-defined code options you may use the Ignite Sandbox based on the Java Sandbox model.
 
-You can read about the Java Sandbox model link:https://docs.oracle.com/en/java/javase/11/security/java-se-platform-security-architecture.html#GUID-C203D80F-C730-45C3-AB95-D4E61FD6D89C[here].
+You can read about the Java Sandbox model link:https://docs.oracle.com/en/java/javase/11/security/java-se-platform-security-architecture.html#GUID-C203D80F-C730-45C3-AB95-D4E61FD6D89C[here,window=_blank].
 
-There are a few conditions to run user-defined code with restrictions:
+== The Ignite Sandbox activation
 
-- link:/security/authentication[GridSecurityProcessor] is installed;
-- the method _GridSecurityProcessor#sandboxEnabled_ returns true;
-- link:https://docs.oracle.com/javase/8/docs/technotes/guides/security/spec/security-spec.doc6.html#a19349[SecurityManager] is installed.
+There are a few conditions to activate the Ignite Sandbox.
 
+- The first condition is _the SecurityManager must be installed_.
+
+Due to the Ignite Sandbox is based on the Java Sandbox model, you need to have installed the SecurityManager that is an important part of that model.
+The SecurityManager is responsible for checking the security policy currently in effect and perform access control checks.
+A security manager is not automatically installed when an application is running. If you run Ignite as a separate application,
+you must invoke the Java Virtual Machine with the `-Djava.security.manager` command-line argument (which sets the value of the `java.security.manager property`).
+There is also a `-Djava.security.policy` command-line argument whose usage determines what policy files are utilized.

Review comment:
       There is also a `-Djava.security.policy` command-line argument, defining, which policy files are utilized.
   
   or
   
   There is also a `-Djava.security.policy` command-line argument. It determines the utilized policy files.
   
   The first option is better IMHO.

##########
File path: docs/_docs/security/sandbox.adoc
##########
@@ -6,26 +6,75 @@ This user-defined code can utilize Java features to get access to host resources
 For example, it can create/update/delete files; create sockets; read/update/delete system properties; use reflection API and so on.
 To restrict user-defined code options you may use the Ignite Sandbox based on the Java Sandbox model.
 
-You can read about the Java Sandbox model link:https://docs.oracle.com/en/java/javase/11/security/java-se-platform-security-architecture.html#GUID-C203D80F-C730-45C3-AB95-D4E61FD6D89C[here].
+You can read about the Java Sandbox model link:https://docs.oracle.com/en/java/javase/11/security/java-se-platform-security-architecture.html#GUID-C203D80F-C730-45C3-AB95-D4E61FD6D89C[here,window=_blank].
 
-There are a few conditions to run user-defined code with restrictions:
+== The Ignite Sandbox activation
 
-- link:/security/authentication[GridSecurityProcessor] is installed;
-- the method _GridSecurityProcessor#sandboxEnabled_ returns true;
-- link:https://docs.oracle.com/javase/8/docs/technotes/guides/security/spec/security-spec.doc6.html#a19349[SecurityManager] is installed.
+There are a few conditions to activate the Ignite Sandbox.
 
+- The first condition is _the SecurityManager must be installed_.
+
+Due to the Ignite Sandbox is based on the Java Sandbox model, you need to have installed the SecurityManager that is an important part of that model.
+The SecurityManager is responsible for checking the security policy currently in effect and perform access control checks.
+A security manager is not automatically installed when an application is running. If you run Ignite as a separate application,
+you must invoke the Java Virtual Machine with the `-Djava.security.manager` command-line argument (which sets the value of the `java.security.manager property`).
+There is also a `-Djava.security.policy` command-line argument whose usage determines what policy files are utilized.
+If you don't include `-Djava.security.policy` on the command line, then the policy files specified in the security properties file will be used.

Review comment:
       '...include `-Djava.security.policy` into the command line...'

##########
File path: docs/_docs/security/sandbox.adoc
##########
@@ -6,26 +6,75 @@ This user-defined code can utilize Java features to get access to host resources
 For example, it can create/update/delete files; create sockets; read/update/delete system properties; use reflection API and so on.
 To restrict user-defined code options you may use the Ignite Sandbox based on the Java Sandbox model.
 
-You can read about the Java Sandbox model link:https://docs.oracle.com/en/java/javase/11/security/java-se-platform-security-architecture.html#GUID-C203D80F-C730-45C3-AB95-D4E61FD6D89C[here].
+You can read about the Java Sandbox model link:https://docs.oracle.com/en/java/javase/11/security/java-se-platform-security-architecture.html#GUID-C203D80F-C730-45C3-AB95-D4E61FD6D89C[here,window=_blank].
 
-There are a few conditions to run user-defined code with restrictions:
+== The Ignite Sandbox activation
 
-- link:/security/authentication[GridSecurityProcessor] is installed;
-- the method _GridSecurityProcessor#sandboxEnabled_ returns true;
-- link:https://docs.oracle.com/javase/8/docs/technotes/guides/security/spec/security-spec.doc6.html#a19349[SecurityManager] is installed.
+There are a few conditions to activate the Ignite Sandbox.
 
+- The first condition is _the SecurityManager must be installed_.
+
+Due to the Ignite Sandbox is based on the Java Sandbox model, you need to have installed the SecurityManager that is an important part of that model.
+The SecurityManager is responsible for checking the security policy currently in effect and perform access control checks.
+A security manager is not automatically installed when an application is running. If you run Ignite as a separate application,
+you must invoke the Java Virtual Machine with the `-Djava.security.manager` command-line argument (which sets the value of the `java.security.manager property`).
+There is also a `-Djava.security.policy` command-line argument whose usage determines what policy files are utilized.
+If you don't include `-Djava.security.policy` on the command line, then the policy files specified in the security properties file will be used.
+
+You can read more about link:https://docs.oracle.com/javase/8/docs/technotes/guides/security/spec/security-spec.doc6.html#a19349[Security Management,window=_blank].
+
+NOTE: It may be convenient adding the security manager and the policy command-line arguments to `{IGNITE-HOME}/bin/ignite.sh|ignite.bat` script.
+Read more about link:/quick-start/java#starting_a_node[starting a node].
+
+NOTE: The Ignite must have enough permissions to work correctly.
+You may apply the most straightforward way that is granting to Ignite the `java.security.AllPermission` permission,
+but you should remember about the "giving permissions as low as possible" security principle.
+
+- The second condition to activate the Ignite Sandbox is _an implementation of the `GridSecurityProcessor` interface must be installed_.
+
+Currently, the Apache Ignite does not provide an implementation of the `GridSecurityProcessor` interface out-of-the-box.
+But, you can implement this interface as part of link:/plugins[a custom plugin].
+
+The `GridSecurityProcessor` interface has the `sandboxEnabled` method that manages a user-defined code executing inside the Ignite Sandbox.
+By default, this method returns `false`, which means no-sandbox.
+If you are going to use the Ignite Sandbox, your overridden `sandboxEnabled` method should return `true`.
 
 If the Ignite Sandbox is turned on, you can see the following trace line:
 [source,text]
 ----
 [INFO] Security status [authentication=on, sandbox=on, tls/ssl=off]
 ----
 
+== Permissions
+
 A user-defined code is always executed on behalf of the security subject that initiates its execution.
-The security subject's sandbox link:https://docs.oracle.com/en/java/javase/11/security/java-se-platform-security-architecture.html#GUID-DEA8EAB1-CF00-4658-AA6D-D2C9754C8B37[permissions] define actions that a user-defined code can perform.
-The Ignite Sandbox gets these permissions using the _SecuritySubject#sandboxPermissions_ method.
+The security subject's sandbox link:https://docs.oracle.com/en/java/javase/11/security/java-se-platform-security-architecture.html#GUID-DEA8EAB1-CF00-4658-AA6D-D2C9754C8B37[permissions,window=_blank] define actions that a user-defined code can perform.
+The Ignite Sandbox gets these permissions using the `SecuritySubject#sandboxPermissions` method.
+
+NOTE: A user-defined code, when running inside the Ignite Sandbox, may use the public API of Ignite without granting any additional permissions.
 
 If a security subject doesn't have enough permissions to perform a security-sensitive operation,
 an AcccessControlException appears.
 
-NOTE: A user-defined code, when running inside the Ignite Sandbox, may use the public API of Ignite without granting any additional permissions.
+[source,java]
+----
+// Get compute instance over all nodes in the cluster.
+IgniteCompute compute = Ignition.ignite().compute();
+
+compute.broadcast(() -> {
+    // If the Ignite Sandbox is turned on, the lambda code executes with restrictions.
+
+    // You can use the public API of Ignite without granting any permissions.
+    Ignition.localIgnite().cache("some.cache").get("key");
+
+    // If the current security subject doesn't have the java.util.PropertyPermission("secret.property", "read") permission,
+    // an java.security.AccessControlException appears here.

Review comment:
       'a java.security.AccessControlException appears here.'

##########
File path: docs/_docs/security/sandbox.adoc
##########
@@ -6,26 +6,75 @@ This user-defined code can utilize Java features to get access to host resources
 For example, it can create/update/delete files; create sockets; read/update/delete system properties; use reflection API and so on.
 To restrict user-defined code options you may use the Ignite Sandbox based on the Java Sandbox model.
 
-You can read about the Java Sandbox model link:https://docs.oracle.com/en/java/javase/11/security/java-se-platform-security-architecture.html#GUID-C203D80F-C730-45C3-AB95-D4E61FD6D89C[here].
+You can read about the Java Sandbox model link:https://docs.oracle.com/en/java/javase/11/security/java-se-platform-security-architecture.html#GUID-C203D80F-C730-45C3-AB95-D4E61FD6D89C[here,window=_blank].
 
-There are a few conditions to run user-defined code with restrictions:
+== The Ignite Sandbox activation
 
-- link:/security/authentication[GridSecurityProcessor] is installed;
-- the method _GridSecurityProcessor#sandboxEnabled_ returns true;
-- link:https://docs.oracle.com/javase/8/docs/technotes/guides/security/spec/security-spec.doc6.html#a19349[SecurityManager] is installed.
+There are a few conditions to activate the Ignite Sandbox.
 
+- The first condition is _the SecurityManager must be installed_.
+
+Due to the Ignite Sandbox is based on the Java Sandbox model, you need to have installed the SecurityManager that is an important part of that model.
+The SecurityManager is responsible for checking the security policy currently in effect and perform access control checks.
+A security manager is not automatically installed when an application is running. If you run Ignite as a separate application,
+you must invoke the Java Virtual Machine with the `-Djava.security.manager` command-line argument (which sets the value of the `java.security.manager property`).
+There is also a `-Djava.security.policy` command-line argument whose usage determines what policy files are utilized.
+If you don't include `-Djava.security.policy` on the command line, then the policy files specified in the security properties file will be used.
+
+You can read more about link:https://docs.oracle.com/javase/8/docs/technotes/guides/security/spec/security-spec.doc6.html#a19349[Security Management,window=_blank].
+
+NOTE: It may be convenient adding the security manager and the policy command-line arguments to `{IGNITE-HOME}/bin/ignite.sh|ignite.bat` script.
+Read more about link:/quick-start/java#starting_a_node[starting a node].
+
+NOTE: The Ignite must have enough permissions to work correctly.
+You may apply the most straightforward way that is granting to Ignite the `java.security.AllPermission` permission,
+but you should remember about the "giving permissions as low as possible" security principle.
+
+- The second condition to activate the Ignite Sandbox is _an implementation of the `GridSecurityProcessor` interface must be installed_.
+
+Currently, the Apache Ignite does not provide an implementation of the `GridSecurityProcessor` interface out-of-the-box.
+But, you can implement this interface as part of link:/plugins[a custom plugin].

Review comment:
       '...as a part of...'

##########
File path: docs/_docs/security/sandbox.adoc
##########
@@ -6,26 +6,75 @@ This user-defined code can utilize Java features to get access to host resources
 For example, it can create/update/delete files; create sockets; read/update/delete system properties; use reflection API and so on.
 To restrict user-defined code options you may use the Ignite Sandbox based on the Java Sandbox model.
 
-You can read about the Java Sandbox model link:https://docs.oracle.com/en/java/javase/11/security/java-se-platform-security-architecture.html#GUID-C203D80F-C730-45C3-AB95-D4E61FD6D89C[here].
+You can read about the Java Sandbox model link:https://docs.oracle.com/en/java/javase/11/security/java-se-platform-security-architecture.html#GUID-C203D80F-C730-45C3-AB95-D4E61FD6D89C[here,window=_blank].
 
-There are a few conditions to run user-defined code with restrictions:
+== The Ignite Sandbox activation
 
-- link:/security/authentication[GridSecurityProcessor] is installed;
-- the method _GridSecurityProcessor#sandboxEnabled_ returns true;
-- link:https://docs.oracle.com/javase/8/docs/technotes/guides/security/spec/security-spec.doc6.html#a19349[SecurityManager] is installed.
+There are a few conditions to activate the Ignite Sandbox.

Review comment:
       There are some conditions...
   
   'some' is used in affirmative sentences with plural countable nouns. 
   'a few' is a synonym of 'some', but it gives another accent, like 'not so many'.

##########
File path: docs/_docs/security/sandbox.adoc
##########
@@ -6,26 +6,75 @@ This user-defined code can utilize Java features to get access to host resources
 For example, it can create/update/delete files; create sockets; read/update/delete system properties; use reflection API and so on.
 To restrict user-defined code options you may use the Ignite Sandbox based on the Java Sandbox model.
 
-You can read about the Java Sandbox model link:https://docs.oracle.com/en/java/javase/11/security/java-se-platform-security-architecture.html#GUID-C203D80F-C730-45C3-AB95-D4E61FD6D89C[here].
+You can read about the Java Sandbox model link:https://docs.oracle.com/en/java/javase/11/security/java-se-platform-security-architecture.html#GUID-C203D80F-C730-45C3-AB95-D4E61FD6D89C[here,window=_blank].
 
-There are a few conditions to run user-defined code with restrictions:
+== The Ignite Sandbox activation
 
-- link:/security/authentication[GridSecurityProcessor] is installed;
-- the method _GridSecurityProcessor#sandboxEnabled_ returns true;
-- link:https://docs.oracle.com/javase/8/docs/technotes/guides/security/spec/security-spec.doc6.html#a19349[SecurityManager] is installed.
+There are a few conditions to activate the Ignite Sandbox.
 
+- The first condition is _the SecurityManager must be installed_.
+
+Due to the Ignite Sandbox is based on the Java Sandbox model, you need to have installed the SecurityManager that is an important part of that model.
+The SecurityManager is responsible for checking the security policy currently in effect and perform access control checks.

Review comment:
       Maybe 'The SecurityManager is responsible for checking, which security policy is currently in effect. It also performs access control checks.'
   
   But I think, we don't need 'checks'. Just '...performs access control.' But it's up to you.
   

##########
File path: docs/_docs/security/sandbox.adoc
##########
@@ -6,26 +6,75 @@ This user-defined code can utilize Java features to get access to host resources
 For example, it can create/update/delete files; create sockets; read/update/delete system properties; use reflection API and so on.
 To restrict user-defined code options you may use the Ignite Sandbox based on the Java Sandbox model.
 
-You can read about the Java Sandbox model link:https://docs.oracle.com/en/java/javase/11/security/java-se-platform-security-architecture.html#GUID-C203D80F-C730-45C3-AB95-D4E61FD6D89C[here].
+You can read about the Java Sandbox model link:https://docs.oracle.com/en/java/javase/11/security/java-se-platform-security-architecture.html#GUID-C203D80F-C730-45C3-AB95-D4E61FD6D89C[here,window=_blank].
 
-There are a few conditions to run user-defined code with restrictions:
+== The Ignite Sandbox activation
 
-- link:/security/authentication[GridSecurityProcessor] is installed;
-- the method _GridSecurityProcessor#sandboxEnabled_ returns true;
-- link:https://docs.oracle.com/javase/8/docs/technotes/guides/security/spec/security-spec.doc6.html#a19349[SecurityManager] is installed.
+There are a few conditions to activate the Ignite Sandbox.
 
+- The first condition is _the SecurityManager must be installed_.
+
+Due to the Ignite Sandbox is based on the Java Sandbox model, you need to have installed the SecurityManager that is an important part of that model.
+The SecurityManager is responsible for checking the security policy currently in effect and perform access control checks.
+A security manager is not automatically installed when an application is running. If you run Ignite as a separate application,

Review comment:
       'The security manager...'
   You've been talking about security manager before.

##########
File path: docs/_docs/security/sandbox.adoc
##########
@@ -6,26 +6,75 @@ This user-defined code can utilize Java features to get access to host resources
 For example, it can create/update/delete files; create sockets; read/update/delete system properties; use reflection API and so on.
 To restrict user-defined code options you may use the Ignite Sandbox based on the Java Sandbox model.
 
-You can read about the Java Sandbox model link:https://docs.oracle.com/en/java/javase/11/security/java-se-platform-security-architecture.html#GUID-C203D80F-C730-45C3-AB95-D4E61FD6D89C[here].
+You can read about the Java Sandbox model link:https://docs.oracle.com/en/java/javase/11/security/java-se-platform-security-architecture.html#GUID-C203D80F-C730-45C3-AB95-D4E61FD6D89C[here,window=_blank].
 
-There are a few conditions to run user-defined code with restrictions:
+== The Ignite Sandbox activation
 
-- link:/security/authentication[GridSecurityProcessor] is installed;
-- the method _GridSecurityProcessor#sandboxEnabled_ returns true;
-- link:https://docs.oracle.com/javase/8/docs/technotes/guides/security/spec/security-spec.doc6.html#a19349[SecurityManager] is installed.
+There are a few conditions to activate the Ignite Sandbox.
 
+- The first condition is _the SecurityManager must be installed_.
+
+Due to the Ignite Sandbox is based on the Java Sandbox model, you need to have installed the SecurityManager that is an important part of that model.
+The SecurityManager is responsible for checking the security policy currently in effect and perform access control checks.
+A security manager is not automatically installed when an application is running. If you run Ignite as a separate application,
+you must invoke the Java Virtual Machine with the `-Djava.security.manager` command-line argument (which sets the value of the `java.security.manager property`).
+There is also a `-Djava.security.policy` command-line argument whose usage determines what policy files are utilized.
+If you don't include `-Djava.security.policy` on the command line, then the policy files specified in the security properties file will be used.
+
+You can read more about link:https://docs.oracle.com/javase/8/docs/technotes/guides/security/spec/security-spec.doc6.html#a19349[Security Management,window=_blank].

Review comment:
       You can read more about Security Management link:https://docs.oracle.com/javase/8/docs/technotes/guides/security/spec/security-spec.doc6.html#a19349[here,window=_blank].

##########
File path: docs/_docs/security/sandbox.adoc
##########
@@ -6,26 +6,75 @@ This user-defined code can utilize Java features to get access to host resources
 For example, it can create/update/delete files; create sockets; read/update/delete system properties; use reflection API and so on.
 To restrict user-defined code options you may use the Ignite Sandbox based on the Java Sandbox model.
 
-You can read about the Java Sandbox model link:https://docs.oracle.com/en/java/javase/11/security/java-se-platform-security-architecture.html#GUID-C203D80F-C730-45C3-AB95-D4E61FD6D89C[here].
+You can read about the Java Sandbox model link:https://docs.oracle.com/en/java/javase/11/security/java-se-platform-security-architecture.html#GUID-C203D80F-C730-45C3-AB95-D4E61FD6D89C[here,window=_blank].
 
-There are a few conditions to run user-defined code with restrictions:
+== The Ignite Sandbox activation
 
-- link:/security/authentication[GridSecurityProcessor] is installed;
-- the method _GridSecurityProcessor#sandboxEnabled_ returns true;
-- link:https://docs.oracle.com/javase/8/docs/technotes/guides/security/spec/security-spec.doc6.html#a19349[SecurityManager] is installed.
+There are a few conditions to activate the Ignite Sandbox.
 
+- The first condition is _the SecurityManager must be installed_.
+
+Due to the Ignite Sandbox is based on the Java Sandbox model, you need to have installed the SecurityManager that is an important part of that model.
+The SecurityManager is responsible for checking the security policy currently in effect and perform access control checks.
+A security manager is not automatically installed when an application is running. If you run Ignite as a separate application,
+you must invoke the Java Virtual Machine with the `-Djava.security.manager` command-line argument (which sets the value of the `java.security.manager property`).
+There is also a `-Djava.security.policy` command-line argument whose usage determines what policy files are utilized.
+If you don't include `-Djava.security.policy` on the command line, then the policy files specified in the security properties file will be used.
+
+You can read more about link:https://docs.oracle.com/javase/8/docs/technotes/guides/security/spec/security-spec.doc6.html#a19349[Security Management,window=_blank].
+
+NOTE: It may be convenient adding the security manager and the policy command-line arguments to `{IGNITE-HOME}/bin/ignite.sh|ignite.bat` script.
+Read more about link:/quick-start/java#starting_a_node[starting a node].
+
+NOTE: The Ignite must have enough permissions to work correctly.

Review comment:
       'NOTE: Ignite should have enough permissions to work correctly.'
   must is rude:)

##########
File path: docs/_docs/security/sandbox.adoc
##########
@@ -6,26 +6,75 @@ This user-defined code can utilize Java features to get access to host resources
 For example, it can create/update/delete files; create sockets; read/update/delete system properties; use reflection API and so on.
 To restrict user-defined code options you may use the Ignite Sandbox based on the Java Sandbox model.
 
-You can read about the Java Sandbox model link:https://docs.oracle.com/en/java/javase/11/security/java-se-platform-security-architecture.html#GUID-C203D80F-C730-45C3-AB95-D4E61FD6D89C[here].
+You can read about the Java Sandbox model link:https://docs.oracle.com/en/java/javase/11/security/java-se-platform-security-architecture.html#GUID-C203D80F-C730-45C3-AB95-D4E61FD6D89C[here,window=_blank].
 
-There are a few conditions to run user-defined code with restrictions:
+== The Ignite Sandbox activation
 
-- link:/security/authentication[GridSecurityProcessor] is installed;
-- the method _GridSecurityProcessor#sandboxEnabled_ returns true;
-- link:https://docs.oracle.com/javase/8/docs/technotes/guides/security/spec/security-spec.doc6.html#a19349[SecurityManager] is installed.
+There are a few conditions to activate the Ignite Sandbox.
 
+- The first condition is _the SecurityManager must be installed_.
+
+Due to the Ignite Sandbox is based on the Java Sandbox model, you need to have installed the SecurityManager that is an important part of that model.
+The SecurityManager is responsible for checking the security policy currently in effect and perform access control checks.
+A security manager is not automatically installed when an application is running. If you run Ignite as a separate application,
+you must invoke the Java Virtual Machine with the `-Djava.security.manager` command-line argument (which sets the value of the `java.security.manager property`).
+There is also a `-Djava.security.policy` command-line argument whose usage determines what policy files are utilized.
+If you don't include `-Djava.security.policy` on the command line, then the policy files specified in the security properties file will be used.
+
+You can read more about link:https://docs.oracle.com/javase/8/docs/technotes/guides/security/spec/security-spec.doc6.html#a19349[Security Management,window=_blank].
+
+NOTE: It may be convenient adding the security manager and the policy command-line arguments to `{IGNITE-HOME}/bin/ignite.sh|ignite.bat` script.
+Read more about link:/quick-start/java#starting_a_node[starting a node].
+
+NOTE: The Ignite must have enough permissions to work correctly.
+You may apply the most straightforward way that is granting to Ignite the `java.security.AllPermission` permission,
+but you should remember about the "giving permissions as low as possible" security principle.

Review comment:
       '....remember the "giving permissions as low as possible" security principle.'

##########
File path: docs/_docs/security/sandbox.adoc
##########
@@ -6,26 +6,75 @@ This user-defined code can utilize Java features to get access to host resources
 For example, it can create/update/delete files; create sockets; read/update/delete system properties; use reflection API and so on.
 To restrict user-defined code options you may use the Ignite Sandbox based on the Java Sandbox model.
 
-You can read about the Java Sandbox model link:https://docs.oracle.com/en/java/javase/11/security/java-se-platform-security-architecture.html#GUID-C203D80F-C730-45C3-AB95-D4E61FD6D89C[here].
+You can read about the Java Sandbox model link:https://docs.oracle.com/en/java/javase/11/security/java-se-platform-security-architecture.html#GUID-C203D80F-C730-45C3-AB95-D4E61FD6D89C[here,window=_blank].
 
-There are a few conditions to run user-defined code with restrictions:
+== The Ignite Sandbox activation
 
-- link:/security/authentication[GridSecurityProcessor] is installed;
-- the method _GridSecurityProcessor#sandboxEnabled_ returns true;
-- link:https://docs.oracle.com/javase/8/docs/technotes/guides/security/spec/security-spec.doc6.html#a19349[SecurityManager] is installed.
+There are a few conditions to activate the Ignite Sandbox.
 
+- The first condition is _the SecurityManager must be installed_.
+
+Due to the Ignite Sandbox is based on the Java Sandbox model, you need to have installed the SecurityManager that is an important part of that model.
+The SecurityManager is responsible for checking the security policy currently in effect and perform access control checks.
+A security manager is not automatically installed when an application is running. If you run Ignite as a separate application,
+you must invoke the Java Virtual Machine with the `-Djava.security.manager` command-line argument (which sets the value of the `java.security.manager property`).
+There is also a `-Djava.security.policy` command-line argument whose usage determines what policy files are utilized.
+If you don't include `-Djava.security.policy` on the command line, then the policy files specified in the security properties file will be used.
+
+You can read more about link:https://docs.oracle.com/javase/8/docs/technotes/guides/security/spec/security-spec.doc6.html#a19349[Security Management,window=_blank].
+
+NOTE: It may be convenient adding the security manager and the policy command-line arguments to `{IGNITE-HOME}/bin/ignite.sh|ignite.bat` script.
+Read more about link:/quick-start/java#starting_a_node[starting a node].
+
+NOTE: The Ignite must have enough permissions to work correctly.
+You may apply the most straightforward way that is granting to Ignite the `java.security.AllPermission` permission,
+but you should remember about the "giving permissions as low as possible" security principle.
+
+- The second condition to activate the Ignite Sandbox is _an implementation of the `GridSecurityProcessor` interface must be installed_.
+
+Currently, the Apache Ignite does not provide an implementation of the `GridSecurityProcessor` interface out-of-the-box.

Review comment:
       you don't need 'the' here.

##########
File path: docs/_docs/security/sandbox.adoc
##########
@@ -6,26 +6,75 @@ This user-defined code can utilize Java features to get access to host resources
 For example, it can create/update/delete files; create sockets; read/update/delete system properties; use reflection API and so on.
 To restrict user-defined code options you may use the Ignite Sandbox based on the Java Sandbox model.
 
-You can read about the Java Sandbox model link:https://docs.oracle.com/en/java/javase/11/security/java-se-platform-security-architecture.html#GUID-C203D80F-C730-45C3-AB95-D4E61FD6D89C[here].
+You can read about the Java Sandbox model link:https://docs.oracle.com/en/java/javase/11/security/java-se-platform-security-architecture.html#GUID-C203D80F-C730-45C3-AB95-D4E61FD6D89C[here,window=_blank].
 
-There are a few conditions to run user-defined code with restrictions:
+== The Ignite Sandbox activation
 
-- link:/security/authentication[GridSecurityProcessor] is installed;
-- the method _GridSecurityProcessor#sandboxEnabled_ returns true;
-- link:https://docs.oracle.com/javase/8/docs/technotes/guides/security/spec/security-spec.doc6.html#a19349[SecurityManager] is installed.
+There are a few conditions to activate the Ignite Sandbox.
 
+- The first condition is _the SecurityManager must be installed_.
+
+Due to the Ignite Sandbox is based on the Java Sandbox model, you need to have installed the SecurityManager that is an important part of that model.
+The SecurityManager is responsible for checking the security policy currently in effect and perform access control checks.
+A security manager is not automatically installed when an application is running. If you run Ignite as a separate application,
+you must invoke the Java Virtual Machine with the `-Djava.security.manager` command-line argument (which sets the value of the `java.security.manager property`).
+There is also a `-Djava.security.policy` command-line argument whose usage determines what policy files are utilized.
+If you don't include `-Djava.security.policy` on the command line, then the policy files specified in the security properties file will be used.
+
+You can read more about link:https://docs.oracle.com/javase/8/docs/technotes/guides/security/spec/security-spec.doc6.html#a19349[Security Management,window=_blank].
+
+NOTE: It may be convenient adding the security manager and the policy command-line arguments to `{IGNITE-HOME}/bin/ignite.sh|ignite.bat` script.
+Read more about link:/quick-start/java#starting_a_node[starting a node].
+
+NOTE: The Ignite must have enough permissions to work correctly.
+You may apply the most straightforward way that is granting to Ignite the `java.security.AllPermission` permission,
+but you should remember about the "giving permissions as low as possible" security principle.
+
+- The second condition to activate the Ignite Sandbox is _an implementation of the `GridSecurityProcessor` interface must be installed_.
+
+Currently, the Apache Ignite does not provide an implementation of the `GridSecurityProcessor` interface out-of-the-box.
+But, you can implement this interface as part of link:/plugins[a custom plugin].
+
+The `GridSecurityProcessor` interface has the `sandboxEnabled` method that manages a user-defined code executing inside the Ignite Sandbox.

Review comment:
       'code execution...' ?

##########
File path: docs/_docs/security/sandbox.adoc
##########
@@ -6,26 +6,75 @@ This user-defined code can utilize Java features to get access to host resources
 For example, it can create/update/delete files; create sockets; read/update/delete system properties; use reflection API and so on.
 To restrict user-defined code options you may use the Ignite Sandbox based on the Java Sandbox model.
 
-You can read about the Java Sandbox model link:https://docs.oracle.com/en/java/javase/11/security/java-se-platform-security-architecture.html#GUID-C203D80F-C730-45C3-AB95-D4E61FD6D89C[here].
+You can read about the Java Sandbox model link:https://docs.oracle.com/en/java/javase/11/security/java-se-platform-security-architecture.html#GUID-C203D80F-C730-45C3-AB95-D4E61FD6D89C[here,window=_blank].
 
-There are a few conditions to run user-defined code with restrictions:
+== The Ignite Sandbox activation
 
-- link:/security/authentication[GridSecurityProcessor] is installed;
-- the method _GridSecurityProcessor#sandboxEnabled_ returns true;
-- link:https://docs.oracle.com/javase/8/docs/technotes/guides/security/spec/security-spec.doc6.html#a19349[SecurityManager] is installed.
+There are a few conditions to activate the Ignite Sandbox.
 
+- The first condition is _the SecurityManager must be installed_.
+
+Due to the Ignite Sandbox is based on the Java Sandbox model, you need to have installed the SecurityManager that is an important part of that model.
+The SecurityManager is responsible for checking the security policy currently in effect and perform access control checks.
+A security manager is not automatically installed when an application is running. If you run Ignite as a separate application,
+you must invoke the Java Virtual Machine with the `-Djava.security.manager` command-line argument (which sets the value of the `java.security.manager property`).
+There is also a `-Djava.security.policy` command-line argument whose usage determines what policy files are utilized.
+If you don't include `-Djava.security.policy` on the command line, then the policy files specified in the security properties file will be used.
+
+You can read more about link:https://docs.oracle.com/javase/8/docs/technotes/guides/security/spec/security-spec.doc6.html#a19349[Security Management,window=_blank].
+
+NOTE: It may be convenient adding the security manager and the policy command-line arguments to `{IGNITE-HOME}/bin/ignite.sh|ignite.bat` script.
+Read more about link:/quick-start/java#starting_a_node[starting a node].
+
+NOTE: The Ignite must have enough permissions to work correctly.
+You may apply the most straightforward way that is granting to Ignite the `java.security.AllPermission` permission,
+but you should remember about the "giving permissions as low as possible" security principle.
+
+- The second condition to activate the Ignite Sandbox is _an implementation of the `GridSecurityProcessor` interface must be installed_.
+
+Currently, the Apache Ignite does not provide an implementation of the `GridSecurityProcessor` interface out-of-the-box.
+But, you can implement this interface as part of link:/plugins[a custom plugin].
+
+The `GridSecurityProcessor` interface has the `sandboxEnabled` method that manages a user-defined code executing inside the Ignite Sandbox.
+By default, this method returns `false`, which means no-sandbox.
+If you are going to use the Ignite Sandbox, your overridden `sandboxEnabled` method should return `true`.
 
 If the Ignite Sandbox is turned on, you can see the following trace line:
 [source,text]
 ----
 [INFO] Security status [authentication=on, sandbox=on, tls/ssl=off]
 ----
 
+== Permissions
+
 A user-defined code is always executed on behalf of the security subject that initiates its execution.
-The security subject's sandbox link:https://docs.oracle.com/en/java/javase/11/security/java-se-platform-security-architecture.html#GUID-DEA8EAB1-CF00-4658-AA6D-D2C9754C8B37[permissions] define actions that a user-defined code can perform.
-The Ignite Sandbox gets these permissions using the _SecuritySubject#sandboxPermissions_ method.
+The security subject's sandbox link:https://docs.oracle.com/en/java/javase/11/security/java-se-platform-security-architecture.html#GUID-DEA8EAB1-CF00-4658-AA6D-D2C9754C8B37[permissions,window=_blank] define actions that a user-defined code can perform.
+The Ignite Sandbox gets these permissions using the `SecuritySubject#sandboxPermissions` method.
+
+NOTE: A user-defined code, when running inside the Ignite Sandbox, may use the public API of Ignite without granting any additional permissions.
 
 If a security subject doesn't have enough permissions to perform a security-sensitive operation,
 an AcccessControlException appears.
 
-NOTE: A user-defined code, when running inside the Ignite Sandbox, may use the public API of Ignite without granting any additional permissions.
+[source,java]
+----
+// Get compute instance over all nodes in the cluster.
+IgniteCompute compute = Ignition.ignite().compute();
+
+compute.broadcast(() -> {
+    // If the Ignite Sandbox is turned on, the lambda code executes with restrictions.

Review comment:
       '...the lambda code is executed with restrictions.'

##########
File path: docs/_docs/security/sandbox.adoc
##########
@@ -6,26 +6,75 @@ This user-defined code can utilize Java features to get access to host resources
 For example, it can create/update/delete files; create sockets; read/update/delete system properties; use reflection API and so on.
 To restrict user-defined code options you may use the Ignite Sandbox based on the Java Sandbox model.
 
-You can read about the Java Sandbox model link:https://docs.oracle.com/en/java/javase/11/security/java-se-platform-security-architecture.html#GUID-C203D80F-C730-45C3-AB95-D4E61FD6D89C[here].
+You can read about the Java Sandbox model link:https://docs.oracle.com/en/java/javase/11/security/java-se-platform-security-architecture.html#GUID-C203D80F-C730-45C3-AB95-D4E61FD6D89C[here,window=_blank].
 
-There are a few conditions to run user-defined code with restrictions:
+== The Ignite Sandbox activation
 
-- link:/security/authentication[GridSecurityProcessor] is installed;
-- the method _GridSecurityProcessor#sandboxEnabled_ returns true;
-- link:https://docs.oracle.com/javase/8/docs/technotes/guides/security/spec/security-spec.doc6.html#a19349[SecurityManager] is installed.
+There are a few conditions to activate the Ignite Sandbox.
 
+- The first condition is _the SecurityManager must be installed_.
+
+Due to the Ignite Sandbox is based on the Java Sandbox model, you need to have installed the SecurityManager that is an important part of that model.
+The SecurityManager is responsible for checking the security policy currently in effect and perform access control checks.
+A security manager is not automatically installed when an application is running. If you run Ignite as a separate application,
+you must invoke the Java Virtual Machine with the `-Djava.security.manager` command-line argument (which sets the value of the `java.security.manager property`).
+There is also a `-Djava.security.policy` command-line argument whose usage determines what policy files are utilized.
+If you don't include `-Djava.security.policy` on the command line, then the policy files specified in the security properties file will be used.
+
+You can read more about link:https://docs.oracle.com/javase/8/docs/technotes/guides/security/spec/security-spec.doc6.html#a19349[Security Management,window=_blank].
+
+NOTE: It may be convenient adding the security manager and the policy command-line arguments to `{IGNITE-HOME}/bin/ignite.sh|ignite.bat` script.
+Read more about link:/quick-start/java#starting_a_node[starting a node].
+
+NOTE: The Ignite must have enough permissions to work correctly.
+You may apply the most straightforward way that is granting to Ignite the `java.security.AllPermission` permission,
+but you should remember about the "giving permissions as low as possible" security principle.
+
+- The second condition to activate the Ignite Sandbox is _an implementation of the `GridSecurityProcessor` interface must be installed_.
+
+Currently, the Apache Ignite does not provide an implementation of the `GridSecurityProcessor` interface out-of-the-box.
+But, you can implement this interface as part of link:/plugins[a custom plugin].
+
+The `GridSecurityProcessor` interface has the `sandboxEnabled` method that manages a user-defined code executing inside the Ignite Sandbox.
+By default, this method returns `false`, which means no-sandbox.
+If you are going to use the Ignite Sandbox, your overridden `sandboxEnabled` method should return `true`.
 
 If the Ignite Sandbox is turned on, you can see the following trace line:
 [source,text]
 ----
 [INFO] Security status [authentication=on, sandbox=on, tls/ssl=off]
 ----
 
+== Permissions
+
 A user-defined code is always executed on behalf of the security subject that initiates its execution.
-The security subject's sandbox link:https://docs.oracle.com/en/java/javase/11/security/java-se-platform-security-architecture.html#GUID-DEA8EAB1-CF00-4658-AA6D-D2C9754C8B37[permissions] define actions that a user-defined code can perform.
-The Ignite Sandbox gets these permissions using the _SecuritySubject#sandboxPermissions_ method.
+The security subject's sandbox link:https://docs.oracle.com/en/java/javase/11/security/java-se-platform-security-architecture.html#GUID-DEA8EAB1-CF00-4658-AA6D-D2C9754C8B37[permissions,window=_blank] define actions that a user-defined code can perform.
+The Ignite Sandbox gets these permissions using the `SecuritySubject#sandboxPermissions` method.
+
+NOTE: A user-defined code, when running inside the Ignite Sandbox, may use the public API of Ignite without granting any additional permissions.
 
 If a security subject doesn't have enough permissions to perform a security-sensitive operation,
 an AcccessControlException appears.
 
-NOTE: A user-defined code, when running inside the Ignite Sandbox, may use the public API of Ignite without granting any additional permissions.
+[source,java]
+----
+// Get compute instance over all nodes in the cluster.
+IgniteCompute compute = Ignition.ignite().compute();
+
+compute.broadcast(() -> {
+    // If the Ignite Sandbox is turned on, the lambda code executes with restrictions.
+
+    // You can use the public API of Ignite without granting any permissions.
+    Ignition.localIgnite().cache("some.cache").get("key");
+
+    // If the current security subject doesn't have the java.util.PropertyPermission("secret.property", "read") permission,
+    // an java.security.AccessControlException appears here.
+    System.getProperty("secret.property");
+});
+----
+
+In the case of accessing to the system property shown in the snippet above, you can see the following trace line with an exception:

Review comment:
       'In the case of accessing the system property...'




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [ignite] dgarus commented on a change in pull request #8237: IGNITE-12443 Document the Ignite Sandbox

Posted by GitBox <gi...@apache.org>.
dgarus commented on a change in pull request #8237:
URL: https://github.com/apache/ignite/pull/8237#discussion_r494066796



##########
File path: docs/_docs/security/sandbox.adoc
##########
@@ -0,0 +1,80 @@
+= The Ignite Sandbox
+
+== Overview
+Ignite allows using a user-defined code that can be a compute job, event filter, message listener, etc.
+This user-defined code can utilize Java features to get access to host resources.
+For example, it can create/update/delete files; create sockets; read/update/delete system properties; use reflection API and so on.
+To restrict user-defined code options you may use the Ignite Sandbox based on the Java Sandbox model.
+
+You can read about the Java Sandbox model link:https://docs.oracle.com/en/java/javase/11/security/java-se-platform-security-architecture.html#GUID-C203D80F-C730-45C3-AB95-D4E61FD6D89C[here,window=_blank].
+
+== Ignite Sandbox activation

Review comment:
       ok




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [ignite] dgarus commented on a change in pull request #8237: IGNITE-12443 Document the Ignite Sandbox

Posted by GitBox <gi...@apache.org>.
dgarus commented on a change in pull request #8237:
URL: https://github.com/apache/ignite/pull/8237#discussion_r494067263



##########
File path: docs/_docs/security/sandbox.adoc
##########
@@ -0,0 +1,80 @@
+= The Ignite Sandbox
+
+== Overview
+Ignite allows using a user-defined code that can be a compute job, event filter, message listener, etc.
+This user-defined code can utilize Java features to get access to host resources.
+For example, it can create/update/delete files; create sockets; read/update/delete system properties; use reflection API and so on.
+To restrict user-defined code options you may use the Ignite Sandbox based on the Java Sandbox model.
+
+You can read about the Java Sandbox model link:https://docs.oracle.com/en/java/javase/11/security/java-se-platform-security-architecture.html#GUID-C203D80F-C730-45C3-AB95-D4E61FD6D89C[here,window=_blank].
+
+== Ignite Sandbox activation
+
+There are some conditions to activate the Ignite Sandbox.
+
+- The first condition is _the SecurityManager must be installed_.
+
+Due to the fact, that Ignite Sandbox is based on the Java Sandbox model, and the SecurityManager is an important part of that model, you need to have it installed.
+The SecurityManager is responsible for checking, which security policy is currently in effect. It also performs access control checks.
+The security manager is not automatically installed when an application is running. If you run Ignite as a separate application,
+you must invoke the Java Virtual Machine with the `-Djava.security.manager` command-line argument (which sets the value of the `java.security.manager property`).
+There is also a -Djava.security.policy command-line argument, defining, which policy files are utilized.
+If you don't include `-Djava.security.policy` into the command line, then the policy files specified in the security properties file will be used.
+
+You can read more about Security Management link:https://docs.oracle.com/javase/8/docs/technotes/guides/security/spec/security-spec.doc6.html#a19349[here,window=_blank].
+
+NOTE: It may be convenient adding the security manager and the policy command-line arguments to `{IGNITE-HOME}/bin/ignite.sh|ignite.bat` script.
+Read more about link:/quick-start/java#starting_a_node[starting a node].
+
+NOTE: Ignite should have enough permissions to work correctly.
+You may apply the most straightforward way that is granting to Ignite the `java.security.AllPermission` permission,
+but you should remember the "giving permissions as low as possible" security principle.
+
+- The second condition to activate the Ignite Sandbox is _an implementation of the `GridSecurityProcessor` interface must be installed_.

Review comment:
       ok




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [ignite] dmagda commented on a change in pull request #8237: IGNITE-12443 Document the Ignite Sandbox

Posted by GitBox <gi...@apache.org>.
dmagda commented on a change in pull request #8237:
URL: https://github.com/apache/ignite/pull/8237#discussion_r489034740



##########
File path: docs/_docs/security/sandbox.adoc
##########
@@ -0,0 +1,31 @@
+= The Ignite Sandbox
+
+== Overview
+Ignite allows using a user-defined code that can be a compute job, event filter, message listener, etc.
+This user-defined code can utilize Java features to get access to host resources.
+For example, it can create/update/delete files; create sockets; read/update/delete system properties; use reflection API and so on.
+To restrict user-defined code options you may use the Ignite Sandbox based on the Java Sandbox model.
+
+You can read about the Java Sandbox model link:https://docs.oracle.com/en/java/javase/11/security/java-se-platform-security-architecture.html#GUID-C203D80F-C730-45C3-AB95-D4E61FD6D89C[here].
+
+There are a few conditions to run user-defined code with restrictions:
+
+- link:/security/authentication[GridSecurityProcessor] is installed;
+- the method _GridSecurityProcessor#sandboxEnabled_ returns true;
+- link:https://docs.oracle.com/javase/8/docs/technotes/guides/security/spec/security-spec.doc6.html#a19349[SecurityManager] is installed.
+
+
+If the Ignite Sandbox is turned on, you can see the following trace line:

Review comment:
       The section does a good job explaining what this feature is for but lacks instructions that show how to enable the sandbox and how to use it together with the Java Sandbox model. There are many references to the latter and a code sample might be useful. 
   
   Could you please add the following to the doc:
   
   - Activation: API or command to enable/disable the sandbox
   - Configuration: How to set up the sandbox based on the Java Sandbox model
   - Usage: (optional but would make the docs stronger) a code snippet based on the Java Sandbox throwing an exception if user code violates any restrictions. 




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org