AWS Cloud9의 ID 및 액세스 관리 - AWS Cloud9

신규 고객은 더 이상 AWS Cloud9를 사용할 수 없습니다. AWS Cloud9의 기존 고객은 정상적으로 서비스를 계속 이용할 수 있습니다. 자세히 알아보기

AWS Cloud9의 ID 및 액세스 관리

AWS Identity and Access Management(IAM)는 관리자가 AWS 리소스에 대한 액세스를 안전하게 제어할 수 있도록 지원하는 AWS 서비스입니다. IAM 관리자는 어떤 사용자가 AWS Cloud9 리소스를 사용할 수 있는 인증(로그인) 및 권한(권한 있음)을 받을 수 있는지 제어합니다. IAM은 추가 비용 없이 사용할 수 있는 AWS 서비스입니다.

고객

AWS Identity and Access Management(IAM)을 사용하는 방법은 AWS Cloud9에서 수행하는 작업에 따라 달라집니다.

서비스 사용자 - AWS Cloud9 서비스를 사용하여 작업을 수행하는 경우 필요한 보안 인증과 권한을 관리자가 제공합니다. 더 많은 AWS Cloud9 기능을 사용하여 작업을 수행하게 되면 추가 권한이 필요할 수 있습니다. 액세스 권한 관리 방식을 이해하면 적절한 권한을 관리자에게 요청할 수 있습니다. AWS Cloud9의 기능에 액세스할 수 없는 경우 AWS Cloud9 보안 인증 및 액세스 문제 해결을 참조하세요.

서비스 관리자 - 회사에서 AWS Cloud9 리소스를 책임지고 있는 담당자라면 AWS Cloud9에 대한 전체 액세스 권한을 가지고 있을 것입니다. 서비스 관리자는 서비스 사용자가 액세스해야 하는 AWS Cloud9 기능과 리소스를 결정합니다. 그런 다음, IAM 관리자에게 요청을 제출하여 서비스 사용자의 권한을 변경해야 합니다. 이 페이지의 정보를 검토하여 IAM의 기본 개념을 이해하십시오. 회사가 AWS Cloud9에서 IAM을 사용하는 방법에 대해 자세히 알아보려면 AWS Cloud9에서 IAM을 사용하는 방식을 참조하세요.

IAM 관리자 - IAM 관리자라면 AWS Cloud9에 대한 액세스 권한 관리 정책 작성 방법을 자세히 알고 싶을 것입니다. IAM에서 사용할 수 있는 AWS Cloud9 자격 증명 기반 정책 예제를 보려면 AWS Cloud9 자격 증명 기반 정책 예시을 참조하세요.

ID를 통한 인증

인증은 ID 보안 인증을 사용하여 AWS에 로그인하는 방식입니다. AWS 계정 루트 사용자이나 IAM 사용자로, 또는 IAM 역할을 수임하여 인증(AWS에 로그인)받아야 합니다.

ID 소스를 통해 제공된 보안 인증 정보를 사용하여 페더레이션 ID로 AWS에 로그인할 수 있습니다. AWS IAM Identity Center (IAM Identity Center) 사용자, 회사의 Single Sign-On 인증, Google 또는 Facebook 보안 인증이 페더레이션 ID의 예시입니다. 페더레이션형 ID로 로그인할 때 관리자가 이전에 IAM 역할을 사용하여 ID 페더레이션을 설정했습니다. 연동을 사용하여 AWS에 액세스하면 간접적으로 역할을 수임합니다.

사용자 유형에 따라AWS Management Console 또는 AWS 액세스 포털에 로그인할 수 있습니다. AWS에 로그인하는 방법에 대한 자세한 내용은 AWS 로그인 사용 설명서AWS 계정에 로그인하는 방법을 참조하세요.

AWS에 프로그래밍 방식으로 액세스하는 경우, AWS에서는 보안 인증 정보를 사용하여 요청에 암호화 방식으로 서명할 수 있는 소프트웨어 개발 키트(SDK) 및 명령줄 인터페이스(CLI)를 제공합니다. AWS 도구를 사용하지 않는 경우 요청에 직접 서명해야 합니다. 권장 방법을 사용하여 요청에 직접 서명하는 방법에 대한 자세한 내용은 IAM 사용 설명서API 요청용 AWS Signature Version 4를 참조하세요.

사용하는 인증 방법에 상관없이 추가 보안 정보를 제공해야 할 수도 있습니다. 예를 들어, AWS는 다중 인증(MFA)을 사용하여 계정의 보안을 강화하는 것을 권장합니다. 자세한 내용은 AWS IAM Identity Center 사용 설명서다중 인증IAM 사용 설명서IAM 사용 설명서의 AWS Multi-factor authentication을 참조하세요.

AWS 계정 루트 사용자

AWS 계정(을)를 생성할 때는 해당 계정의 모든 AWS 서비스 및 리소스에 대한 완전한 액세스 권한이 있는 단일 로그인 ID로 시작합니다. 이 ID는 AWS 계정루트 사용자라고 하며, 계정을 생성할 때 사용한 이메일 주소와 암호로 로그인하여 액세스합니다. 일상적인 작업에 루트 사용자를 사용하지 않을 것을 강력히 권장합니다. 루트 사용자 보안 인증 정보를 보호하고 루트 사용자만 수행할 수 있는 작업을 수행하는 데 사용합니다. 루트 사용자로 로그인해야 하는 전체 작업 목록은 IAM 사용 설명서루트 사용자 보안 인증이 필요한 작업을 참조하십시오.

페더레이션 자격 증명

가장 좋은 방법은 관리자 액세스가 필요한 사용자를 포함한 사용자가 ID 공급자와의 페더레이션을 사용하여 임시 보안 인증 정보를 사용하여 AWS 서비스에 액세스하도록 요구합니다.

페더레이션 ID는 엔터프라이즈 사용자 디렉터리, 웹 ID 공급자, AWS Directory Service, Identity Center 디렉터리의 사용자 또는 보안 인증 정보 소스를 통해 제공된 보안 인증 정보를 사용하여 AWS 서비스에 액세스하는 모든 사용자입니다. 페더레이션 ID는 AWS 계정에 액세스할 때 역할을 수임하고 역할은 임시 보안 인증 정보를 제공합니다.

중앙 집중식 액세스 관리를 위해 AWS IAM Identity Center(을)를 사용하는 것이 좋습니다. IAM Identity Center에서 사용자 및 그룹을 생성하거나 모든 AWS 계정 및 애플리케이션에서 사용하기 위해 고유한 ID 소스의 사용자 및 그룹 집합에 연결하고 동기화할 수 있습니다. IAM Identity Center에 대한 자세한 내용은 AWS IAM Identity Center 사용 설명서에서 IAM Identity Center란 무엇인가요?를 참조하세요.

IAM 사용자 및 그룹

IAM 사용자는 단일 개인 또는 애플리케이션에 대한 특정 권한을 가지고 있는 AWS 계정내 ID입니다. 가능하면 암호 및 액세스 키와 같은 장기 보안 인증이 있는 IAM 사용자를 생성하는 대신 임시 보안 인증을 사용하는 것이 좋습니다. 하지만 IAM 사용자의 장기 보안 인증이 필요한 특정 사용 사례가 있는 경우, 액세스 키를 교체하는 것이 좋습니다. 자세한 내용은 IAM 사용 설명서장기 보안 인증이 필요한 사용 사례의 경우 정기적으로 액세스 키 교체를 참조하세요.

IAM 그룹은 IAM 사용자 컬렉션을 지정하는 자격 증명입니다. 사용자는 그룹으로 로그인할 수 없습니다. 그룹을 사용하여 여러 사용자의 권한을 한 번에 지정할 수 있습니다. 그룹을 사용하면 대규모 사용자 집합의 권한을 더 쉽게 관리할 수 있습니다. 예를 들어, IAMAdmins라는 그룹이 있고 이 그룹에 IAM 리소스를 관리할 권한을 부여할 수 있습니다.

사용자는 역할과 다릅니다. 사용자는 한 사람 또는 애플리케이션과 고유하게 연결되지만, 역할은 해당 역할이 필요한 사람이라면 누구나 수임할 수 있습니다. 사용자는 영구적인 장기 보안 인증 정보를 가지고 있지만, 역할은 임시 보안 인증만 제공합니다. 자세한 내용은 IAM 사용 설명서의 IAM 사용자 사용 사례를 참조하세요.

IAM 역할

IAM 역할은 특정 권한을 가지고 있는 AWS 계정 계정 내 ID입니다. IAM 사용자와 유사하지만, 특정 개인과 연결되지 않습니다. AWS Management Console에서 IAM 역할을 일시적으로 수임하려면 사용자에서 IAM 역할(콘솔)로 전환할 수 있습니다. AWS CLI 또는 AWS API 작업을 호출하거나 사용자 지정 URL을 사용하여 역할을 수임할 수 있습니다. 역할 사용 방법에 대한 자세한 내용은 IAM 사용 설명서역할 수임 방법을 참조하세요.

임시 보안 인증이 있는 IAM 역할은 다음과 같은 상황에서 유용합니다.

  • 페더레이션 사용자 액세스 - 페더레이션 ID에 권한을 부여하려면 역할을 생성하고 해당 역할의 권한을 정의합니다. 페더레이션 ID가 인증되면 역할이 연결되고 역할에 정의된 권한이 부여됩니다. 페더레이션 역할에 대한 자세한 내용은 IAM 사용 설명서서드 파티 자격 증명 공급자의 역할 만들기를 참조하세요. IAM Identity Center를 사용하는 경우, 권한 집합을 구성합니다. 인증 후 ID가 액세스할 수 있는 항목을 제어하기 위해 IAM Identity Center는 권한 세트를 IAM의 역할과 연관짓습니다. 권한 세트에 대한 자세한 내용은 AWS IAM Identity Center 사용 설명서권한 세트를 참조하세요.

  • 임시 IAM 사용자 권한 - IAM 사용자 또는 역할은 IAM 역할을 수임하여 특정 작업에 대한 다양한 권한을 임시로 받을 수 있습니다.

  • 크로스 계정 액세스 - IAM 역할을 사용하여 다른 계정의 사용자(신뢰할 수 있는 보안 주체)가 내 계정의 리소스에 액세스하도록 허용할 수 있습니다. 역할은 계정 간 액세스를 부여하는 기본적인 방법입니다. 그러나 일부 AWS 서비스를 사용하면 (역할을 프록시로 사용하는 대신) 리소스에 정책을 직접 연결할 수 있습니다. 크로스 계정 액세스에 대한 역할과 리소스 기반 정책의 차이점을 알아보려면 IAM 사용 설명서의 IAM의 크로스 계정 리소스 액세스를 참조하세요.

  • 교차 서비스 액세스 - 일부 AWS 서비스는 다른 AWS 서비스의 기능을 사용합니다. 예를 들어 서비스에서 호출하면 일반적으로 해당 서비스는 Amazon EC2에서 애플리케이션을 실행하거나 Amazon S3에 객체를 저장합니다. 서비스는직접적으로 호출하는 보안 주체의 권한을 사용하거나, 서비스 역할을 사용하거나, 또는 서비스 연결 역할을 사용하여 이 작업을 수행할 수 있습니다.

    • 전달 액세스 세션(FAS) - IAM 사용자 또는 역할을 사용하여 AWS에서 작업을 수행하는 사람은 보안 주체로 간주됩니다. 일부 서비스를 사용하는 경우 다른 서비스에서 다른 작업을 시작하는 작업을 수행할 수 있습니다. FAS는 AWS 서비스를 직접 호출하는 보안 주체의 권한과 요청하는 AWS 서비스를 함께 사용하여 다운스트림 서비스에 대한 요청을 수행합니다. FAS 요청은 서비스에서 완료를 위해 다른 AWS 서비스 또는 리소스와의 상호 작용이 필요한 요청을 받은 경우에만 이루어집니다. 이 경우 두 작업을 모두 수행할 수 있는 권한이 있어야 합니다. FAS 요청 시 정책 세부 정보는 전달 액세스 세션을 참조하세요.

    • 서비스 역할 - 서비스 역할은 서비스가 사용자를 대신하여 태스크를 수행하기 위해 맡는 IAM 역할입니다. IAM 관리자는 IAM 내에서 서비스 역할을 생성, 수정 및 삭제할 수 있습니다. 자세한 정보는 IAM 사용 설명서역할을 생성하여 AWS 서비스에게 권한 위임을 참조하세요.

    • 서비스 연결 역할 – 서비스 연결 역할은 AWS 서비스에 연결된 서비스 역할의 한 유형입니다. 서비스는 사용자를 대신하여 작업을 수행하기 위해 역할을 수임할 수 있습니다. 서비스 링크 역할은 AWS 계정에 나타나고, 서비스가 소유합니다. IAM 관리자는 서비스 연결 역할의 권한을 볼 수 있지만 편집할 수는 없습니다.

  • Amazon EC2에서 실행 중인 애플리케이션 – IAM 역할을 사용하여 EC2 인스턴스에서 실행되고 AWS CLI 또는 AWS API 요청을 수행하는 애플리케이션의 임시 보안 인증을 관리할 수 있습니다. 이는 EC2 인스턴스 내에 액세스 키를 저장할 때 권장되는 방법입니다. EC2 인스턴스에 AWS역할을 할당하고 해당 역할을 모든 애플리케이션에서 사용할 수 있도록 하려면 인스턴스에 연결된 인스턴스 프로파일을 생성합니다. 인스턴스 프로파일에는 역할이 포함되어 있으며 EC2 인스턴스에서 실행되는 프로그램이 임시 보안 인증을 얻을 수 있습니다. 자세한 정보는 IAM 사용 설명서IAM 역할을 사용하여 Amazon EC2 인스턴스에서 실행되는 애플리케이션에 권한 부여를 참조하세요.

