기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
IAM 정책을 사용한 AWS CloudShell 액세스 및 사용 관리
에서 제공할 수 있는 액세스 관리 리소스를 통해 AWS Identity and Access Management관리자는 IAM 사용자에게 권한을 부여할 수 있습니다. 이렇게 하면 이러한 사용자가 환경의 기능에 액세스 AWS CloudShell 하고 사용할 수 있습니다. 관리자는 또한 해당 사용자가 쉘 환경에서 수행할 수 있는 작업을 세부적으로 지정하는 정책을 만들 수 있습니다.
관리자가 사용자에게 액세스 권한을 부여하는 가장 빠른 방법은 AWS 관리형 정책을 통하는 것입니다. AWS 관리형 정책은 에서 생성하고 관리하는 독립 실행형 정책입니다 AWS. 에 대한 다음 AWS 관리형 정책을 IAM 자격 증명에 연결할 AWS CloudShell 수 있습니다.
-
AWS CloudShellFullAccess: 모든 기능에 대한 전체 액세스 권한과 함께 를 사용할 AWS CloudShell 수 있는 권한을 부여합니다.
AWS CloudShellFullAccess 정책은 와일드카드(*) 문자를 사용하여 및 기능에 대한 자격 IAM 증명(사용자, 역할 또는 그룹)의 CloudShell 전체 액세스 권한을 부여합니다. 이 정책에 대한 자세한 내용은 관리형 정책 사용 설명서AWS CloudShellFullAccess의 섹션을 참조하세요. AWS
참고
IAM 다음 AWS 관리형 정책이 있는 자격 증명도 를 시작할 수 있습니다 CloudShell. 단, 이러한 정책은 광범위한 권한을 제공합니다. 따라서 이러한 정책은 IAM 사용자의 직무 역할에 필수적인 경우에만 부여하는 것이 좋습니다.
-
관리자 : IAM 사용자에게 전체 액세스 권한을 제공하고 의 모든 서비스 및 리소스에 권한을 위임할 수 있습니다 AWS.
-
개발자 파워 사용자 : IAM 사용자가 애플리케이션 개발 작업을 수행하고 AWS 인지 애플리케이션 개발을 지원하는 리소스 및 서비스를 생성하고 구성할 수 있습니다.
관리형 정책 연결에 대한 자세한 내용은 IAM 사용 설명서의 IAM 자격 증명 권한 추가(콘솔)를 참조하세요.
사용자 지정 정책을 AWS CloudShell 사용하여 에서 허용 가능한 작업 관리
IAM 사용자가 로 수행할 수 있는 작업을 관리하려면 CloudShellPolicy 관리형 정책을 템플릿으로 사용하는 사용자 지정 정책을 CloudShell생성합니다. 또는 관련 IAM 자격 증명(사용자, 그룹 또는 역할)에 포함된 인라인 정책을 편집합니다.
예를 들어 IAM 사용자가 에 액세스하도록 허용할 수 있지만 CloudShell사용자가 에 로그인하는 데 사용되는 CloudShell 환경 자격 증명을 전달하지 못하도록 할 수 있습니다 AWS Management Console.
중요
AWS CloudShell 에서 를 시작하려면 AWS Management Console IAM 다음 작업에 대한 권한이 필요합니다.
-
CreateEnvironment
-
CreateSession
-
GetEnvironmentStatus
-
StartEnvironment
연결된 정책에서 이러한 작업 중 하나를 명시적으로 허용하지 않는 경우 를 시작하려고 하면 IAM 권한 오류가 반환됩니다 CloudShell.
명칭 | 부여된 권한에 대한 설명 | 를 시작하는 데 필요 CloudShell합니까? |
---|---|---|
|
CloudShell 환경을 생성하고, CloudShell 세션 시작 시 레이아웃을 검색하고, 웹 애플리케이션의 현재 레이아웃을 백엔드에 저장합니다. 이 권한은 에 설명된 |
예 |
|
에서 CloudShell 환경에 연결합니다 AWS Management Console. |
예 |
|
CloudShell 환경의 상태를 읽습니다. |
예 |
|
CloudShell 환경을 삭제합니다. |
아니요 |
|
CloudShell 웹 인터페이스를 CloudShell 사용하여 파일을 다운로드URLs하는 데 사용되는 미리 서명된 Amazon S3를 생성합니다. VPC 환경에서는 사용할 수 없습니다. |
아니요 |
|
CloudShell 웹 인터페이스를 CloudShell 사용하여 파일을 업로드URLs하는 데 사용되는 미리 서명된 Amazon S3를 생성합니다. VPC 환경에서는 사용할 수 없습니다. |
아니요 |
|
환경을 설명합니다. |
아니요 |
|
에 로그인하는 데 사용되는 보안 인증 정보를 AWS Management Console 에 전달합니다 CloudShell. |
아니요 |
|
중지된 CloudShell 환경을 시작합니다. |
예 |
|
실행 중인 CloudShell 환경을 중지합니다. |
아니요 |
에 대한 IAM 정책의 예 CloudShell
다음 예제에서는 에 액세스할 수 있는 사용자를 제한하는 정책을 생성하는 방법을 보여줍니다 CloudShell. 또한 쉘 환경에서 수행할 수 있는 작업을 알 수 있습니다.
다음 정책은 CloudShell 및 기능에 대한 액세스의 완전한 거부를 적용합니다.
{ "Version": "2012-10-17", "Statement": [{ "Sid": "DenyCloudShell", "Effect": "Deny", "Action": [ "cloudshell:*" ], "Resource": "*" }] }
다음 정책은 IAM 사용자가 에 액세스할 수 있도록 허용 CloudShell 하지만 파일 업로드 및 다운로드를 URLs 위해 미리 서명된 를 생성하는 것을 차단합니다. 예를 들어, wget
과 같은 클라이언트를 사용하여 환경 간 파일 전송은 계속할 수 있습니다.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowUsingCloudshell", "Effect": "Allow", "Action": [ "cloudshell:*" ], "Resource": "*" }, { "Sid": "DenyUploadDownload", "Effect": "Deny", "Action": [ "cloudshell:GetFileDownloadUrls", "cloudshell:GetFileUploadUrls" ], "Resource": "*" }] }
다음 정책은 IAM 사용자가 에 액세스할 수 있도록 허용합니다 CloudShell. 그러나 정책은 에 로그인하는 데 사용한 보안 인증 정보가 CloudShell 환경으로 전달 AWS Management Console 되지 않도록 합니다. IAM 이 정책을 사용하는 사용자는 내에서 자격 증명을 수동으로 구성해야 합니다 CloudShell.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowUsingCloudshell", "Effect": "Allow", "Action": [ "cloudshell:*" ], "Resource": "*" }, { "Sid": "DenyCredentialForwarding", "Effect": "Deny", "Action": [ "cloudshell:PutCredentials" ], "Resource": "*" }] }
다음 정책은 IAM 사용자가 AWS CloudShell 환경을 생성할 수 있도록 허용합니다.
{ "Version": "2012-10-17", "Statement": [{ "Sid": "CloudShellUser", "Effect": "Allow", "Action": [ "cloudshell:CreateEnvironment", "cloudshell:CreateSession", "cloudshell:GetEnvironmentStatus", "cloudshell:StartEnvironment" ], "Resource": "*" }] }
환경 생성 및 사용에 CloudShell VPC 필요한 IAM 권한
환경을 생성하고 사용하려면 CloudShell VPC IAM 관리자가 VPC 특정 Amazon EC2 권한에 대한 액세스를 활성화해야 합니다. 이 섹션에서는 VPC 환경을 생성하고 사용하는 데 필요한 Amazon EC2 권한을 나열합니다.
VPC 환경을 생성하려면 역할에 할당된 IAM 정책에 다음 Amazon EC2 권한이 포함되어야 합니다.
ec2:DescribeVpcs
ec2:DescribeSubnets
ec2:DescribeSecurityGroups
ec2:DescribeDhcpOptions
ec2:DescribeNetworkInterfaces
-
ec2:CreateTags
-
ec2:CreateNetworkInterface
-
ec2:CreateNetworkInterfacePermission
또한 다음을 포함하는 것이 좋습니다.
-
ec2:DeleteNetworkInterface
참고
이 권한은 필수는 아니지만 이 권한으로 생성된 ENI 리소스(ENIs환경용으로 CloudShell VPC 생성된 는 ManagedByCloudShell 키로 태그 지정됨)를 정리 CloudShell 하는 데 필요합니다. 이 권한이 활성화되지 않은 경우 환경을 사용할 때마다 ENI CloudShell VPC 리소스를 수동으로 정리해야 합니다.
IAM 에 대한 액세스를 포함하여 전체 CloudShell 액세스 권한을 부여하는 정책 VPC
다음 예제에서는 에 대한 액세스를 포함하여 전체 권한을 활성화VPC하는 방법을 보여줍니다 CloudShell.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowCloudShellOperations", "Effect": "Allow", "Action": [ "cloudshell:*" ], "Resource": "*" }, { "Sid": "AllowDescribeVPC", "Effect": "Allow", "Action": [ "ec2:DescribeDhcpOptions", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups", "ec2:DescribeVpcs" ], "Resource": "*" }, { "Sid": "AllowCreateTagWithCloudShellKey", "Effect": "Allow", "Action": [ "ec2:CreateTags" ], "Resource": "arn:aws:ec2:*:*:network-interface/*", "Condition": { "StringEquals": { "ec2:CreateAction": "CreateNetworkInterface" }, "ForAnyValue:StringEquals": { "aws:TagKeys": "ManagedByCloudShell" } } }, { "Sid": "AllowCreateNetworkInterfaceWithSubnetsAndSG", "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterface" ], "Resource": [ "arn:aws:ec2:*:*:subnet/*", "arn:aws:ec2:*:*:security-group/*" ] }, { "Sid": "AllowCreateNetworkInterfaceWithCloudShellTag", "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterface" ], "Resource": "arn:aws:ec2:*:*:network-interface/*", "Condition": { "ForAnyValue:StringEquals": { "aws:TagKeys": "ManagedByCloudShell" } } }, { "Sid": "AllowCreateNetworkInterfacePermissionWithCloudShellTag", "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterfacePermission" ], "Resource": "arn:aws:ec2:*:*:network-interface/*", "Condition": { "StringEquals": { "aws:ResourceTag/ManagedByCloudShell": "" } } }, { "Sid": "AllowDeleteNetworkInterfaceWithCloudShellTag", "Effect": "Allow", "Action": [ "ec2:DeleteNetworkInterface" ], "Resource": "arn:aws:ec2:*:*:network-interface/*", "Condition": { "StringEquals": { "aws:ResourceTag/ManagedByCloudShell": "" } } } ] }
VPC 환경에 조건 IAM 키 사용
VPC 설정에 CloudShell특정 조건 키를 사용하여 VPC 환경에 대한 추가 권한 제어를 제공할 수 있습니다. VPC 환경이 사용할 수 있는 서브넷과 사용할 수 없는 보안 그룹을 지정할 수도 있습니다.
CloudShell 는 IAM 정책에서 다음 조건 키를 지원합니다.
-
CloudShell:VpcIds
- 하나 이상의 허용 또는 거부 VPCs -
CloudShell:SubnetIds
- 하나 이상의 서브넷 허용 또는 거부 -
CloudShell:SecurityGroupIds
- 하나 이상의 보안 그룹 허용 또는 거부
참고
퍼블릭 CloudShell 환경에 액세스할 수 있는 사용자에 대한 권한이 cloudshell:createEnvironment
작업에 제한을 추가하도록 수정된 경우에도 기존 퍼블릭 환경에 액세스할 수 있습니다. 그러나 이 제한으로 IAM 정책을 수정하고 기존 퍼블릭 환경에 대한 액세스를 비활성화하려면 먼저 제한으로 IAM 정책을 업데이트한 다음 계정의 모든 CloudShell 사용자가 CloudShell 웹 사용자 인터페이스(작업 → 환경 삭제 CloudShell )를 사용하여 기존 퍼블릭 환경을 수동으로 삭제해야 합니다.
VPC 설정에 대한 조건 키가 있는 정책 예제
다음 예제에서는 VPC 설정에 조건 키를 사용하는 방법을 보여줍니다. 원하는 제한 사항이 있는 정책 구문을 생성한 후 대상 사용자 또는 역할에 대한 정책 구문을 추가합니다.
사용자가 VPC 환경만 생성하고 퍼블릭 환경 생성을 거부하도록 합니다.
사용자가 VPC 환경만 생성할 수 있도록 하려면 다음 예제와 같이 거부 권한을 사용합니다.
{ "Statement": [ { "Sid": "DenyCloudShellNonVpcEnvironments", "Action": [ "cloudshell:CreateEnvironment" ], "Effect": "Deny", "Resource": "*", "Condition": { "Null": { "cloudshell:VpcIds": "true" } } } ] }
특정 VPCs, 서브넷 또는 보안 그룹에 대한 사용자 액세스 거부
특정 에 대한 사용자 액세스를 거부하려면 StringEquals
를 VPCs사용하여 cloudshell:VpcIds
조건 값을 확인합니다. 다음 예제에서는 vpc-1
및 에 대한 사용자 액세스를 거부합니다vpc-2
.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "EnforceOutOfVpc", "Action": [ "cloudshell:CreateEnvironment" ], "Effect": "Deny", "Resource": "*", "Condition": { "StringEquals": { "cloudshell:VpcIds": [ "vpc-1", "vpc-2" ] } } } ] }
특정 에 대한 사용자 액세스를 거부하려면 StringEquals
를 VPCs사용하여 cloudshell:SubnetIds
조건 값을 확인합니다. 다음 예제에서는 subnet-1
및 에 대한 사용자 액세스를 거부합니다subnet-2
.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "EnforceOutOfVpc", "Action": [ "cloudshell:CreateEnvironment" ], "Effect": "Deny", "Resource": "*", "Condition": { "StringEquals": { "cloudshell:VpcIds": [ "vpc-1", "vpc-2" ] } } } ] }
특정 에 대한 사용자 액세스를 거부하려면 StringEquals
를 VPCs사용하여 cloudshell:SecurityGroupIds
조건 값을 확인합니다. 다음 예제에서는 sg-1
및 에 대한 사용자 액세스를 거부합니다sg-2
.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "EnforceOutOfSecurityGroups", "Action": [ "cloudshell:CreateEnvironment" ], "Effect": "Deny", "Resource": "*", "Condition": { "ForAnyValue:StringEquals": { "cloudshell:SecurityGroupIds": [ "sg-1", "sg-2" ] } } } ] }
사용자가 특정 VPC 구성으로 환경을 생성할 수 있도록 허용
사용자가 특정 에 액세스할 수 있도록 하려면 StringEquals
를 VPCs사용하여 cloudshell:VpcIds
조건 값을 확인합니다. 다음 예제에서는 사용자가 vpc-1
및 에 액세스할 수 있도록 허용합니다vpc-2
.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "EnforceStayInSpecificVpc", "Action": [ "cloudshell:CreateEnvironment" ], "Effect": "Allow", "Resource": "*", "Condition": { "StringEquals": { "cloudshell:VpcIds": [ "vpc-1", "vpc-2" ] } } } ] }
사용자가 특정 에 액세스할 수 있도록 하려면 StringEquals
를 VPCs사용하여 cloudshell:SubnetIds
조건 값을 확인합니다. 다음 예제에서는 사용자가 subnet-1
및 에 액세스할 수 있도록 허용합니다subnet-2
.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "EnforceStayInSpecificSubnets", "Action": [ "cloudshell:CreateEnvironment" ], "Effect": "Allow", "Resource": "*", "Condition": { "ForAllValues:StringEquals": { "cloudshell:SubnetIds": [ "subnet-1", "subnet-2" ] } } } ] }
사용자가 특정 에 액세스할 수 있도록 하려면 StringEquals
를 VPCs사용하여 cloudshell:SecurityGroupIds
조건 값을 확인합니다. 다음 예제에서는 사용자가 sg-1
및 에 액세스할 수 있도록 허용합니다sg-2
.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "EnforceStayInSpecificSecurityGroup", "Action": [ "cloudshell:CreateEnvironment" ], "Effect": "Allow", "Resource": "*", "Condition": { "ForAllValues:StringEquals": { "cloudshell:SecurityGroupIds": [ "sg-1", "sg-2" ] } } } ] }
액세스 권한 AWS 서비스
CloudShell 는 에 로그인하는 데 사용한 IAM 보안 인증 정보를 사용합니다 AWS Management Console.
참고
에 로그인하는 데 사용한 IAM 보안 인증 정보를 사용하려면 cloudshell:PutCredentials
권한이 있어야 AWS Management Console합니다.
의 이 사전 인증 기능을 CloudShell 사용하면 를 편리하게 사용할 수 있습니다 AWS CLI. 그러나 IAM 사용자에게는 명령줄에서 호출 AWS 서비스 되는 에 대한 명시적 권한이 여전히 필요합니다.
예를 들어 IAM 사용자가 Amazon S3 버킷을 생성하고 파일을 객체로 업로드해야 한다고 가정해 보겠습니다. 이러한 작업을 명시적으로 허용하는 정책을 생성할 수 있습니다. IAM 콘솔은 JSON형식이 지정된 정책 문서를 작성하는 프로세스를 안내하는 대화형 시각적 편집기를 제공합니다. 정책이 생성된 후 관련 IAM 자격 증명(사용자, 그룹 또는 역할)에 연결할 수 있습니다.
관리형 정책 연결에 대한 자세한 내용은 IAM 사용 설명서의 IAM 자격 증명 권한 추가(콘솔)를 참조하세요.
에서 Amazon Q CLI 기능에 액세스하기 위한 권한 CloudShell
인라인 제안 CloudShell, 채팅 및 번역과 같은 에서 Amazon Q CLI 기능을 사용하려면 필요한 IAM 권한이 있는지 확인하세요. 에서 Amazon Q CLI 기능에 액세스할 수 없는 경우 관리자에게 CloudShell문의하여 필요한 IAM 권한을 제공하세요. 자세한 내용은 Amazon Q 개발자 사용 설명서의 Amazon Q 개발자에 대한 자격 증명 기반 정책 예제를 참조하세요.