标签: security-context

确定当前正在进行的安全检查 (SQL Server)

我一直最讨厌 MS SQL Server 中的一件事就是安全性的工作方式。如果你有趣地看待服务器,安全上下文会不断切换,而且通常很难(无论如何对我来说)预测或调试。

在今天处理一个问题时,我想,“我希望我可以在代码中添加一行,以显示 SQL Server 在代码运行时使用的安全上下文。” 存在这样的命令吗?例如,SELECT security_context()

更清楚一点...如果我处于存储过程中并且因此受到 SP 所有者的安全上下文的约束,那么我希望看到这一点。如果我在由 sp_executesql 调用的代码中,并且它导致安全性处于 SQL Server 服务帐户的上下文中,那么我希望看到这一点。

至少这样我也许能够弄清楚为什么 SQL Server 认为我不应该访问某些内容。

谢谢!


例子

-- Set up
CREATE USER Test_User WITHOUT LOGIN
CREATE TABLE Test_Security_Context (my_id INT)
INSERT INTO Test_Security_Context VALUES (1)
DENY SELECT ON Test_Security_Context TO Test_User
GO
CREATE PROCEDURE Test_Security_Context_SP
AS
  SELECT SUSER_SNAME()
  SELECT * FROM Test_Security_Context  -- This will return ok
  EXEC('SELECT SUSER_SNAME(); SELECT * FROM Test_Security_Context')  -- SUSER_SNAME() will match above but select fails …
Run Code Online (Sandbox Code Playgroud)

sql-server security security-context sql-server-2008

5
推荐指数
1
解决办法
3552
查看次数

为什么我从 Nginx 收到只读文件系统错误?

亲爱的 K8S 社区团队,

部署应用程序 pod 时,我从 nginx 收到此错误消息。我的应用程序 angular6 应用程序托管在 nginx 服务器内,该服务器部署为 EKS 内的 docker 容器。

我将我的应用程序配置为“只读容器文件系统”,但我将“emptyDir”类型的“临时挂载”卷与只读文件系统结合使用。

所以我不确定出现以下错误的原因:

2019/04/02 14:11:29 [emerg] 1#1: mkdir() "/var/cache/nginx/client_temp" failed (30: 只读文件系统) nginx: [emerg] mkdir() "/ var/cache/nginx/client_temp”失败(30:只读文件系统)

我的deployment.yaml是:

...
 spec:
      volumes:
        - name: tmp-volume
          emptyDir: {}
        # Pod Security Context
      securityContext:
        fsGroup: 2000
      containers:
      - name: {{ .Chart.Name }}
        volumeMounts:
        - mountPath: /tmp
          name: tmp-volume
        image: "{{ .Values.image.name }}"
        imagePullPolicy: {{ .Values.image.pullPolicy }}
        securityContext:
          capabilities:
            add:
            - NET_BIND_SERVICE
            drop:
            - ALL
        securityContext:
          readOnlyRootFilesystem: …
Run Code Online (Sandbox Code Playgroud)

deployment nginx security-context kubernetes kubernetes-helm

5
推荐指数
1
解决办法
7429
查看次数

Kubernetes:以 root 身份运行容器

我确实了解这样做的缺点,但是我的图像只能与在其中运行 cmd 的 root 用户一起使用。

服务器 kubernetes 版本是:v1.19.14. 我的里面deployment.yaml有:

spec:
  containers:
    - name: myapp
      securityContext:
        allowPrivilegeEscalation: false
        runAsUser: 0
      command: ...
      image:...
Run Code Online (Sandbox Code Playgroud)

但是当describe rs我看到以下内容时:

  Type     Reason        Age                From                   Message
  ----     ------        ----               ----                   -------
  Warning  FailedCreate  0s (x13 over 21s)  replicaset-controller  Error creating: pods "myapp-7cdd994c56-" is forbidden: PodSecurityPolicy: unable to admit pod: [spec.containers[0].securityContext.runAsUser: Invalid value: 0: running with the root UID is forbidden]