정책을 사용한 액세스 관리

정책을 생성하고 AWS ID 또는 리소스에 연결하여 AWS에서 내 액세스를 제어합니다. 정책은 ID 또는 리소스와 연결될 때 해당 권한을 정의하는 AWS의 객체입니다. AWS는 보안 주체(사용자, 루트 사용자 또는 역할 세션)가 요청을 보낼 때 이러한 정책을 평가합니다. 정책에서 권한은 요청이 허용되거나 거부되는 지를 결정합니다. 대부분의 정책은 AWS에 JSON 문서로 저장됩니다. JSON 정책 문서의 구조와 콘텐츠에 대한 자세한 정보는 IAM 사용 설명서JSON 정책 개요를 참조하세요.

관리자는 AWSJSON 정책을 사용하여 누가 무엇에 액세스할 수 있는지를 지정할 수 있습니다. 즉, 어떤 보안 주체가 어떤 리소스와 어떤 조건에서 작업을 수행할 수 있는지를 지정할 수 있습니다.

기본적으로, 사용자와 역할에는 어떠한 권한도 없습니다. 사용자에게 사용자가 필요한 리소스에서 작업을 수행할 권한을 부여하려면 IAM 관리자가 IAM 정책을 생성하면 됩니다. 그런 다음 관리자가 IAM 정책을 역할에 추가하고, 사용자가 역할을 수임할 수 있습니다.

IAM 정책은 작업을 수행하기 위해 사용하는 방법과 상관없이 작업에 대한 권한을 정의합니다. 예를 들어, iam:GetRole 작업을 허용하는 정책이 있다고 가정합니다. 해당 정책이 있는 사용자는 AWS Management Console, AWS CLI또는 AWSAPI에서 역할 정보를 가져올 수 있습니다.

보안 인증 기반 정책

ID 기반 정책은 IAM 사용자, 사용자 그룹 또는 역할과 같은 ID에 연결할 수 있는 JSON 권한 정책 문서입니다. 이러한 정책은 사용자와 역할이 어떤 리소스와 어떤 조건에서 어떤 작업을 수행할 수 있는지를 제어합니다. 자격 증명 기반 정책을 만드는 방법을 알아보려면 IAM 사용 설명서고객 관리형 정책으로 사용자 지정 IAM 권한 정의를 참조하세요.

보안 인증 기반 정책은 인라인 정책 또는 관리형 정책으로 한층 더 분류할 수 있습니다. 인라인 정책은 단일 사용자, 그룹 또는 역할에 직접 포함됩니다. 관리형 정책은 AWS 계정에 속한 다수의 사용자, 그룹 및 역할에 독립적으로 추가할 수 있는 정책입니다. 관리형 정책에는 AWS관리형 정책과 고객 관리형 정책이 포함되어 있습니다. 관리형 정책 또는 인라인 정책을 선택하는 방법을 알아보려면 IAM 사용 설명서관리형 정책 및 인라인 정책 중에서 선택을 참조하세요.

리소스 기반 정책

리소스 기반 정책은 리소스에 연결하는 JSON 정책 설명서입니다. 리소스 기반 정책의 예시는 IAM 역할 신뢰 정책과 Amazon S3 버킷 정책입니다. 리소스 기반 정책을 지원하는 서비스에서 서비스 관리자는 이러한 정책을 사용하여 특정 리소스에 대한 액세스를 통제할 수 있습니다. 정책이 연결된 리소스의 경우 정책은 지정된 보안 주체가 해당 리소스와 어떤 조건에서 어떤 작업을 수행할 수 있는지를 정의합니다. 리소스 기반 정책에서 보안 주체를 지정해야 합니다. 보안 주체에는 계정, 사용자, 역할, 페더레이션 사용자 또는 AWS 서비스가 포함될 수 있습니다.

리소스 기반 정책은 해당 서비스에 있는 인라인 정책입니다. 리소스 기반 정책에서는 IAM의 AWS 관리형 정책을 사용할 수 없습니다.

액세스 제어 목록(ACL)

액세스 제어 목록(ACL)은 어떤 보안 주체(계정 멤버, 사용자 또는 역할)가 리소스에 액세스할 수 있는 권한을 가지고 있는지를 제어합니다. ACLs는 JSON 정책 문서 형식을 사용하지 않지만 리소스 기반 정책과 유사합니다.

Amazon S3, AWS WAF 및 Amazon VPC는 ACL을 지원하는 대표적인 서비스입니다. ACL에 관한 자세한 내용은 Amazon Simple Storage Service 개발자 가이드액세스 제어 목록(ACL) 개요를 참조하세요.

기타 정책 타입

AWS는 비교적 일반적이지 않은 추가 정책 유형을 지원합니다. 이러한 정책 타입은 더 일반적인 정책 유형에 따라 사용자에게 부여되는 최대 권한을 설정할 수 있습니다.

  • 권한 경계 – 권한 경계는 자격 증명 기반 정책에 따라 IAM 엔터티(IAM 사용자 또는 역할)에 부여할 수 있는 최대 권한을 설정하는 고급 기능입니다. 개체에 대한 권한 경계를 설정할 수 있습니다. 그 결과로 얻는 권한은 객체의 자격 증명 기반 정책과 그 권한 경계의 교집합입니다. Principal 필드에서 사용자나 역할을 지정하는 리소스 기반 정책은 권한 경계를 통해 제한되지 않습니다. 이러한 정책 중 하나에 포함된 명시적 거부는 허용을 재정의합니다. 권한 경계에 대한 자세한 정보는 IAM 사용 설명서IAM 엔터티에 대한 권한 경계를 참조하세요.

  • 서비스 제어 정책(SCP) – SCP는 AWS Organizations에서 조직 또는 조직 단위(OU)에 최대 권한을 지정하는 JSON 정책입니다. AWS Organizations는 기업이 소유하는 여러 개의 AWS 계정을 그룹화하고 중앙에서 관리하기 위한 서비스입니다. 조직에서 모든 기능을 활성화할 경우, 서비스 제어 정책(SCP)을 임의의 또는 모든 계정에 적용할 수 있습니다. SCP는 각 AWS 계정 루트 사용자을 비롯하여 멤버 계정의 엔터티에 대한 권한을 제한합니다. SCP에 대한 자세한 내용은 AWS Organizations 사용 설명서에서 서비스 제어 정책을 참조하세요.

  • 세션 정책 – 세션 정책은 역할 또는 페더레이션 사용자에 대해 임시 세션을 프로그래밍 방식으로 생성할 때 파라미터로 전달하는 고급 정책입니다. 결과적으로 얻는 세션의 권한은 사용자 또는 역할의 보안 인증 기반 정책의 교차와 세션 정책입니다. 또한 권한을 리소스 기반 정책에서 가져올 수도 있습니다. 이러한 정책 중 하나에 포함된 명시적 거부는 허용을 재정의합니다. 자세한 정보는 IAM 사용 설명서세션 정책을 참조하세요.

여러 정책 유형

여러 정책 유형이 요청에 적용되는 경우, 결과 권한은 이해하기가 더 복잡합니다. 여러 정책 유형이 관련될 때 AWS가 요청을 허용할지 여부를 결정하는 방법을 알아보려면 IAM 사용 설명서정책 평가 로직을 참조하세요.

AWS Cloud9에서 IAM을 사용하는 방식

IAM을 사용하여 AWS Cloud9에 대한 액세스를 관리하기 전에 AWS Cloud9와 함께 사용할 수 있는 IAM 기능을 알아보세요.

AWS Cloud9을 통해 사용할 수 있는 IAM 기능
IAM 특성 AWS Cloud9 지원

ID 기반 정책

리소스 기반 정책

아니요

정책 작업

정책 리소스

정책 조건 키(서비스별)

ACLs

아니요

ABAC(정책의 태그)

임시 보안 인증

전달 액세스 세션(FAS)

서비스 역할

서비스 연결 역할

AWS Cloud9 및 기타 AWS 서비스에서 대부분의 IAM 기능을 사용하는 방법을 전체적으로 알아보려면 IAM 사용 설명서IAM으로 작동하는 AWS 서비스를 참조하세요.

AWS Cloud9에 대한 ID 기반 정책

ID 기반 정책 지원:

ID 기반 정책은 IAM 사용자, 사용자 그룹 또는 역할과 같은 ID에 연결할 수 있는 JSON 권한 정책 문서입니다. 이러한 정책은 사용자와 역할이 어떤 리소스와 어떤 조건에서 어떤 작업을 수행할 수 있는지를 제어합니다. 자격 증명 기반 정책을 만드는 방법을 알아보려면 IAM 사용 설명서고객 관리형 정책으로 사용자 지정 IAM 권한 정의를 참조하세요.

IAM ID 기반 정책을 사용하면 허용되거나 거부되는 작업과 리소스뿐 아니라 작업이 허용되거나 거부되는 조건을 지정할 수 있습니다. 보안 인증 기반 정책에서는 보안 주체가 연결된 사용자 또는 역할에 적용되므로 보안 주체를 지정할 수 없습니다. JSON 정책에서 사용하는 모든 요소에 대해 알아보려면 IAM 사용 설명서IAM JSON 정책 요소 참조를 참조하세요.

AWS Cloud9 자격 증명 기반 정책 예시

AWS Cloud9 자격 증명 기반 정책의 예를 보려면 AWS Cloud9 자격 증명 기반 정책 예시을 참조하세요.

AWS Cloud9 내 리소스 기반 정책

리소스 기반 정책 지원: 아니요

리소스 기반 정책은 리소스에 연결하는 JSON 정책 설명서입니다. 리소스 기반 정책의 예시는 IAM 역할 신뢰 정책과 Amazon S3 버킷 정책입니다. 리소스 기반 정책을 지원하는 서비스에서 서비스 관리자는 이러한 정책을 사용하여 특정 리소스에 대한 액세스를 통제할 수 있습니다. 정책이 연결된 리소스의 경우 정책은 지정된 보안 주체가 해당 리소스와 어떤 조건에서 어떤 작업을 수행할 수 있는지를 정의합니다. 리소스 기반 정책에서 보안 주체를 지정해야 합니다. 보안 주체에는 계정, 사용자, 역할, 연동 사용자 또는 AWS 서비스가 포함될 수 있습니다.

교차 계정 액세스를 활성화하려는 경우, 전체 계정이나 다른 계정의 IAM 개체를 리소스 기반 정책의 보안 주체로 지정할 수 있습니다. 리소스 기반 정책에 크로스 계정 보안 주체를 추가하는 것은 트러스트 관계 설정의 절반밖에 되지 않는다는 것을 유념하십시오. 보안 주체와 리소스가 서로 다른 AWS 계정에 있는 경우, 신뢰할 수 있는 계정의 IAM 관리자는 보안 주체 엔터티(사용자 또는 역할)에도 리소스 액세스 권한을 부여해야 합니다. 엔터티에 ID 기반 정책을 연결하여 권한을 부여합니다. 하지만 리소스 기반 정책이 동일 계정의 보안 주체에 액세스를 부여하는 경우, 추가 자격 증명 기반 정책이 필요하지 않습니다. 자세한 내용은 IAM 사용 설명서크로스 계정 리소스 액세스를 참조하세요.

AWS Cloud9은 리소스 기반 정책을 지원하지 않지만, AWS Cloud9 API 및 AWS Cloud9 IDE를 통해 AWS Cloud9 환경 구성원의 AWS Cloud9 환경 리소스 권한을 제어할 수는 있습니다.

AWS Cloud9 정책 작업

정책 작업 지원:

관리자는 AWSJSON 정책을 사용하여 누가 무엇에 액세스할 수 있는지를 지정할 수 있습니다. 즉, 어떤 보안 주체가 어떤 리소스와 어떤 조건에서 작업을 수행할 수 있는지를 지정할 수 있습니다.

