Parameter Store API 작업에 대한 액세스 차단 - AWS Systems Manager

Parameter Store API 작업에 대한 액세스 차단

Systems Manager for AWS Identity and Access Management(IAM) 정책에서 지원하는 서비스별 조건을 사용하여 Parameter Store API 작업 및 콘텐츠에 대한 액세스를 명시적으로 허용하거나 거부할 수 있습니다. 이러한 조건을 사용하면 조직의 특정 IAM 엔티티(사용자 및 역할) 만 특정 API 작업을 직접 호출하도록 허용하거나 특정 IAM 엔티티가 해당 작업을 실행하지 못하게 할 수 있습니다. 여기에는 Parameter Store 콘솔, AWS Command Line Interface(AWS CLI) 및 SDK를 통해 실행되는 작업이 포함됩니다.

Systems Manager는 현재 Parameter Store와 관련된 세 가지 조건을 지원합니다.

ssm:Overwrite를 사용하여 기존 파라미터 변경 방지

ssm:Overwrite 조건을 사용하여 IAM 엔티티가 기존 파라미터를 업데이트할 수 있는지 여부를 제어할 수 있습니다.

다음 샘플 정책에서 "Allow" 문은 미국 동부(오하이오) 리전의 AWS 계정 123456789012(us-east-2)에서 PutParameter API 작업을 실행하여 파라미터를 생성할 수 있는 권한을 부여합니다.

그러나 PutParameter 작업에 대해 Overwrite 옵션이 명시적으로 거부되기 때문에 "Deny" 문은 엔터티가 기존 파라미터의 값을 변경하지 못하게 합니다. 즉, 이 정책이 할당된 사용자는 파라미터를 만들 수 있지만 기존 파라미터를 변경할 수는 없습니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:PutParameter" ], "Resource": "arn:aws:ssm:us-east-2:123456789012:parameter/*" }, { "Effect": "Deny", "Action": [ "ssm:PutParameter" ], "Condition": { "StringEquals": { "ssm:Overwrite": [ "true" ] } }, "Resource": "arn:aws:ssm:us-east-2:123456789012:parameter/*" } ] }

ssm:Policies를 통해 파라미터 정책을 사용하는 파라미터 생성 또는 업데이트 방지

ssm:Policies 조건을 사용하여 엔터티가 파라미터 정책을 포함하는 파라미터를 생성하고 파라미터 정책을 포함하는 기존 파라미터를 업데이트할 수 있는지 여부를 제어합니다.

다음 정책 예제에서 "Allow" 문은 생성 및 파라미터에 대한 일반 권한을 부여하지만 "Deny" 문은 엔터티가 미국 동부(오하이오) 리전(us-east-2)의 AWS 계정 123456789012 파라미터 정책을 포함하는 파라미터를 만들거나 업데이트하지 못하도록 합니다. 엔터티는 여전히 파라미터 정책이 할당되지 않은 파라미터를 생성하거나 업데이트할 수 있습니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:PutParameter" ], "Resource": "arn:aws:ssm:us-east-2:123456789012:parameter/*" }, { "Effect": "Deny", "Action": [ "ssm:PutParameter" ], "Condition": { "StringEquals": { "ssm:Policies": [ "true" ] } }, "Resource": "arn:aws:ssm:us-east-2:123456789012:parameter/*" } ] }

ssm:Recursive를 통해 계층 구조 파라미터의 수준에 대한 액세스 차단

ssm:Recursive 조건을 사용하여 IAM 개체가 계층적 파라미터의 수준을 보거나 참조할 수 있는지 여부를 제어할 수 있습니다. 계층 구조의 특정 수준을 벗어나는 모든 파라미터에 대한 액세스를 제공하거나 제한할 수 있습니다.

다음 예제 정책에서 "Allow" 문은 미국 동부(오하이오) 리전(us-east-2)의 AWS 계정 123456789012에서 경로 /Code/Departments/Finance/*에 있는 모든 파라미터에 대한 Parameter Store 작업에 대한 액세스를 제공합니다.

이후에는 "Deny" 문이 IAM 엔터티가 /Code/Departments/* 수준 이하의 파라미터 데이터를 보거나 검색하지 못하도록 합니다. 하지만 엔티티는 여전히 해당 경로에서 파라미터를 생성하거나 업데이트할 수 있습니다. 이 예제는 파라미터 계층 구조에서 특정 수준 이하로 액세스를 재귀적으로 거부하는 것이 동일한 정책에서 보다 허용적인 액세스보다 우선한다는 것을 설명하기 위해 구성되었습니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:*" ], "Resource": "arn:aws:ssm:us-east-2:123456789012:parameter/*" }, { "Effect": "Deny", "Action": [ "ssm:GetParametersByPath" ], "Condition": { "StringEquals": { "ssm:Recursive": [ "true" ] } }, "Resource": "arn:aws:ssm:us-east-2:123456789012:parameter/Code/Departments/*" } ] }
중요

경로에 대해 액세스 권한이 있는 사용자는 해당 경로의 모든 수준에 액세스할 수 있습니다. 예를 들어 /a 경로에 대한 액세스 권한이 있는 사용자는 /a/b에도 액세스할 수 있습니다. 이는 위에 설명된 것처럼 사용자가 IAM에서 /b 파라미터에 대한 액세스를 명시적으로 거부당한 경우를 제외하고는 해당됩니다.