Run Code Online (Sandbox Code Playgroud)

我做错了什么?

root security-context kubernetes kubernetes-helm kubernetes-pod

5
推荐指数
1
解决办法
4604
查看次数

Symfony2:为什么在TwigExtension中注入SecurityContext时getToken返回null?

我完成了这篇文章的答案,但令牌属性为null,用户正确登录,路由在防火墙后面.此外,我正在其他服务中注入SecurityContext,它工作正常.

services.xml:

<service id="tc.extensions.relation_helper"
 class="TC\CoreBundle\Extensions\RelationHelperExtension">
    <argument type="service" id="security.context" />
    <tag name="twig.extension" />
</service>
Run Code Online (Sandbox Code Playgroud)

我的扩展名:

class RelationHelperExtension extends Twig_Extension
{
    /**
     * @var User 
     */
    private $user;

    public function __construct(SecurityContext $securityContext){
        $this->user = $securityContext->getToken()->getUser();
    }
Run Code Online (Sandbox Code Playgroud)

security-context symfony twig

4
推荐指数
1
解决办法
2947
查看次数

为什么我无法将 POD 级别的 securityContext 设置配置为应用于所有底层容器?

在我的 POD 中,我想使用 securityContext 将所有容器限制为只读文件系统 :readOnlyRootFilesystem: true
示例(注意:为简洁起见,减少了 yaml)

apiVersion: v1
kind: Pod
metadata:      
  labels:
    run: server123
  name: server123
spec:
  securityContext:
    readOnlyRootFilesystem: true
  containers:
  - image: server1-image
    name: server1 
  - image: server2-image
    name: server2
  - image: server3-image
    name: server3
Run Code Online (Sandbox Code Playgroud)

这将导致:

错误:验证“server123.yaml”时出错:验证数据时出错:ValidationError(Pod.spec.securityContext):io.k8s.api.core.v1.PodSecurityContext 中的未知字段“readOnlyRootFilesystem”;如果您选择忽略这些错误,请使用 --validate=false 关闭验证

相反,我必须配置为:

apiVersion: v1
    kind: Pod
    metadata:      
      labels:
        run: server123
      name: server123
    spec:
      containers:
      - image: server1-image
        name: server1
        securityContext:
          readOnlyRootFilesystem: true 
      - image: server2-image
        name: server2
        securityContext:
          readOnlyRootFilesystem: true
      - image: server3-image
        name: server3
        securityContext:
          readOnlyRootFilesystem: …
Run Code Online (Sandbox Code Playgroud)

security-context kubernetes podsecuritypolicy

4
推荐指数
1
解决办法
4712
查看次数

Symfony2功能测试中的用户令牌

我正在对Symfony2控制器进行功能测试,继承我的测试类:

class InsecureWebTestCase extends WebTestCase {

    protected $client = null;

    public function setUp() {
        $this->client = static::createClient();
        $session = $this->client->getContainer()->get('session');
        $firewall = 'default';
        $token = new UsernamePasswordToken('norbert.scrunge@gmail.com', null, $firewall, array('ROLE_USER', 'ROLE_ADMIN'));
        // $this->client->getContainer()->get('security.context')->setToken($token);
        $session->set("_security_$firewall", serialize($token));
        $session->save();
        $cookie = new Cookie($session->getName(), $session->getId());
        $this->client->getCookieJar()->set($cookie);
    }

}
Run Code Online (Sandbox Code Playgroud)

如果我将控制器用作应用程序的一部分: $this->container->get('security.token_storage')->getToken()->getUser()并且$this->getUser()是我的Doctrine"用户"实体的实例.

但运行功能测试时: $this->container->get('security.token_storage')->getToken()->getUser()是包含用户名和一个字符串$this->getUser()NULL.

在我的应用和功能测试中,我需要做些什么才能使行为保持一致?

php functional-testing security-context symfony

3
推荐指数
1
解决办法
1230
查看次数

如果我禁用了authorizarion,如何在测试中模拟安全上下文

我有这样的测试:

@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
@DirtiesContext(classMode = DirtiesContext.ClassMode.BEFORE_CLASS)
@ActiveProfiles("test")
public class MyTests {