JSON 정책의 Action 요소는 정책에서 액세스를 허용하거나 거부하는 데 사용할 수 있는 작업을 설명합니다. 일반적으로 정책 작업의 이름은 연결된 AWSAPI 작업의 이름과 동일합니다. 일치하는 API 작업이 없는 권한 전용 작업 같은 몇 가지 예외도 있습니다. 정책에서 여러 작업이 필요한 몇 가지 작업도 있습니다. 이러한 추가 작업을 일컬어 종속 작업이라고 합니다.

연결된 작업을 수행할 수 있는 권한을 부여하기 위한 정책에 작업을 포함하십시오.

AWS Cloud9 작업 목록을 보려면 서비스 권한 부여 참조AWS Cloud9에서 정의한 작업을 참조하세요.

AWS Cloud9의 정책 작업은 작업 앞에 다음 접두사를 사용합니다.

account

단일 문에서 여러 작업을 지정하려면 다음과 같이 쉼표로 구분합니다.

"Action": [ "account:action1", "account:action2" ]

AWS Cloud9 자격 증명 기반 정책의 예를 보려면 AWS Cloud9 자격 증명 기반 정책 예시을 참조하세요.

AWS Cloud9 정책 리소스

정책 리소스 지원:

관리자는 AWSJSON 정책을 사용하여 누가 무엇에 액세스할 수 있는지를 지정할 수 있습니다. 즉, 어떤 보안 주체가 어떤 리소스와 어떤 조건에서 작업을 수행할 수 있는지를 지정할 수 있습니다.

Resource JSON 정책 요소는 작업이 적용되는 하나 이상의 개체를 지정합니다. 문장에는 Resource또는 NotResource요소가 반드시 추가되어야 합니다. 모범 사례에 따라 Amazon 리소스 이름(ARN)을 사용하여 리소스를 지정합니다. 리소스 수준 권한이라고 하는 특정 리소스 유형을 지원하는 작업에 대해 이 태스크를 수행할 수 있습니다.

작업 나열과 같이 리소스 수준 권한을 지원하지 않는 작업의 경우, 와일드카드(*)를 사용하여 해당 문이 모든 리소스에 적용됨을 나타냅니다.

"Resource": "*"

AWS Cloud9 리소스 유형 및 해당 ARN의 목록을 보려면 서비스 권한 부여 참조AWS Cloud9에서 정의한 리소스를 참조하세요. 각 리소스의 ARN을 지정할 수 있는 작업을 알아보려면 AWS Cloud9가 정의한 작업을 참조하세요.

AWS Cloud9 자격 증명 기반 정책의 예를 보려면 AWS Cloud9 자격 증명 기반 정책 예시을 참조하세요.

AWS Cloud9 정책 조건 키

서비스별 정책 조건 키 지원:

관리자는 AWSJSON 정책을 사용하여 누가 무엇에 액세스할 수 있는지를 지정할 수 있습니다. 즉, 어떤 보안 주체가 어떤 리소스와 어떤 조건에서 작업을 수행할 수 있는지를 지정할 수 있습니다.

Condition 요소(또는 Condition 블록)를 사용하면 정책이 발효되는 조건을 지정할 수 있습니다. Condition 요소는 옵션입니다. 같거나 작음과 같은 조건 연산자를 사용하여 정책의 조건을 요청의 값과 일치시키는 조건식을 생성할 수 있습니다.

한 문에서 여러 Condition 요소를 지정하거나 단일 Condition 요소에서 여러 키를 지정하는 경우, AWS는 논리적 AND 태스크를 사용하여 평가합니다. 단일 조건 키의 여러 값을 지정하는 경우, AWS는 논리적 OR 태스크를 사용하여 조건을 평가합니다. 명문의 권한을 부여하기 전에 모든 조건을 충족해야 합니다.

조건을 지정할 때 자리 표시자 변수를 사용할 수도 있습니다. 예컨대, IAM 사용자에게 IAM 사용자 이름으로 태그가 지정된 경우에만 리소스에 액세스할 수 있는 권한을 부여할 수 있습니다. 자세한 내용은 IAM 사용 설명서IAM 정책 요소: 변수 및 태그를 참조하세요.

AWS는 전역 조건 키와 서비스별 조건 키를 지원합니다. 모든 AWS 전역 조건 키를 보려면 IAM 사용 설명서AWS 전역 조건 컨텍스트 키를 참조하세요.

AWS Cloud9 조건 키 목록을 보려면 서비스 권한 부여 참조AWS Cloud9을 위한 조건 키를 참조하세요. 조건 키를 사용할 수 있는 작업과 리소스를 알아보려면 AWS Cloud9가 정의한 작업 섹션을 참조하세요.

AWS Cloud9 자격 증명 기반 정책의 예를 보려면 AWS Cloud9 자격 증명 기반 정책 예시을 참조하세요.

AWS Cloud9의 ACL

ACL 지원: 아니요

액세스 제어 목록(ACL)은 어떤 보안 주체(계정 멤버, 사용자 또는 역할)가 리소스에 액세스할 수 있는 권한을 가지고 있는지를 제어합니다. ACLs는 JSON 정책 문서 형식을 사용하지 않지만 리소스 기반 정책과 유사합니다.

AWS Cloud9를 사용한 ABAC

ABAC 지원(정책의 태그):

ABAC(속성 기반 액세스 제어)는 속성에 근거하여 권한을 정의하는 권한 부여 전략입니다. AWS에서는 이러한 속성을 태그라고 합니다. IAM 엔터티(사용자 또는 역할) 및 많은 AWS리소스에 태그를 연결할 수 있습니다. ABAC의 첫 번째 단계로 개체 및 리소스에 태그를 지정합니다. 그런 다음 보안 주체의 태그가 액세스하려는 리소스의 태그와 일치할 때 작업을 허용하도록 ABAC 정책을 설계합니다.

ABAC는 빠르게 성장하는 환경에서 유용하며 정책 관리가 번거로운 상황에 도움이 됩니다.

태그에 근거하여 액세스를 제어하려면 aws:ResourceTag/key-name, aws:RequestTag/key-name 또는 aws:TagKeys 조건 키를 사용하여 정책의 조건 요소에 태그 정보를 제공합니다.

서비스가 모든 리소스 유형에 대해 세 가지 조건 키를 모두 지원하는 경우, 값은 서비스에 대해 입니다. 서비스가 일부 리소스 유형에 대해서만 세 가지 조건 키를 모두 지원하는 경우, 값은 부분적입니다.

ABAC에 대한 자세한 내용은 IAM 사용 설명서ABAC 권한 부여를 통한 속성 기반 권한 정의를 참조하세요. ABAC 설정 단계가 포함된 자습서를 보려면 IAM 사용 설명서속성 기반 액세스 제어(ABAC) 사용을 참조하세요.

AWS Cloud9에서 임시 보안 인증 정보 사용

임시 자격 증명 지원:

일부 AWS 서비스는 임시 보안 인증을 사용하여 로그인할 때 작동하지 않습니다. 임시 보안 인증으로 작동하는 AWS 서비스를 비롯한 추가 정보는 IAM 사용 설명서IAM으로 작업하는 AWS 서비스를 참조하십시오.

사용자 이름과 암호를 제외한 다른 방법을 사용하여 AWS Management Console에 로그인하면 임시 보안 인증을 사용하는 것입니다. 예컨대, 회사의 Single Sign-On(SSO) 링크를 사용하여 AWS에 액세스하면 해당 프로세스에서 자동으로 임시 자격 증명을 생성합니다. 또한 콘솔에 사용자로 로그인한 다음 역할을 전환할 때 임시 보안 인증을 자동으로 생성합니다. 역할 전환에 대한 자세한 내용은 IAM 사용 설명서사용자에서 IAM 역할로 전환(콘솔)을 참조하세요.

AWS CLI 또는 AWS API를 사용하여 임시 보안 인증을 수동으로 만들 수 있습니다 그런 다음 이러한 임시 보안 인증을 사용하여 AWS에 액세스할 수 있습니다. AWS에서는 장기 액세스 키를 사용하는 대신 임시 보안 인증을 동적으로 생성할 것을 권장합니다. 자세한 정보는 IAM의 임시 보안 자격 증명 섹션을 참조하십시오.

AWS Cloud9에 대한 전달 액세스 세션

전달 액세스 세션(FAS) 지원:

IAM 사용자 또는 역할을 사용하여 AWS에서 작업을 수행하는 사람은 보안 주체로 간주됩니다. 일부 서비스를 사용하는 경우 다른 서비스에서 다른 작업을 시작하는 작업을 수행할 수 있습니다. FAS는 AWS 서비스를 직접 호출하는 보안 주체의 권한과 요청하는 AWS 서비스를 함께 사용하여 다운스트림 서비스에 대한 요청을 수행합니다. FAS 요청은 서비스에서 완료를 위해 다른 AWS 서비스 또는 리소스와의 상호 작용이 필요한 요청을 받은 경우에만 이루어집니다. 이 경우 두 작업을 모두 수행할 수 있는 권한이 있어야 합니다. FAS 요청 시 정책 세부 정보는 전달 액세스 세션을 참조하세요.

AWS Cloud9의 서비스 역할

서비스 역할 지원:

서비스 역할은 서비스가 사용자를 대신하여 작업을 수행하는 것으로 가정하는 IAM 역할입니다. IAM 관리자는 IAM 내에서 서비스 역할을 생성, 수정 및 삭제할 수 있습니다. 자세한 정보는 IAM 사용 설명서역할을 생성하여 AWS 서비스에게 권한 위임을 참조하세요.

주의

서비스 역할에 대한 권한을 변경하면 AWS Cloud9 기능이 중단될 수 있습니다. AWS Cloud9이 그 일을 하라는 지침을 제공하는 경우에만 서비스 역할을 편집합니다.

AWS Cloud9에 대한 서비스 연결 역할

서비스 링크 역할 지원:

서비스 연결 역할은 AWS 서비스에 연결된 서비스 역할의 한 유형입니다. 서비스는 사용자를 대신하여 작업을 수행하기 위해 역할을 수임할 수 있습니다. 서비스 링크 역할은 AWS 계정에 나타나고, 서비스가 소유합니다. IAM 관리자는 서비스 연결 역할의 권한을 볼 수 있지만 편집할 수는 없습니다.

서비스 연결 역할 생성 또는 관리에 대한 자세한 내용은 IAM으로 작업하는 AWS 서비스를 참조하십시오. 서비스 연결 역할 열에서 Yes(이)가 포함된 서비스를 테이블에서 찾습니다. 해당 서비스에 대한 서비스 연결 역할 설명서를 보려면 Yes(네) 링크를 선택합니다.

AWS Cloud9 자격 증명 기반 정책 예시

기본적으로 사용자 및 역할에는 AWS Cloud9 리소스를 생성하거나 수정할 수 있는 권한이 없습니다. 또한 AWS Management Console,(AWS Command Line InterfaceAWS CLI) 또는 AWS API를 사용해 태스크를 수행할 수 없습니다. 사용자에게 사용자가 필요한 리소스에서 작업을 수행할 권한을 부여하려면 IAM 관리자가 IAM 정책을 생성하면 됩니다. 그런 다음 관리자가 IAM 정책을 역할에 추가하고, 사용자가 역할을 수임할 수 있습니다.

이러한 예제 JSON 정책 문서를 사용하여 IAM ID 기반 정책을 생성하는 방법을 알아보려면 IAM 사용 설명서IAM 정책 생성(콘솔)을 참조하세요.

각 리소스 유형에 대한 ARN 형식을 포함하여 AWS Cloud9에서 정의한 작업 및 리소스 유형에 대한 자세한 내용은 서비스 권한 부여 참조에서 AWS Cloud9에 대한 작업, 리소스 및 조건 키를 참조하세요.

정책 모범 사례

