추가 검체 IAM 정책 Session Manager - AWS 시스템 관리자

문서의 영문과 번역 사이에 충돌이 있는 경우에는 영문 버전을 따릅니다. 번역 버전은 기계 번역을 사용하여 제공합니다.

추가 검체 IAM 정책 Session Manager

사용자 지정 IAM 정책을 만드는 데 도움이 되는 다음 예제 정책을 참조하십시오. 모든 Session Manager 사용자 액세스 시나리오를 지원합니다.

실시예 1: 제한 특정 인스턴스에 액세스

다음을 작성하여 특정 인스턴스에 대한 액세스를 제한할 수 있습니다. IAM 사용자 인스턴스의 ID를 포함하는 정책. 다음 예에서 사용자가 허용됨 Session Manager 세 가지 특정 인스턴스에만 액세스할 수 있으며 를 클릭하여 해당 인스턴스에 대한 세션만 종료합니다. 사용자가 명령을 보내는 경우 다른 인스턴스에 연결하거나 다른 세션을 종료하려고 하면 명령 결과가 은(는) 다음을 포함합니다. AccessDenied.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:StartSession" ], "Resource": [ "arn:aws:ec2:us-east-2:123456789012:instance/i-1234567890EXAMPLE", "arn:aws:ec2:us-east-2:123456789012:instance/i-abcdefghijEXAMPLE", "arn:aws:ec2:us-east-2:123456789012:instance/i-0e9d8c7b6aEXAMPLE" ] }, { "Effect": "Allow", "Action": [ "ssm:TerminateSession" ], "Resource": [ "arn:aws:ssm:*:*:session/${aws:username}-*" ] } ] }

실시예 2: 제한 인스턴스 태그를 기반으로 액세스