    @Autowired
    private TestRestTemplate restTemplate;
    ....
Run Code Online (Sandbox Code Playgroud)

在测试中,我禁用了身份验证/授权

但在代码中我使用以下内容:

Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
Run Code Online (Sandbox Code Playgroud)

但这是测试失败的原因.

我怎么能模拟我的测试?

PS

这个不起作用:

@Test
public void testUpdateWithoutNameAndEmail() {
    Authentication authentication = Mockito.mock(Authentication.class);
    SecurityContext securityContext = Mockito.mock(SecurityContext.class);
    Mockito.when(securityContext.getAuthentication()).thenReturn(authentication);
    SecurityContextHolder.setContext(securityContext);
    Mockito.when(authentication.getName()).thenReturn("aName");

    restTemplate.exchange(..
Run Code Online (Sandbox Code Playgroud)

SecurityContextHolder.getContext().getAuthentication() 在代码中返回null

而且这个也是:

@Autowired
private TestRestTemplate restTemplate;
@Test
@WithMockUser(username = "aUser", roles = { "ADMIN" })
public void testUpdateWithoutNameAndEmail() {
   ...
Run Code Online (Sandbox Code Playgroud)

java spring integration-testing spring-security security-context

3
推荐指数
1
解决办法
1499
查看次数

securityContext.privileged: Forbidden: 集群策略不允许

我无法启动需要特权安全上下文的 pod。Pod 安全策略:

apiVersion: policy/v1beta1
kind: PodSecurityPolicy
metadata:
  name: pod-security-policy
spec:
  privileged: true
  allowPrivilegeEscalation: true
  readOnlyRootFilesystem: false
  allowedCapabilities:
  - '*'
  allowedProcMountTypes:
  - '*'
  allowedUnsafeSysctls:
  - '*'
  volumes:
  - '*'
  hostPorts:
  - min: 0
    max: 65535
  hostIPC: true
  hostPID: true
  hostNetwork: true
  runAsUser:
    rule: 'RunAsAny'
  seLinux:
    rule: 'RunAsAny'
  supplementalGroups:
    rule: 'RunAsAny'
  fsGroup:
    rule: 'RunAsAny'
Run Code Online (Sandbox Code Playgroud)

集群角色:

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: privileged
rules:
- apiGroups:
  - '*'
  resourceNames:
  - pod-security-policy
  resources:
  - '*'
  verbs:  
  - '*'
Run Code Online (Sandbox Code Playgroud)

集群角色绑定:

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding …
Run Code Online (Sandbox Code Playgroud)

rbac security-context kubernetes kube-apiserver

3
推荐指数
1
解决办法
4704
查看次数

Helm 如果安装在 Openshift 上则创建条件资源

我正在尝试基于 /SCC 创建 Helm 图表条件模板,SecurityContextConstraint无论我是否安装在 Openshift 集群上。因为 SCC 是 Openshift 特定的资源。

因此,在helm install <release-name> <chart> -n <namespace>Openshift 集群上执行 ) 时,应该会自动创建 SCC。

后备选项是使用这样的东西:

{{ if .Values.isOpenshift }}
apiVersion: security.openshift.io/v1
kind: SecurityContextConstraints
...
{{ end }}
Run Code Online (Sandbox Code Playgroud)

security-context openshift kubernetes-helm helm3

3
推荐指数
1
解决办法
646
查看次数

Java Spring 不清楚应该从 SecurityContext 的 getDetails 中得到什么

我如何确定以下行在今天和未来版本的 Spring 中会返回什么?我没有找到有关此的文档。我怎样才能确定 Spring 决定分配给这个字段的内容是什么?

SecurityContextHolder.getContext().getAuthentication().getDetails()
Run Code Online (Sandbox Code Playgroud)

根据这个你可以期待西班牙宗教裁判所

java authentication spring spring-security security-context

0
推荐指数
1
解决办法
459
查看次数