자격 증명 기반 정책에 따라 계정에서 사용자가 AWS Cloud9 리소스를 생성, 액세스 또는 삭제할 수 있는지 여부가 결정됩니다. 이 작업으로 인해 AWS 계정에 비용이 발생할 수 있습니다. ID 기반 정책을 생성하거나 편집할 때는 다음 지침과 권장 사항을 따릅니다.

  • AWS 관리형 정책으로 시작하고 최소 권한을 향해 나아가기 - 사용자 및 워크로드에 권한 부여를 시작하려면 많은 일반 사용 사례에 대한 권한을 부여하는 AWS 관리형 정책을 사용합니다. AWS 계정에서 사용할 수 있습니다. 사용 사례에 고유한 AWS고객 관리형 정책을 정의하여 권한을 줄이는 것이 좋습니다. 자세한 정보는 IAM 사용 설명서AWS 관리형 정책 또는 AWS직무에 대한 관리형 정책을 참조하세요.

  • 최소 권한 적용 – IAM 정책을 사용하여 권한을 설정하는 경우 작업을 수행하는 데 필요한 권한만 부여합니다. 이렇게 하려면 최소 권한으로 알려진 특정 조건에서 특정 리소스에 대해 수행할 수 있는 작업을 정의합니다. IAM을 사용하여 권한을 적용하는 방법에 대한 자세한 정보는 IAM 사용 설명서에 있는 IAM의 정책 및 권한을 참조하세요.

  • IAM 정책의 조건을 사용하여 액세스 추가 제한 – 정책에 조건을 추가하여 작업 및 리소스에 대한 액세스를 제한할 수 있습니다. 예를 들어 SSL을 사용하여 모든 요청을 전송해야 한다고 지정하는 정책 조건을 작성할 수 있습니다. AWS CloudFormation와 같이, 특정 AWS 서비스를 통해 사용되는 경우에만 서비스 작업에 대한 액세스 권한을 부여할 수도 있습니다. 자세한 정보는 IAM 사용 설명서IAM JSON 정책 요소: 조건을 참조하세요.

  • IAM Access Analyzer를 통해 IAM 정책을 확인하여 안전하고 기능적인 권한 보장 - IAM Access Analyzer에서는 IAM 정책 언어(JSON)와 모범 사례가 정책에서 준수되도록 신규 및 기존 정책을 확인합니다. IAM Access Analyzer는 100개 이상의 정책 확인 항목과 실행 가능한 추천을 제공하여 안전하고 기능적인 정책을 작성하도록 돕습니다. 자세한 내용은 IAM 사용 설명서IAM Access Analyzer에서 정책 검증을 참조하세요.

  • 다중 인증(MFA) 필요 – AWS 계정 계정에 IAM 사용자 또는 루트 사용자가 필요한 시나리오가 있는 경우, 추가 보안을 위해 MFA를 설정합니다. API 작업을 직접적으로 호출할 때 MFA가 필요하면 정책에 MFA 조건을 추가합니다. 자세한 내용은 IAM 사용 설명서MFA를 통한 보안 API 액세스를 참조하세요.

IAM의 모범 사례에 대한 자세한 내용은 IAM 사용 설명서IAM의 보안 모범 사례를 참조하세요.

AWS Cloud9 콘솔 사용

AWS Cloud9 콘솔에 액세스하려면 최소 권한 세트가 있어야 합니다. 이러한 권한은 AWS 계정에서 AWS Cloud9 리소스에 대한 세부 정보를 나열하고 볼 수 있도록 허용해야 합니다. 최소 필수 권한보다 더 제한적인 자격 증명 기반 정책을 만들면 콘솔이 해당 정책에 연결된 엔터티(사용자 또는 역할)에 대해 의도대로 작동하지 않습니다.

AWS CLI 또는 AWS API만 직접적으로 호출하는 사용자에게 최소 콘솔 권한을 허용할 필요가 없습니다. 그 대신, 수행하려는 API 작업과 일치하는 작업에만 액세스할 수 있도록 합니다.

사용자와 역할이 AWS Cloud9 콘솔을 여전히 사용할 수 있도록 하려면 AWS Cloud9 ConsoleAccess 또는 ReadOnly AWS 관리형 정책을 엔터티에 연결합니다. 자세한 내용은 IAM 사용 설명서사용자에게 권한 추가를 참조하세요.

사용자가 자신의 고유한 권한을 볼 수 있도록 허용

이 예제는 IAM 사용자가 자신의 사용자 ID에 연결된 인라인 및 관리형 정책을 볼 수 있도록 허용하는 정책을 생성하는 방법을 보여줍니다. 이 정책에는 콘솔에서 또는 AWS CLI나 AWSAPI를 사용하여 프로그래밍 방식으로 이 태스크를 완료할 수 있는 권한이 포함됩니다.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ViewOwnUserInfo", "Effect": "Allow", "Action": [ "iam:GetUserPolicy", "iam:ListGroupsForUser", "iam:ListAttachedUserPolicies", "iam:ListUserPolicies", "iam:GetUser" ], "Resource": ["arn:aws:iam::*:user/${aws:username}"] }, { "Sid": "NavigateInConsole", "Effect": "Allow", "Action": [ "iam:GetGroupPolicy", "iam:GetPolicyVersion", "iam:GetPolicy", "iam:ListAttachedGroupPolicies", "iam:ListGroupPolicies", "iam:ListPolicyVersions", "iam:ListPolicies", "iam:ListUsers" ], "Resource": "*" } ] }

AWS Cloud9 보안 인증 및 액세스 문제 해결

다음 정보를 사용하여 AWS Cloud9 및 IAM에서 발생할 수 있는 공통적인 문제를 진단하고 수정할 수 있습니다.

AWS Cloud9에서 작업을 수행할 권한이 없음

작업을 수행할 권한이 없다는 오류가 수신되면, 작업을 수행할 수 있도록 정책을 업데이트해야 합니다.

다음 예제 오류는 mateojacksonIAM 사용자가 콘솔을 사용하여 가상 my-example-widget리소스에 대한 세부 정보를 보려고 하지만 가상 awes:GetWidget권한이 없을 때 발생합니다.

User: arn:aws:iam::123456789012:user/mateojackson is not authorized to perform: awes:GetWidget on resource: my-example-widget

이 경우 awes:GetWidget작업을 사용하여 my-example-widget리소스에 액세스할 수 있도록 mateojackson사용자 정책을 업데이트해야 합니다.

도움이 필요한 경우 AWS 관리자에게 문의하십시오. 관리자는 로그인 자격 증명을 제공한 사람입니다.

iam:PassRole을 수행하도록 인증되지 않음

iam:PassRole 작업을 수행할 수 있는 권한이 없다는 오류가 수신되면 AWS Cloud9에 역할을 전달할 수 있도록 정책을 업데이트해야 합니다.

일부 AWS 서비스에서는 새 서비스 역할 또는 서비스 연결 역할을 생성하는 대신, 해당 서비스에 기존 역할을 전달할 수 있습니다. 이렇게 하려면 사용자가 서비스에 역할을 전달할 수 있는 권한을 가지고 있어야 합니다.

다음 예 오류는 marymajor라는 IAM 사용자가 콘솔을 사용하여 AWS Cloud9에서 작업을 수행하려고 하는 경우에 발생합니다. 하지만 작업을 수행하려면 서비스 역할이 부여한 권한이 서비스에 있어야 합니다. Mary는 서비스에 역할을 전달할 수 있는 권한을 가지고 있지 않습니다.

User: arn:aws:iam::123456789012:user/marymajor is not authorized to perform: iam:PassRole

이 경우, Mary가 iam:PassRole 작업을 수행할 수 있도록 Mary의 정책을 업데이트해야 합니다.

도움이 필요한 경우 AWS 관리자에게 문의하십시오. 관리자는 로그인 보안 인증 정보를 제공하는 사람입니다.

내 AWS 계정 외부의 사람이 내 AWS Cloud9 리소스에 액세스할 수 있게 허용하기를 원합니다.

다른 계정의 사용자 또는 조직 외부의 사람이 리소스에 액세스할 때 사용할 수 있는 역할을 생성할 수 있습니다. 역할을 수임할 신뢰할 수 있는 사람을 지정할 수 있습니다. 리소스 기반 정책 또는 액세스 제어 목록(ACL)을 지원하는 서비스의 경우 이러한 정책을 사용하여 다른 사람에게 리소스에 대한 액세스 권한을 부여할 수 있습니다.

자세히 알아보려면 다음을 참조하세요.

AWS Cloud9의 IAM 리소스 및 운영 작동 방식

AWS Identity and Access Management은 AWS Cloud9 개발 환경과 기타 AWS 서비스 및 리소스를 모두 사용할 수 있는 사용 권한을 관리하는 데 사용됩니다.

AWS Cloud9 리소스 및 작업

AWS Cloud9에서 기본 리소스는 AWS Cloud9 개발 환경입니다. 정책에서 Amazon 리소스 이름(ARN)을 사용하여 정책이 적용되는 리소스를 식별합니다. 다음 표에는 환경 ARN이 나열되어 있습니다. 자세한 내용은 Amazon Web Services 일반 참조Amazon 리소스 이름(ARN) 및 AWS 서비스 네임스페이스를 참조하세요.

리소스 유형 ARN 형식

환경

arn:aws:cloud9:REGION_ID:ACCOUNT_ID:environment:ENVIRONMENT_ID

지정한 AWS 리전에서 지정한 계정이 소유한 모든 환경

arn:aws:cloud9:REGION_ID:ACCOUNT_ID:environment:*

지정한 리전 내에 지정된 계정이 소유한 모든 환경

arn:aws:cloud9:REGION_ID:ACCOUNT_ID:*

계정 및 리전과 상관없이 모든 AWS Cloud9 리소스

arn:aws:cloud9:*

예를 들어, 명령문에서 다음과 같이 Amazon 리소스 이름(ARN)을 사용하여 특정 환경을 나타낼 수 있습니다.

"Resource": "arn:aws:cloud9:us-east-2:123456789012:environment:70d899206236474f9590d93b7c41dfEX"

모든 리소스를 지정하려면 Resource 요소에 와일드카드 문자(*)를 사용합니다.

"Resource": "*"

단일 명령문에서 여러 리소스를 지정하려면 Amazon 리소스 이름(ARN)을 쉼표로 구분합니다.

"Resource": [ "arn:aws:cloud9:us-east-2:123456789012:environment:70d899206236474f9590d93b7c41dfEX", "arn:aws:cloud9:us-east-2:123456789012:environment:81e900317347585a0601e04c8d52eaEX" ]

AWS Cloud9는 AWS Cloud9 리소스를 처리하기 위한 일련의 작업을 제공합니다. 목록은 단원을 참조하세요AWS Cloud9 권한 참조

리소스 소유권 이해

AWS 계정 계정은 리소스를 누가 생성했든 상관없이 계정에서 생성된 리소스를 소유합니다.

다음 사용 사례 및 시나리오를 고려합니다.

  • AWS 계정의 루트 계정 보안 인증 정보를 사용하여 AWS Cloud9 개발 환경을 생성한다고 가정합니다. 이것은 가능하긴 하지만 권장되지는 않습니다. 이 경우, AWS 계정가 환경의 소유자입니다.

  • AWS 계정에서 IAM 사용자를 생성하고 해당 사용자에게 환경 생성 권한을 부여한다고 가정합니다. 그러면 사용자가 환경을 생성할 수 있습니다. 하지만 이 사용자가 속한 AWS 계정가 환경을 소유합니다.

  • 환경을 생성할 권한으로 AWS 계정에서 IAM 역할을 생성한다고 가정합니다. 그러면 이 역할을 수임할 수 있는 자는 누구나 환경을 생성할 수 있습니다. 이 역할이 속한 AWS 계정가 환경을 소유합니다.

참고

하나 이상의 AWS Cloud9 환경에 대한 ARN 소유자인 사용자 계정을 삭제하면 이러한 환경에는 소유자가 없습니다. 이 시나리오의 해결 방법은 AWS Cloud9 SDK를 사용하여 CreateEnvironmentMembership 작업 및 EnvironmentMember 데이터 유형을 사용하여 읽기 및 쓰기 권한이 있는 다른 IAM 사용자를 추가하는 것입니다. 이 IAM 사용자를 추가한 후에는 환경 파일을 새 AWS Cloud9 환경에 복사하고 이 소유자를 ARN 소유자로 만들 수 있습니다. 이 작업에 대한 자세한 내용은 CreateEnvironmentMembership을 참조하고, 이 데이터 유형에 대한 자세한 내용은 AWS Cloud9 API 참조 가이드의 EnvironmentMember를 참조하세요.

리소스 액세스 관리

권한 정책은 누가 어떤 리소스에 액세스 할 수 있는지를 나타냅니다.

참고

이 섹션에서는 AWS Cloud9에서 IAM을 사용하는 방법에 대해 설명하며, IAM 서비스에 대한 자세한 정보는 다루지 않습니다. IAM 설명서 전체 내용은 IAM 사용 설명서의 IAM이란 무엇입니까? 섹션을 참조하세요. IAM 정책 구문과 설명에 대한 자세한 내용은 IAM 사용 설명서IAM JSON 정책 참조를 참조하세요.

IAM 자격 증명에 연결된 정책을 자격 증명 기반 정책(또는 IAM 정책)이라고 합니다. 리소스에 연결된 정책을 리소스 기반 정책이라고 합니다. AWS Cloud9은 자격 증명 기반 정책과 리소스 기반 정책을 모두 지원합니다.

다음 각 API 작업을 수행하려면 이러한 API 작업을 호출하려는 IAM 자격 증명에 IAM 정책을 연결하면 됩니다.

  • CreateEnvironmentEC2

  • DescribeEnvironments