특정 Amazon EC2 태그. 에서 다음 예제에서는 사용자가 세션을 시작할 수 있습니다(Effect: Allow, Action: ssm:StartSession모든 인스턴스(Resource: arn:aws:ec2:*:*:instance/*) 인스턴스가 은 금융 웹서버(ssm:resourceTag/Finance: WebServer). 만일 사용자가 태그가 지정되지 않았거나 다음 이외의 태그 Finance: WebServer, 명령 결과는 포함 AccessDenied.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:StartSession" ], "Resource": [ "arn:aws:ec2:*:*:instance/*" ], "Condition": { "StringLike": { "ssm:resourceTag/Finance": [ "WebServers" ] } } }, { "Effect": "Allow", "Action": [ "ssm:TerminateSession" ], "Resource": [ "arn:aws:ssm:*:*:session/${aws:username}-*" ] } ] }

다음을 생성할 수 있습니다. IAM 사용자가 세션을 시작할 수 있는 정책 여러 태그로 태그 지정된 인스턴스. 다음 정책이 사용하도록 설정됩니다. 사용자가 지정된 태그가 모두 있는 인스턴스로 세션을 시작함 적용됩니다. 사용자가 태그가 지정되지 않은 인스턴스로 명령을 전송하는 경우 이 두 태그에서 명령 결과에는 AccessDenied.

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "ssm:StartSession" ], "Resource":"*", "Condition":{ "StringLike":{ "ssm:resourceTag/tag-key1":[ "tag-value1" ], "ssm:resourceTag/tag-key2":[ "tag-value2" ] } } } ] }

작성에 대한 자세한 내용은 IAM 사용자 정책, 참조 관리됨 정책 및 인라인 정책 에서 IAM 사용 설명서. 태그 지정에 대한 자세한 내용은 인스턴스, 참조 태그 지정 Amazon EC2 자원 에서 Linux 인스턴스용 Amazon EC2 사용 설명서 (콘텐츠는 Windows 및 Linux 인스턴스). 보안 태세를 강화하는 자세한 정보는 권한 없는 루트 레벨 명령을 사용하는 경우 루트 레벨에 대한 액세스 제한 명령 통과 SSM 에이전트

실시예 3: 허용 사용자가 시작한 세션만 종료

Session Manager AWS에서 사용자를 제어하는 두 가지 방법을 제공합니다. 은(는) 을(를) 종료할 수 있습니다.

  • 변수 사용 {aws:username} 에서 AWS Identity and Access Management (IAM) 권한 정책. 사용자는 자신의 세션만 종료할 수 있습니다. 은(는) 을(를) 시작했습니다. 이 방법은 통합 AWS 에 대한 액세스 권한을 부여할 ID입니다. 통합 ID는 변수를 사용합니다. {aws:userid} 대신 {aws:username}.

  • AWS 태그가 제공하는 태그를 IAM 권한 정책. 내부 사용자가 종료만 할 수 있는 조건을 포함하는 경우 제공된 특정 태그로 태그가 지정된 세션 AWS 에 의해. 이 방법은 통합 ID를 사용하여 AWS 에 대한 액세스 권한을 부여할 수 있습니다.

방법 1: 변수를 사용하여 종료 세션 권한 부여 {aws:username}

다음 IAM 정책을 사용하면 사용자는 모든 세션의 ID를 볼 수 있습니다. 계정. 그러나 사용자는 다음을 통해서만 인스턴스와 상호 작용할 수 있습니다. 을(를) 시작했습니다. 다음 정책이 할당된 사용자는 다음을 수행할 수 없습니다. 또는 다른 사용자의 세션에 연결 정책은 변수를 사용합니다. {aws:username} 이 목표를 달성합니다.

참고

이 방법은 AWS에 대한 액세스 권한을 부여하는 계정에 대해 작동하지 않습니다. 통합 ID 사용.

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "ssm:DescribeSessions" ], "Effect": "Allow", "Resource": [ "*" ] }, { "Action": [ "ssm:TerminateSession" ], "Effect": "Allow", "Resource": [ "arn:aws:ssm:*:*:session/${aws:username}-*" ] } ] }

방법 2: AWS에서 제공한 태그를 사용하여 종료 세션 권한 부여

조건을 사용하여 사용자가 종료할 수 있는 세션을 제어할 수 있습니다. IAM 사용자 정책에서 특정 태그 키 변수를 사용합니다. 상태 사용자가 하나로 태그가 지정된 세션만 종료할 수 있도록 지정합니다. 또는 이러한 특정 태그 키 변수와 지정된 값.

AWS 계정의 사용자가 세션을 시작하면 Session Manager 적용 2 리소스 태그를 세션에 추가합니다. 첫 번째 리소스 태그는 aws:ssmmessages:target-id, 이(가) 사용자가 종료할 수 있는 대상의 ID입니다. 다른 리소스 태그는 aws:ssmmessages:session-id, 형식의 값 포함 / role-id:caller-specified-role-name.

참고

Session Manager 은(는) 이 에 대한 사용자 지정 태그를 지원하지 않습니다. IAM 액세스 제어 정책. 설명된 대로 AWS에서 제공하는 리소스 태그를 사용해야 합니다. 을 참조하십시오.

aws:세미지:타겟-id

이 태그 키를 사용하여 인스턴스 ID를 정책 의 값. 다음 정책 블록에서 조건문을 사용하면 사용자가 인스턴스만 종료할 수 있습니다. i-02573cafcfEXAMPLE:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:TerminateSession" ], "Resource": "", "Condition": { "StringLike": { "ssm:resourceTag/aws:ssmmessages:target-id": [ "i-02573cafcfEXAMPLE" ] } } } ] }

사용자가 세션을 종료하려고 하면 이(가) 이(가) 부여되었습니다. TerminateSession 허가, 고객이 AccessDeniedException 오류.

aws:세션-id

이 태그 키에는 세션 ID에 대한 변수가 세션 시작 요청의 값입니다.

다음 예는 사례에 대한 정책을 보여 줍니다. 여기서 발신자 유형은 사용자 입니다. 귀하가 제공하는 가치 aws:ssmmessages:session-id 은(는) 사용자. 이 예에서는 AIDIODR4TAW7CSEXAMPLE 은 AWS 계정 에서 사용자의 ID를 나타냅니다. 검색 AWS 계정의 사용자에 대한 ID를 사용하려면 IAM 명령을 사용합니다. get-user. 자세한 내용은 를 참조하십시오. 사용자 가져오기 에서 을 AWS Identity and Access Management 섹션 IAM 사용 설명서.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:TerminateSession" ], "Resource": "", "Condition": { "StringLike": { "ssm:resourceTag/aws:ssmmessages:session-id": [ "AIDIODR4TAW7CSEXAMPLE" ] } } } ] }

다음 예는 사례에 대한 정책을 보여 줍니다. 발신자 유형이 AssumedRole. 다음을 수행할 수 있습니다. 사용 {aws:userid} 변수가 공급 aws:ssmmessages:session-id. 또는, 사용자 이름에 따라 사용자 이름에 대한 공급 aws:ssmmessages:session-id. 만약 역할 ID를 하드코드하는 경우, 값을 형식으로 제공해야 합니다. role-id:caller-specified-role-name. 예를 들어, AIDIODR4TAW7CSEXAMPLE:MyRole.

중요

시스템 태그를 적용하려면 역할 ID를 다음 문자만 포함할 수 있습니다. 유니코드 문자, 0-9, 공백, _, ., :, /, =, +, -, @, 및 \.

AWS 계정에서 역할에 대한 역할 ID를 검색하려면 사용 get-caller-identity 명령. 대상 정보, 참조 호출자-신원 확인 에서 AWS CLI Command Reference.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:TerminateSession" ], "Resource": "", "Condition": { "StringLike": { "ssm:resourceTag/aws:ssmmessages:session-id": [ "${aws:userid}" ] } } } ] }

사용자가 세션을 종료하려고 하면 이(가) 이(가) 부여되었습니다. TerminateSession 허가, 고객이 AccessDeniedException 오류.

aws:세미지:타겟-idaws:세션-id

또한 사용자가 다음을 종료할 수 있도록 하는 IAM 정책을 만들 수도 있습니다. 에서와 같이 두 시스템 태그로 태그가 지정된 세션 이 예제.

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "ssm:TerminateSession" ], "Resource":"*", "Condition":{ "StringLike":{ "ssm:resourceTag/aws:ssmmessages:target-id":[ "instance-id" ], "ssm:resourceTag/aws:ssmmessages:session-id":[ "${aws:username}-*" ] } } } ] }

실시예 4: 전체 허용 (관리) 모든 세션에 액세스

다음 IAM 정책을 사용하면 사용자가 모든 인스턴스 및 모든 사용자가 모든 인스턴스에 대해 작성한 모든 세션. 이는 사용자의 보안 기능에 대한 완전한 제어가 필요한 관리자에게만 조직의 Session Manager 활동.

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "ssm:StartSession", "ssm:TerminateSession", "ssm:ResumeSession", "ssm:DescribeSessions", "ssm:GetConnectionStatus" ], "Effect": "Allow", "Resource": [ "*" ] } ] }