다음 API 작업을 수행하려면 리소스 기반 정책이 필요합니다. IAM 정책은 필요하지 않지만 이러한 API 작업을 호출하려는 IAM 자격 증명에 해당 정책이 연결된 경우 AWS Cloud9은 IAM 정책을 사용합니다. 원하는 AWS Cloud9 리소스에 리소스 기반 정책을 적용해야 합니다.

  • CreateEnvironmentMembership

  • DeleteEnvironment

  • DeleteEnvironmentMembership

  • DescribeEnvironmentMemberships

  • DescribeEnvironmentStatus

  • UpdateEnvironment

  • UpdateEnvironmentMembership

이러한 각 API 작업의 기능에 관한 자세한 정보는 AWS Cloud9 API 참조를 참조하세요.

리소스 기반 정책을 AWS Cloud9 리소스에 직접 연결할 수 없습니다. 그대신, 환경 멤버를 추가, 수정, 업데이트 또는 삭제하면 AWS Cloud9에서 적절한 리소스 기반 정책이 AWS Cloud9 리소스에 연결됩니다.

사용자에게 AWS Cloud9 리소스에 대한 작업을 수행할 권한을 부여하려면 사용자가 속한 IAM 그룹에 권한 정책을 연결합니다. 가능하다면 AWS Cloud9에 대한 AWS 관리형(미리 정의된) 정책을 연결하는 것이 좋습니다. 또한 AWS 관리형 정책에는 일반적인 사용 시나리오와 사용자 유형에 대해 미리 정의된 액세스 권한 세트가 포함되어 있습니다(예: 환경의 전체 관리, 환경 사용자, 환경에 대한 읽기 전용 액세스 권한만 있는 사용자). AWS에 대한 AWS Cloud9 관리형 정책의 목록은 AWS Cloud9의 AWS 관리형 정책 단원을 참조하세요.

세부적인 사용 시나리오와 고유의 사용자 유형이 필요한 경우 고유의 고객 관리형 정책을 생성하여 연결할 수 있습니다. AWS Cloud9에 대한 추가 설정 옵션AWS Cloud9에 대한 고객 관리형 정책 생성 단원을 참조하세요.

IAM 정책(AWS관리형 또는 고객 관리형)을 IAM 자격 증명에 연결하려면 IAM 사용 설명서에서 IAM 정책 연결(콘솔)을 참조하세요.

API 작업에 대한 세션 권한

AWS CLI 또는 AWS API를 사용하여 역할 또는 페더레이션 사용자에 대해 임시 세션을 프로그래밍 방식으로 생성하는 경우 역할 세션의 범위를 파라미터로 전달할 수 있습니다. 즉, 세션의 실질적인 권한은 사용자 또는 역할의 자격 증명 기반 정책의 교집합과 세션 정책입니다.

세션 중에 리소스에 액세스하라는 요청이 전달될 때 세션 정책에 적용 가능한 Deny 문이 없는데 적용 가능한 Allow 문도 없는 경우 정책 평가의 결과는 묵시적 거부입니다. (자세한 내용은 IAM 사용 설명서에서 계정 내에서 요청 허용 여부 결정을 참조하세요.)

하지만 리소스 기반 정책(위의 내용 참조)이 필요한 AWS Cloud9 API 작업의 경우, 리소스 정책에 Principal로 지정되어 있다면 호출 중인 IAM 엔터티에 권한이 부여됩니다. 이 명시적 사용 권한은 세션 정책의 묵시적 거부보다 우선하므로 세션이 AWS Cloud9 API 작업을 성공적으로 호출할 수 있습니다.

AWS Cloud9의 AWS 관리형 정책

AWS 관리형 정책은 AWS에서 생성되고 관리되는 독립 실행형 정책입니다. AWS 관리형 정책은 사용자, 그룹 및 역할에 권한 할당을 시작할 수 있도록 많은 일반 사용 사례에 대한 권한을 제공하도록 설계되었습니다.

AWS 관리형 정책은 모든 AWS 고객이 사용할 수 있기 때문에 특정 사용 사례에 대해 최소 권한을 부여하지 않을 수 있습니다. 사용 사례에 고유한 고객 관리형 정책을 정의하여 권한을 줄이는 것이 좋습니다.

AWS 관리형 정책에서 정의한 권한은 변경할 수 없습니다. 만약 AWS가 AWS 관리형 정책에 정의된 권한을 업데이트할 경우 정책이 연결되어 있는 모든 보안 주체 엔터티(사용자, 그룹 및 역할)에도 업데이트가 적용됩니다. 새로운 AWS 서비스를 시작하거나 새로운 API 작업을 기존 서비스에 이용하는 경우 AWS가 AWS 관리형 정책을 업데이트할 가능성이 높습니다.

자세한 내용은 IAM 사용 설명서AWS 관리형 정책을 참조하세요.

AWS 관리형 정책: AWSCloud9Administrator

AWSCloud9Administrator 정책을 IAM 보안 인증에 연결할 수 있습니다.

이 정책은 AWS Cloud9에 대한 관리자 액세스를 제공하는 관리 권한을 부여합니다.

권한 세부 정보

이 정책에는 다음 권한이 포함되어 있습니다.

  • AWS Cloud9 – AWS 계정에서 모든 AWS Cloud9 작업.

  • Amazon EC2 - AWS 계정의 여러 Amazon VPC 및 서브넷 리소스에 관한 정보를 가져옵니다.

  • IAM - AWS 계정의 IAM 사용자에 관한 정보를 가져오고 필요에 따라 AWS 계정에서 AWS Cloud9 서비스 연결 역할을 생성합니다.

  • Systems Manager - 사용자가 StartSession을 호출하여 세션 관리자 세션을 위해 인스턴스에 연결할 수 있습니다. 이 권한은 Systems Manager를 통해 EC2 인스턴스와 통신하는 환경을 여는 사용자에게 필요합니다. 자세한 내용은 AWS Systems Manager를 사용하여 수신하지 않는 EC2 인스턴스에 액세스 섹션을 참조하세요.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloud9:*", "iam:GetUser", "iam:ListUsers", "ec2:DescribeVpcs", "ec2:DescribeSubnets", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeRouteTables" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "iam:CreateServiceLinkedRole" ], "Resource": "*", "Condition": { "StringLike": { "iam:AWSServiceName": "cloud9.amazonaws.com" } } }, { "Effect": "Allow", "Action": [ "ssm:StartSession", "ssm:GetConnectionStatus" ], "Resource": "arn:aws:ec2:*:*:instance/*", "Condition": { "StringLike": { "ssm:resourceTag/aws:cloud9:environment": "*" }, "StringEquals": { "aws:CalledViaFirst": "cloud9.amazonaws.com" } } }, { "Effect": "Allow", "Action": [ "ssm:StartSession" ], "Resource": [ "arn:aws:ssm:*:*:document/*" ] } ] }

AWS 관리형 정책: AWSCloud9User

AWSCloud9User 정책을 IAM 보안 인증에 연결할 수 있습니다.

이 정책은 AWS Cloud9 개발 환경을 생성하고 소유한 환경을 관리할 사용자 권한을 부여합니다.

권한 세부 정보

이 정책에는 다음 권한이 포함되어 있습니다.

  • AWS Cloud9 – 환경에 대한 정보를 생성하고 가져오며, 환경에 대한 사용자 설정을 가져오고 변경합니다.

  • Amazon EC2 - AWS 계정의 여러 Amazon VPC 및 서브넷 리소스에 관한 정보를 가져옵니다.

  • IAM - AWS 계정의 IAM 사용자에 관한 정보를 가져오고 필요에 따라 AWS 계정에서 AWS Cloud9 서비스 연결 역할을 생성합니다.

  • Systems Manager - 사용자가 StartSession을 호출하여 세션 관리자 세션을 위해 인스턴스에 연결할 수 있습니다. 이 권한은 Systems Manager를 통해 EC2 인스턴스와 통신하는 환경을 여는 사용자에게 필요합니다. 자세한 내용은 AWS Systems Manager를 사용하여 수신하지 않는 EC2 인스턴스에 액세스 섹션을 참조하세요.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloud9:UpdateUserSettings", "cloud9:GetUserSettings", "iam:GetUser", "iam:ListUsers", "ec2:DescribeVpcs", "ec2:DescribeSubnets", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeRouteTables" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "cloud9:CreateEnvironmentEC2", "cloud9:CreateEnvironmentSSH" ], "Resource": "*", "Condition": { "Null": { "cloud9:OwnerArn": "true" } } }, { "Effect": "Allow", "Action": [ "cloud9:GetUserPublicKey" ], "Resource": "*", "Condition": { "Null": { "cloud9:UserArn": "true" } } }, { "Effect": "Allow", "Action": [ "cloud9:DescribeEnvironmentMemberships" ], "Resource": [ "*" ], "Condition": { "Null": { "cloud9:UserArn": "true", "cloud9:EnvironmentId": "true" } } }, { "Effect": "Allow", "Action": [ "iam:CreateServiceLinkedRole" ], "Resource": "*", "Condition": { "StringLike": { "iam:AWSServiceName": "cloud9.amazonaws.com" } } }, { "Effect": "Allow", "Action": [ "ssm:StartSession", "ssm:GetConnectionStatus" ], "Resource": "arn:aws:ec2:*:*:instance/*", "Condition": { "StringLike": { "ssm:resourceTag/aws:cloud9:environment": "*" }, "StringEquals": { "aws:CalledViaFirst": "cloud9.amazonaws.com" } } }, { "Effect": "Allow", "Action": [ "ssm:StartSession" ], "Resource": [ "arn:aws:ssm:*:*:document/*" ] } ] }

AWS 관리형 정책: AWSCloud9EnvironmentMember

AWSCloud9EnvironmentMember 정책을 IAM 보안 인증에 연결할 수 있습니다.

이 정책은 AWS Cloud9 공유 환경에 조인할 수 있도록 하는 멤버십 권한을 부여합니다.

권한 세부 정보

이 정책에는 다음 권한이 포함되어 있습니다.

  • AWS Cloud9 – 환경에 대한 정보를 가져오며, 환경에 대한 사용자 설정을 가져오고 변경합니다.

  • IAM - AWS 계정의 IAM 사용자에 관한 정보를 가져오고 필요에 따라 AWS 계정에서 AWS Cloud9 서비스 연결 역할을 생성합니다.

  • Systems Manager - 사용자가 StartSession을 호출하여 세션 관리자 세션을 위해 인스턴스에 연결할 수 있습니다. 이 권한은 Systems Manager를 통해 EC2 인스턴스와 통신하는 환경을 여는 사용자에게 필요합니다. 자세한 내용은 AWS Systems Manager를 사용하여 수신하지 않는 EC2 인스턴스에 액세스 섹션을 참조하세요.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloud9:GetUserSettings", "cloud9:UpdateUserSettings", "iam:GetUser", "iam:ListUsers" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "cloud9:DescribeEnvironmentMemberships" ], "Resource": [ "*" ], "Condition": { "Null": { "cloud9:UserArn": "true", "cloud9:EnvironmentId": "true" } } }, { "Effect": "Allow", "Action": [ "ssm:StartSession", "ssm:GetConnectionStatus" ], "Resource": "arn:aws:ec2:*:*:instance/*", "Condition": { "StringLike": { "ssm:resourceTag/aws:cloud9:environment": "*" }, "StringEquals": { "aws:CalledViaFirst": "cloud9.amazonaws.com" } } }, { "Effect": "Allow", "Action": [ "ssm:StartSession" ], "Resource": [ "arn:aws:ssm:*:*:document/*" ] } ] }

AWS 관리형 정책: AWSCloud9ServiceRolePolicy

서비스 연결 역할 AWSServiceRoleForAWSCloud9은 이 정책을 사용하여 AWS Cloud9 환경이 Amazon EC2 및 AWS CloudFormation 리소스와 상호 작용하도록 허용합니다.

권한 세부 정보

AWSCloud9ServiceRolePolicy는 AWS Cloud9가 개발 환경을 생성하고 실행하는 데 필요한 AWS 서비스(Amazon EC2 및 AWS CloudFormation)와 상호 작용할 수 있도록 하는 데 필요한 권한을 AWSServiceRoleForAWSCloud9에 부여합니다.

AWS Cloud9에서 서비스 연결 역할의 권한을 정의하므로 AWS Cloud9만 해당 역할을 수임할 수 있습니다. 정의된 권한에는 신뢰 정책과 권한 정책이 포함되며 이 권한 정책은 다른 IAM 엔터티에 연결할 수 없습니다.

AWS Cloud9에서 서비스 연결 역할을 사용하는 방법에 대한 자세한 내용은 AWS Cloud9에 서비스 연결 역할 사용 섹션을 참조하세요.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:RunInstances", "ec2:CreateSecurityGroup", "ec2:DescribeVpcs", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups", "ec2:DescribeInstances", "ec2:DescribeInstanceStatus", "cloudformation:CreateStack", "cloudformation:DescribeStacks", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResources" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ec2:TerminateInstances", "ec2:DeleteSecurityGroup", "ec2:AuthorizeSecurityGroupIngress" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "cloudformation:DeleteStack" ], "Resource": "arn:aws:cloudformation:*:*:stack/aws-cloud9-*" }, { "Effect": "Allow", "Action": [ "ec2:CreateTags" ], "Resource": [ "arn:aws:ec2:*:*:instance/*", "arn:aws:ec2:*:*:security-group/*" ], "Condition": { "StringLike": { "aws:RequestTag/Name": "aws-cloud9-*" } } }, { "Effect": "Allow", "Action": [ "ec2:StartInstances", "ec2:StopInstances" ], "Resource": "*", "Condition": { "StringLike": { "ec2:ResourceTag/aws:cloudformation:stack-name": "aws-cloud9-*" } } }, { "Effect": "Allow", "Action": [ "ec2:StartInstances", "ec2:StopInstances" ], "Resource": [ "arn:aws:license-manager:*:*:license-configuration:*" ] }, { "Effect": "Allow", "Action": [ "iam:ListInstanceProfiles", "iam:GetInstanceProfile" ], "Resource": [ "arn:aws:iam::*:instance-profile/cloud9/*" ] }, { "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": [ "arn:aws:iam::*:role/service-role/AWSCloud9SSMAccessRole" ], "Condition": { "StringLike": { "iam:PassedToService": "ec2.amazonaws.com" } } } ] }

AWS 관리형 정책으로 AWS Cloud9 업데이트

이 서비스가 이러한 변경 내용을 추적하기 시작한 이후부터 AWS Cloud9의 AWS 관리형 정책 업데이트에 관한 세부 정보를 봅니다. 이 페이지의 변경 사항에 대한 자동 알림을 받으려면 AWS Cloud9 문서 기록 페이지에서 RSS 피드를 구독합니다.

변경 사항 설명 날짜

AWSCloud9User, AWSCloud9AdministratorAWSCloud9EnvironmentMember 정책에 새로운 작업이 추가되었습니다.

AWSCloud9User, AWSCloud9AdministratorAWSCloud9EnvironmentMember 정책에 ssm:GetConnectionStatus 작업이 추가되었습니다. 이 작업을 수행하면 사용자에게 SSM 연결 상태를 확인할 수 있는 권한이 부여됩니다. cloud9:ValidateEnvironmentName API는 더 이상 사용되지 않으므로 AWSCloud9User 정책에서 제거되었습니다.

2023년 10월 12일

API가 AWSCloud9UserAWSCloud9Administrator 정책에 추가되었습니다.

두 개의 새로운 ec2:DescribeInstanceTypeOfferingsec2:DescribeRouteTables API가 AWSCloud9UserAWSCloud9Administrator 정책에 추가되었습니다. 이러한 API의 목적은 AWS Cloud9이 AWS Cloud9 환경을 생성할 때 고객이 선택한 인스턴스 유형을 기본 서브넷이 지원하는지 검증할 수 있도록 하는 것입니다.

2023년 8월 2일

AWSCloud9ServiceRolePolicy 업데이트

AWS Cloud9에서 License Manager 라이선스 구성으로 관리되는 Amazon EC2 인스턴스를 시작하고 중지할 수 있도록 AWSCloud9ServiceRolePolicy가 업데이트되었습니다.

2022년 1월 12일

AWS Cloud9에서 변경 사항 추적 시작

AWS Cloud9이 AWS 관리형 정책에 대한 변경 내용 추적을 시작했습니다.

2021년 3월 15일

AWS Cloud9에 대한 고객 관리형 정책 생성

액세스 제어 요구 사항을 충족하는 AWS 관리형 정책이 없는 경우 고유의 고객 관리형 정책을 생성하여 연결할 수 있습니다.

고객 관리형 정책을 생성하려면 IAM 사용 설명서에서 IAM 정책 생성(콘솔)을 참조하세요.

정책 요소 지정: 효과, 보안 주체, 작업 및 리소스

각 AWS Cloud9 리소스에 대해 서비스는 API 작업 세트를 정의합니다. 이러한 API 작업에 대한 권한을 부여하기 위해 AWS Cloud9에서는 정책에서 지정할 수 있는 작업을 정의합니다.

다음은 기본 정책 요소입니다.

  • Effect - 사용자가 작업을 요청하는 경우 효과(허용 또는 거부)를 지정합니다. 명시적으로 리소스에 대한 액세스 권한을 부여(허용)하지 않는 경우, 액세스는 묵시적으로 거부됩니다. 리소스에 대한 액세스를 명시적으로 거부할 수도 있습니다. 다른 정책에서 액세스 권한을 부여하더라도 사용자가 해당 리소스에 액세스할 수 없도록 하려고 할 때 이러한 작업을 수행할 수 있습니다.

  • Principal - 자격 증명 기반 정책(IAM 정책)에서 정책이 연결되는 사용자는 암시적인 보안 주체입니다. 리소스 기반 정책의 경우 사용자, 계정, 서비스 또는 권한의 수신자인 기타 엔터티를 지정합니다.

  • Resource – Amazon 리소스 이름(ARN)을 사용하여 정책을 적용할 리소스를 식별합니다.

  • Action - 작업 키워드를 사용하여 허용 또는 거부할 리소스 작업을 식별합니다. 예를 들어, cloud9:CreateEnvironmentEC2 권한은 사용자에게 CreateEnvironmentEC2 작업 수행 권한을 제공합니다.

IAM 정책 구문과 설명에 대한 자세한 내용은 IAM 사용 설명서에서 IAM JSON 정책 참조를 참조하세요.

모든 AWS Cloud9 API 작업과 해당 작업이 적용되는 리소스를 보여주는 표는 AWS Cloud9 권한 참조 단원을 참조하세요.

고객 관리형 정책 예

이 단원에서는 AWS Cloud9 작업에 대한 권한을 부여하는 정책의 예를 볼 수 있습니다. IAM 자격 증명에 대한 AWS Cloud9 액세스를 허용하거나 명시적으로 거부하도록 다음 IAM 정책 예를 조정할 수 있습니다.

고객 관리형 정책을 만들거나 IAM 자격 증명에 연결하려면 IAM 사용 설명서에서 IAM 정책 생성(콘솔)IAM 정책 연결(콘솔)을 참조하세요.

참고

다음 예에서는 미국 동부(오하이오) 리전(us-east-2), 가상의 AWS 계정 계정 ID(123456789012) 및 가상의 AWS Cloud9 개발 환경 ID(81e900317347585a0601e04c8d52eaEX)를 사용합니다.

환경에 대한 정보 가져오기

IAM 엔터티에 연결된 다음 예제 IAM 정책 문은 해당 엔터티가 계정의 환경에 대한 정보를 가져오도록 허용합니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "cloud9:DescribeEnvironments", "Resource": "*" } ] }
참고

위의 액세스 권한은 AWS 관리형 정책 AWSCloud9AdministratorAWSCloud9User에 이미 포함되어 있습니다.

EC2 환경 생성

IAM 엔터티에 연결된 다음 예제 IAM 정책 문은 해당 엔터티가 계정에서 AWS Cloud9 EC2 개발 환경을 생성하도록 허용합니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "cloud9:CreateEnvironmentEC2", "Resource": "*" } ] }
참고

위의 액세스 권한은 AWS 관리형 정책 AWSCloud9AdministratorAWSCloud9User에 이미 포함되어 있습니다.

특정 Amazon EC2 인스턴스 유형으로 EC2 환경 생성

IAM 엔터티에 연결된 다음 예제 IAM 정책 문은 해당 엔터티가 계정에서 AWS Cloud9 EC2 개발 환경을 생성하도록 허용합니다. 하지만 EC2 환경은 Amazon EC2 인스턴스 유형의 지정된 클래스만 사용할 수 있습니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "cloud9:CreateEnvironmentEC2", "Resource": "*", "Condition": { "StringLike": { "cloud9:InstanceType": "t3.*" } } } ] }
참고

AWS 관리형 정책 AWSCloud9Administrator 또는 AWSCloud9User가 IAM 엔터티에 이미 연결되어 있는 경우 해당 AWS 관리형 정책이 이전 IAM 정책 설명의 동작을 재정의합니다. 이러한 AWS 관리형 정책이 더 허용적이기 때문입니다.

특정 Amazon VPC 서브넷에서 EC2 환경 생성

IAM 엔터티에 연결된 다음 예제 IAM 정책 문은 해당 엔터티가 계정에서 AWS Cloud9 EC2 개발 환경을 생성하도록 허용합니다. 하지만 EC2 환경은 지정된 Amazon VPC 서브넷만 사용할 수 있습니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "cloud9:CreateEnvironmentEC2", "Resource": "*", "Condition": { "StringLike": { "cloud9:SubnetId": [ "subnet-12345678", "subnet-23456789" ] } } } ] }
참고

AWS 관리형 정책 AWSCloud9Administrator 또는 AWSCloud9User가 IAM 엔터티에 이미 연결되어 있는 경우 해당 AWS 관리형 정책이 이전 IAM 정책 설명의 동작을 재정의합니다. 이러한 AWS 관리형 정책이 더 허용적이기 때문입니다.

특정 환경 이름으로 EC2 환경 생성

IAM 엔터티에 연결된 다음 예제 IAM 정책 문은 해당 엔터티가 계정에서 AWS Cloud9 EC2 개발 환경을 생성하도록 허용합니다. 하지만 EC2 환경에는 지정된 이름만 사용할 수 있습니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "cloud9:CreateEnvironmentEC2", "Resource": "*", "Condition": { "StringEquals": { "cloud9:EnvironmentName": "my-demo-environment" } } } ] }
참고

AWS 관리형 정책 AWSCloud9Administrator 또는 AWSCloud9User가 IAM 엔터티에 이미 연결되어 있는 경우 해당 AWS 관리형 정책이 이전 IAM 정책 설명의 동작을 재정의합니다. 이러한 AWS 관리형 정책이 더 허용적이기 때문입니다.

SSH 환경만 생성

IAM 엔터티에 연결된 다음 예제 IAM 정책 문은 해당 엔터티가 계정에서 AWS Cloud9 SSH 개발 환경을 생성하도록 허용합니다. 그러나 이 엔터티는 AWS Cloud9 EC2 개발 환경을 생성할 수 없습니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "cloud9:CreateEnvironmentSSH", "Resource": "*" }, { "Effect": "Deny", "Action": "cloud9:CreateEnvironmentEC2", "Resource": "*" } ] }

환경 업데이트 또는 환경 업데이트 금지

IAM 엔터티에 연결된 다음 예제 IAM 정책 문은 해당 엔터티가 계정의 AWS Cloud9 개발 환경에 대한 정보를 변경하도록 허용합니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "cloud9:UpdateEnvironment", "Resource": "*" } ] }
참고

위의 액세스 권한은 AWS 관리형 정책 AWSCloud9Administrator에 이미 포함되어 있습니다.

IAM 엔터티에 연결된 다음 예제 IAM 정책 문은 해당 엔터티가 Amazon 리소스 이름(ARN)이 지정된 환경에 관한 정보를 변경하는 것을 명시적으로 금지합니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": "cloud9:UpdateEnvironment", "Resource": "arn:aws:cloud9:us-east-2:123456789012:environment:81e900317347585a0601e04c8d52eaEX" } ] }

환경 멤버 목록 가져오기

IAM 엔터티에 연결된 다음 예제 IAM 정책 문은 해당 엔터티가 계정의 환경에 대한 멤버의 목록을 가져오도록 허용합니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "cloud9:DescribeEnvironmentMemberships", "Resource": "*" } ] }
참고

위의 액세스 권한은 AWS 관리형 정책 AWSCloud9Administrator에 이미 포함되어 있습니다. 또한 위의 액세스 권한은 AWS 관리형 정책 AWSCloud9User의 동등한 액세스 권한보다 더 허용적입니다.

특정 사용자만 환경 공유

IAM 엔터티에 연결된 다음 예제 IAM 정책 문은 해당 엔터티가 계정의 환경을 지정된 사용자만 공유하도록 허용합니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloud9:CreateEnvironmentMembership" ], "Resource": "*", "Condition": { "StringEquals": { "cloud9:UserArn": "arn:aws:iam::123456789012:user/MyDemoUser" } } } ] }
참고

AWS 관리형 정책 AWSCloud9Administrator 또는 AWSCloud9User가 IAM 엔터티에 이미 연결되어 있는 경우 해당 AWS 관리형 정책이 이전 IAM 정책 설명의 동작을 재정의합니다. 이러한 AWS 관리형 정책이 더 허용적이기 때문입니다.

환경 공유 금지

IAM 엔터티에 연결된 다음 예제 IAM 정책 문은 해당 엔터티가 계정에서 환경을 공유하는 것을 금지합니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": [ "cloud9:CreateEnvironmentMembership", "cloud9:UpdateEnvironmentMembership" ], "Resource": "*" } ] }

환경 멤버의 설정 변경 또는 변경 금지

IAM 엔터티에 연결된 다음 예제 IAM 정책 문은 해당 엔터티가 계정의 환경에 있는 멤버의 설정을 변경하도록 허용합니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "cloud9:UpdateEnvironmentMembership", "Resource": "*" } ] }
참고

위의 액세스 권한은 AWS 관리형 정책 AWSCloud9Administrator에 이미 포함되어 있습니다.

IAM 엔터티에 연결된 다음 예제 IAM 정책 문은 해당 엔터티가 Amazon 리소스 이름(ARN)이 지정된 환경에 있는 멤버의 설정을 변경하는 것을 명시적으로 금지합니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": "cloud9:UpdateEnvironmentMembership", "Resource": "arn:aws:cloud9:us-east-2:123456789012:environment:81e900317347585a0601e04c8d52eaEX" } ] }

환경 멤버 제거 또는 제거 금지

IAM 엔터티에 연결된 다음 예제 IAM 정책 문은 해당 엔터티가 계정의 환경에서 멤버를 제거하도록 허용합니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "cloud9:DeleteEnvironmentMembership", "Resource": "*" } ] }
참고

위의 액세스 권한은 AWS 관리형 정책 AWSCloud9Administrator에 이미 포함되어 있습니다.

IAM 엔터티에 연결된 다음 예제 IAM 정책 문은 해당 엔터티가 Amazon 리소스 이름(ARN)이 지정된 환경에서 멤버를 제거하는 것을 명시적으로 금지합니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": "cloud9:DeleteEnvironmentMembership", "Resource": "arn:aws:cloud9:us-east-2:123456789012:environment:81e900317347585a0601e04c8d52eaEX" } ] }

환경 삭제 또는 삭제 금지

IAM 엔터티에 연결된 다음 예제 IAM 정책 문은 해당 엔터티가 계정에서 환경을 삭제하도록 허용합니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "cloud9:DeleteEnvironment", "Resource": "*" } ] }
참고

위의 액세스 권한은 AWS 관리형 정책 AWSCloud9Administrator에 이미 포함되어 있습니다.

IAM 엔터티에 연결된 다음 예제 IAM 정책 문은 해당 엔터티가 Amazon 리소스 이름(ARN)이 지정된 환경을 삭제하는 것을 명시적으로 금지합니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": "cloud9:DeleteEnvironment", "Resource": "arn:aws:cloud9:us-east-2:123456789012:environment:81e900317347585a0601e04c8d52eaEX" } ] }

SSM 환경 생성을 위한 사용자 지정 IAM 정책

현재 AWSCloud9Administrator 또는 AWSCloud9User 정책이 연결된 SSM 환경을 생성할 때 발생하는 권한 문제가 있습니다. 다음 예제 IAM 정책 설명을 IAM 엔터티에 연결하면 사용자가 AWS 관리형 정책 AWSCloud9Administrator 또는 AWSCloud9User를 연결하고 사용할 수 있습니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloud9:UpdateUserSettings", "cloud9:GetUserSettings", "iam:GetUser", "iam:ListUsers", "iam:ListRoles", "ec2:DescribeVpcs", "ec2:DescribeSubnets", "ec2:DescribeRouteTables" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "cloud9:CreateEnvironmentEC2", "cloud9:CreateEnvironmentSSH" ], "Resource": "*", "Condition": { "Null": { "cloud9:OwnerArn": "true" } } }, { "Effect": "Allow", "Action": [ "cloud9:GetUserPublicKey" ], "Resource": "*", "Condition": { "Null": { "cloud9:UserArn": "true" } } }, { "Effect": "Allow", "Action": [ "cloud9:DescribeEnvironmentMemberships" ], "Resource": [ "*" ], "Condition": { "Null": { "cloud9:UserArn": "true", "cloud9:EnvironmentId": "true" } } }, { "Effect": "Allow", "Action": [ "iam:CreateServiceLinkedRole" ], "Resource": "*", "Condition": { "StringLike": { "iam:AWSServiceName": "cloud9.amazonaws.com" } } }, { "Effect": "Allow", "Action": "ssm:StartSession", "Resource": "arn:aws:ec2:*:*:instance/*", "Condition": { "StringLike": { "ssm:resourceTag/aws:cloud9:environment": "*" }, "StringEquals": { "aws:CalledViaFirst": "cloud9.amazonaws.com" } } }, { "Effect": "Allow", "Action": [ "ssm:StartSession" ], "Resource": [ "arn:aws:ssm:*:*:document/*" ] }, { "Effect": "Allow", "Action": ["iam:ListInstanceProfilesForRole", "iam:CreateRole"], "Resource": ["arn:aws:iam::*:role/service-role/AWSCloud9SSMAccessRole"] }, { "Effect": "Allow", "Action": ["iam:AttachRolePolicy"], "Resource": ["arn:aws:iam::*:role/service-role/AWSCloud9SSMAccessRole"], "Condition": { "StringEquals": { "iam:PolicyARN": "arn:aws:iam::aws:policy/AWSCloud9SSMInstanceProfile" } } }, { "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::*:role/service-role/AWSCloud9SSMAccessRole", "Condition": { "StringEquals": { "iam:PassedToService": "ec2.amazonaws.com" } } }, { "Effect": "Allow", "Action": [ "iam:CreateInstanceProfile", "iam:AddRoleToInstanceProfile" ], "Resource": [ "arn:aws:iam::*:instance-profile/cloud9/AWSCloud9SSMInstanceProfile" ] } ] }

AWS Cloud9 권한 참조

AWS Cloud9 정책에서 AWS 전체 범위 조건 키를 사용하여 조건을 표시할 수 있습니다. 목록은 IAM 사용 설명서에서 IAM JSON 정책 요소: 조건을 참조하세요.

정책의 Action 필드에 작업을 지정합니다. 작업을 지정하려면 cloud9: 접두사 다음에 API 작업 명칭을 사용합니다(예: "Action": "cloud9:DescribeEnvironments"). 문장 하나에 여러 작업을 지정하려면 쉼표로 구분합니다(예: "Action": [ "cloud9:UpdateEnvironment", "cloud9:DeleteEnvironment" ]).

와일드카드 문자 사용

정책의 Resource 필드에 리소스 값으로 와일드카드 문자(*)를 사용하거나 사용하지 않고 ARN을 지정합니다. 와일드카드를 사용하여 여러 작업 또는 리소스를 지정할 수 있습니다. 예를 들어, cloud9:*는 모든 AWS Cloud9 작업을 지정하며 cloud9:Describe*Describe로 시작하는 모든 AWS Cloud9 작업을 지정합니다.

다음 예제는 IAM 엔터티가 계정에 있는 환경 및 환경 멤버십에 대한 정보를 가져오도록 허용합니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloud9:Describe*" ], "Resource": "*" } ] }
참고

위의 액세스 권한은 AWS 관리형 정책 AWSCloud9Administrator에 이미 포함되어 있습니다. 또한 위의 액세스 권한은 AWS 관리형 정책 AWSCloud9User의 동등한 액세스 권한보다 더 허용적입니다.

AWS Cloud9 API 작업 및 작업에 필요한 권한

참고

IAM 자격 증명에 연결할 권한 정책(자격 증명 기반 정책)을 작성하고 액세스 제어를 설정할 때 아래의 표를 참조로 사용할 수 있습니다.

Public API operations 표에는 SDK와 AWS Command Line Interface를 사용하는 고객이 호출할 수 있는 API 작업이 나열되어 있습니다.

Permission-only API operations에는 고객 코드 또는 AWS Command Line Interface에서 직접 호출 할 수 없는 API 작업을 나열되어 있습니다. 그러나 IAM 사용자는 콘솔을 사용하여 AWS Cloud9 작업을 수행하는 경우에 호출되는 이러한 작업에 대한 권한이 필요합니다.

퍼블릭 API 작업
AWS Cloud9 작업 필요한 권한(API 작업) Resource

CreateEnvironmentEC2

cloud9:CreateEnvironmentEC2

AWS Cloud9 EC2 개발 환경을 생성하는 데 필요합니다.

*

CreateEnvironmentMembership

cloud9:CreateEnvironmentMembership

환경에 멤버를 추가하는 데 필요합니다.

arn:aws:cloud9:REGION_ID:ACCOUNT_ID:environment:ENVIRONMENT_ID

DeleteEnvironment

cloud9:DeleteEnvironment

환경을 삭제하는 데 필요합니다.

arn:aws:cloud9:REGION_ID:ACCOUNT_ID:environment:ENVIRONMENT_ID

DeleteEnvironmentMembership

cloud9:DeleteEnvironmentMembership

환경에서 멤버를 제거하는 데 필요합니다.

arn:aws:cloud9:REGION_ID:ACCOUNT_ID:environment:ENVIRONMENT_ID

DescribeEnvironmentMemberships

cloud9:DescribeEnvironmentMemberships

환경에서 멤버 목록을 가져오는 데 필요합니다.

*

DescribeEnvironments

cloud9:DescribeEnvironments

환경에 대한 정보를 가져오는 데 필요합니다.

arn:aws:cloud9:REGION_ID:ACCOUNT_ID:environment:ENVIRONMENT_ID

DescribeEnvironmentStatus

cloud9:DescribeEnvironmentStatus

환경의 상태에 대한 정보를 가져오는 데 필요합니다.

arn:aws:cloud9:REGION_ID:ACCOUNT_ID:environment:ENVIRONMENT_ID

UpdateEnvironment

cloud9:UpdateEnvironment

환경에 대한 설정을 업데이트하는 데 필요합니다.

arn:aws:cloud9:REGION_ID:ACCOUNT_ID:environment:ENVIRONMENT_ID

UpdateEnvironmentMembership

cloud9:UpdateEnvironmentMembership

환경의 멤버에 대한 설정을 업데이트하는 데 필요합니다.

arn:aws:cloud9:REGION_ID:ACCOUNT_ID:environment:ENVIRONMENT_ID

권한 전용 API 작업
AWS Cloud9 작업 설명 콘솔 문서

ActivateEC2Remote

cloud9:ActivateEC2Remote

AWS Cloud9 IDE가 연결되는 Amazon EC2 인스턴스를 시작합니다.

AWS Cloud9에서 환경 열기

CreateEnvironmentSSH

cloud9:CreateEnvironmentSSH

AWS Cloud9 SSH 개발 환경을 생성합니다.

SSH 환경 생성

CreateEnvironmentToken

cloud9:CreateEnvironmentToken

AWS Cloud9 IDE 및 사용자 환경 사이의 연결을 허용하는 인증 토큰을 생성합니다.

EC2 환경 생성

DescribeEC2Remote

cloud9:DescribeEC2Remote

호스트, 사용자 및 포트를 포함하여 EC2 개발 환경 연결에 대한 세부 정보를 가져옵니다.

EC2 환경 생성

DescribeSSHRemote

cloud9:DescribeSSHRemote

호스트, 사용자 및 포트를 포함하여 SSH 개발 환경 연결에 대한 세부 정보를 가져옵니다.

SSH 환경 생성

GetEnvironmentConfig

cloud9:GetEnvironmentConfig

AWS Cloud9 IDE를 초기화하는 데 사용되는 구성 정보를 가져옵니다.

AWS Cloud9 IDE 작업

GetEnvironmentSettings

cloud9:GetEnvironmentSettings

지정된 개발 환경에 대한 AWS Cloud9 IDE 설정을 가져옵니다.

AWS Cloud9 IDE 작업

GetMembershipSettings

cloud9:GetMembershipSettings

지정된 환경 멤버에 대한 AWS Cloud9 IDE 설정을 가져옵니다.

AWS Cloud9의 공유 환경 작업

GetUserPublicKey

cloud9:GetUserPublicKey

SSH 개발 환경에 연결하기 위해 AWS Cloud9에서 사용되는 사용자의 퍼블릭 SSH 키를 가져옵니다.

SSH 환경 생성

GetUserSettings

cloud9:GetUserSettings

지정된 사용자에 대한 AWS Cloud9 IDE 설정을 가져옵니다.

AWS Cloud9 IDE 작업

ModifyTemporaryCredentialsOnEnvironmentEC2

cloud9:ModifyTemporaryCredentialsOnEnvironmentEC2

Amazon EC2 인스턴스에서 AWS Cloud9 통합 개발 환경(IDE)이 사용하는 AWS 관리형 임시 자격 증명을 설정합니다.

AWS 관리형 임시 자격 증명

UpdateEnvironmentSettings

cloud9:UpdateEnvironmentSettings

지정된 개발 환경에 대한 AWS Cloud9 IDE 설정을 업데이트합니다.

AWS Cloud9 IDE 작업

UpdateMembershipSettings

cloud9:UpdateMembershipSettings

지정된 환경 멤버에 대한 AWS Cloud9 IDE 설정을 업데이트합니다.

AWS Cloud9의 공유 환경 작업

UpdateSSHRemote

cloud9:UpdateSSHRemote

호스트, 사용자 및 포트를 포함하여 SSH 개발 환경 연결에 대한 세부 정보를 업데이트합니다.

SSH 환경 생성

UpdateUserSettings

cloud9:UpdateUserSettings

지정된 사용자에 대한 AWS Cloud9 IDE 설정을 업데이트합니다.

AWS Cloud9 IDE 작업

GetMigrationExperiences

cloud9:GetMigrationExperiences

AWS Cloud9 사용자에게 AWS Cloud9에서 CodeCatalyst로의 마이그레이션 경험을 얻을 수 있는 권한을 부여합니다.

AWS 관리형 임시 자격 증명

AWS 관리형 임시 자격 증명이 지원하는 작업 목록을 찾고 있다면 AWS 관리형 임시 자격 증명으로 지원되는 작업 섹션으로 건너뛰세요.

AWS Cloud9 EC2 개발 환의 경우 AWS Cloud9은 환경에서 사용할 수 있는 임시 AWS 액세스 자격 증명을 제공합니다. 이러한 자격 증명을 AWS 관리형 임시 자격 증명이라고 합니다. 이 기능에는 다음과 같은 이점이 있습니다.

  • AWS 엔터티(예: IAM 사용자)의 영구 AWS 액세스 자격 증명을 환경의 특정 위치에 저장할 필요가 없습니다. 따라서 사용자가 모르게 승인 없이 환경 멤버가 해당 자격 증명에 액세스할 수 없습니다.

  • 인스턴스 프로파일을 수동으로 설정하거나, 관리하거나, 환경에 연결되는 Amazon EC2 인스턴스에 연결할 필요가 없습니다. 인스턴스 프로파일은 임시 AWS 액세스 보안 인증 정보를 관리하기 위한 또 다른 접근 방식입니다.

  • AWS Cloud9은 임시 자격 증명을 지속적으로 갱신하므로, 단일 자격 증명 세트를 제한된 시간 동안에만 사용할 수 있습니다. 이것은 AWS 보안 모범 사례입니다. 자세한 내용은 AWS 관리형 임시 자격 증명 생성 및 업데이트 단원을 참조하십시오.

  • AWS Cloud9은 임시 자격 증명을 사용하여 환경에서 AWS 작업 및 리소스에 액세스할 수 있는 방식을 추가적으로 제한합니다. 이것도 AWS 보안 모범 사례입니다.

중요

현재 환경의 EC2 인스턴스가 프라이빗 서브넷에서 시작된 경우 AWS 관리형 임시 보안 인증 정보를 사용하여 EC2 환경이 AWS 엔터티(예: IAM 사용자)를 대신하여 AWS 서비스에 액세스하도록 허용할 수 없습니다.

프라이빗 서브넷에서 EC2 인스턴스를 시작할 수 있는 시나리오에 대한 자세한 내용은 AWS Cloud9용 서브넷 생성 섹션을 참조하세요.

참고

AWS 관리형 임시 보안 인증 정보를 사용하는 경우 인라인 정책 대신 AWS 관리형 정책을 사용하는 것이 좋습니다.

EC2 환경이 AWS 엔터티(예: IAM 사용자)를 대신하여 AWS 서비스에 액세스하려고 시도할 때마다 AWS 관리형 임시 보안 인증 정보가 작동하는 방식을 설명하면 다음과 같습니다.

  1. AWS Cloud9은 호출하는 AWS 엔터티(예: IAM 사용자)가 AWS에서 요청된 리소스에 대해 요청된 작업을 수행할 권한을 가지고 있는지 확인합니다. 권한이 없거나 명시적으로 거부되면 요청이 실패합니다.

  2. AWS Cloud9은 AWS 관리형 임시 자격 증명을 점검하여 해당 권한이 AWS에서 요청된 리소스에 대해 요청된 작업을 허용하는지 확인합니다. 권한이 없거나 명시적으로 거부되면 요청이 실패합니다. AWS 관리형 임시 자격 증명이 지원하는 권한의 목록은 AWS 관리형 임시 자격 증명으로 지원되는 작업 섹션을 참조하세요.

  • AWS 엔터티와 AWS 관리형 임시 자격 증명이 모두 요청된 리소스에 대해 요청된 작업을 허용하면 요청이 성공합니다.

  • AWS 엔터티 또는 AWS 관리형 임시 보안 인증 정보가 요청된 리소스에 대해 요청된 작업을 명시적으로 거부하거나 명시적으로 허용하지 못하면 요청이 실패합니다. 다시 말해서, 요청하는 AWS 엔터티가 올바른 권한을 가지고 있더라도 AWS Cloud9도 해당 작업을 명시적으로 허용하지 않으면 요청이 실패합니다. 마찬가지로, AWS Cloud9가 특정 리소스에 대해 특정 작업을 수행하도록 허용하는 경우 AWS 엔터티도 해당 작업을 명시적으로 허용하지 않으면 요청이 실패합니다.

EC2 환경의 소유자는 다음과 같이 언제든지 해당 환경에 대한 AWS 관리형 임시 자격 증명을 켜거나 끌 수 있습니다.

  1. 환경이 열린 상태에서 AWS Cloud9 IDE의 메뉴 모음에서 AWS Cloud9, Preferences(기본 설정)를 선택합니다.

  2. 기본 설정 탭의 탐색 창에서 AWS 설정, 자격 증명을 선택합니다.

  3. AWS 관리형 임시 자격 증명를 사용하여 AWS 관리형 임시 자격 증명을 켜거나 끕니다.

참고

AWS Cloud9 API 작업 UpdateEnvironment를 호출하고 managedCredentialsAction 파라미터에 값을 할당하여 AWS 관리형 임시 자격 증명을 켜거나 끌 수도 있습니다. AWS SDK 및 AWS CLI와 같은 표준 AWS 도구를 사용하여 이 API 작업을 요청할 수 있습니다.

AWS 관리형 임시 보안 인증 정보를 끄면 요청을 수행하는 AWS 엔터티와 상관없이 환경은 AWS 서비스에 액세스할 수 없습니다. 하지만 환경에 대한 AWS 관리형 임시 보안 인증 정보를 켤 수 없거나 켜지 않으려는 상황에서 AWS 서비스에 액세스할 환경이 필요한 경우를 가정해 보겠습니다. 다음과 같은 대안을 고려하세요.

위의 대안은 EC2 환경에서 AWS 관리형 임시 자격 증명이 허용(또는 거부)하는 모든 권한을 재정의합니다.

AWS 관리형 임시 자격 증명으로 지원되는 작업

AWS Cloud9 EC2 개발 환경의 경우 AWS 관리형 임시 보안 인증 정보는 다음과 같이 제한하면서 호출자의 AWS 계정에서 모든 AWS 리소스에 대한 모든 AWS 작업을 허용합니다.

  • AWS Cloud9의 경우 다음 작업만 허용됩니다.

    • cloud9:CreateEnvironmentEC2

    • cloud9:CreateEnvironmentSSH

    • cloud9:DescribeEnvironmentMemberships

    • cloud9:DescribeEnvironments

    • cloud9:DescribeEnvironmentStatus

    • cloud9:UpdateEnvironment

  • IAM의 경우 다음 작업만 허용됩니다.

    • iam:AttachRolePolicy

    • iam:ChangePassword

    • iam:CreatePolicy

    • iam:CreatePolicyVersion

    • iam:CreateRole

    • iam:CreateServiceLinkedRole

    • iam:DeletePolicy

    • iam:DeletePolicyVersion

    • iam:DeleteRole

    • iam:DeleteRolePolicy

    • iam:DeleteSSHPublicKey

    • iam:DetachRolePolicy

    • iam:GetInstanceProfile

    • iam:GetPolicy

    • iam:GetPolicyVersion

    • iam:GetRole

    • iam:GetRolePolicy

    • iam:GetSSHPublicKey

    • iam:GetUser

    • iam:List*

    • iam:PassRole

    • iam:PutRolePolicy

    • iam:SetDefaultPolicyVersion

    • iam:UpdateAssumeRolePolicy

    • iam:UpdateRoleDescription

    • iam:UpdateSSHPublicKey

    • iam:UploadSSHPublicKey

  • 역할과 상호 작용하는 모든 IAM 작업은 Cloud9-으로 시작하는 역할 이름에만 허용됩니다. 하지만 iam:PassRole은 모든 역할 이름에 작동합니다.

  • AWS Security Token Service(AWS STS)의 경우 다음 작업만 허용됩니다.

    • sts:GetCallerIdentity

    • sts:DecodeAuthorizationMessage

  • 지원되는 모든 AWS 작업은 환경의 IP 주소로 제한됩니다. 이것은 AWS 보안 모범 사례입니다.

AWS Cloud9이 EC2 환경에서 액세스해야 하는 작업 또는 리소스를 지원하지 않거나 AWS 관리형 임시 자격 증명이 EC2 환경에 대해 꺼져 있고 다시 켤 수 없는 경우 다음 대안을 고려하세요.

위의 대안은 EC2 환경에서 AWS 관리형 임시 자격 증명이 허용(또는 거부)하는 모든 권한을 재정의합니다.

AWS 관리형 임시 자격 증명 생성 및 업데이트

AWS Cloud9 EC2 개발 환경의 경우 환경을 처음 열 때 AWS 관리형 임시 자격 증명이 생성됩니다.

다음 조건에서는 AWS 관리형 임시 자격 증명이 업데이트됩니다.

  • 특정 기간이 경과할 때마다. 현재, 이 값은 5분입니다.

  • 환경에 대한 IDE가 표시된 웹 브라우저 탭을 다시 로드할 때마다.

  • 환경에 대한 ~/.aws/credentials 파일에 나열된 타임스탬프에 도달할 때.

  • AWS managed temporary credentials(관리형 임시 자격 증명) 설정이 꺼져 있는 경우 다시 켤 때마다. (이 설정을 보거나 변경하려면 IDE의 메뉴 모음에서 AWS Cloud9, Preferences(기본 설정)을 선택합니다. 탐색 창의 Preferences(기본 설정) 탭에서 AWS Settings, Credentials(설정, 자격 증명)을 선택합니다.)

  • 보안을 위해, AWS 관리형 임시 자격 증명이 15분 후에 자동으로 만료됩니다. 자격 증명을 새로 고치려면 환경 소유자가 IDE를 통해 AWS Cloud9 환경에 연결해야 합니다. 환경 소유자의 역할에 대한 자세한 내용은 AWS 관리형 임시 자격 증명에 대한 액세스 제어 섹션을 참조하세요.

AWS 관리형 임시 자격 증명에 대한 액세스 제어

AWS 관리형 임시 보안 인증 정보가 있는 공동 작업자는 AWS Cloud9를 사용하여 다른 AWS 서비스와 상호 작용할 수 있습니다. 신뢰할 수 있는 공동 작업자만 AWS 관리형 임시 자격 증명을 사용하도록 하기 위해, 환경 소유자가 아닌 다른 사람이 새 멤버를 추가한 경우 이러한 자격 증명을 사용할 수 없습니다. 자격 증명은 ~/.aws/credentials 파일을 삭제하면 사용 중지됩니다.

중요

또한 AWS 관리형 임시 자격 증명은 15분마다 자동으로 만료됩니다. 공동 작업자가 자격 증명을 계속 사용할 수 있도록 자격 증명을 새로 고치려면 환경 소유자가 IDE를 통해 AWS Cloud9 환경에 연결해야 합니다.

환경 소유자만 AWS 관리형 임시 자격 증명을 다시 사용하도록 설정하여 다른 멤버와 공유할 수 있습니다. 환경 소유자가 IDE를 열면 AWS 관리형 임시 자격 증명을 사용할 수 없음을 확인하는 대화 상자가 표시됩니다. 환경 소유자는 모든 멤버에 대해 자격 증명을 다시 사용하도록 설정하거나 모든 멤버에 대해 자격 증명을 사용 중지할 수 있습니다.

주의

보안 모범 사례를 준수하려면 환경에 마지막으로 추가된 사용자의 ID가 확실하지 않은 경우 관리형 임시 자격 증명을 사용하지 않도록 설정합니다. 읽기/쓰기 권한이 있는 멤버 목록은 [협업(Collaborate)] 창에서 확인할 수 있습니다.