Skip to main content

AWS ID 및 액세스 관리

Achieve Silent Security with IBM Identity and Access Management (유월 2025)

Achieve Silent Security with IBM Identity and Access Management (유월 2025)
Anonim

2011 년에 Amazon은 CloudFront에 대한 AWS Identity & Access Management (IAM) 지원을 사용할 수 있다고 발표했습니다. IAM은 2010 년에 시작되었으며 S3 지원을 포함합니다. AWS ID 및 액세스 관리 (IAM)를 사용하면 AWS 계정에서 여러 사용자를 보유 할 수 있습니다. Amazon Web Services (AWS)를 사용했다면 AWS의 컨텐츠를 관리하는 유일한 방법은 사용자 이름과 암호 또는 액세스 키를 제공하는 것입니다. 이것은 우리 대부분에게 실질적인 보안 문제입니다. IAM은 암호와 액세스 키를 공유 할 필요가 없습니다.

직원이 우리 팀을 떠날 때 주 AWS 암호를 지속적으로 변경하거나 새 키를 생성하는 것은 지저분한 해결책 일뿐입니다. AWS ID 및 액세스 관리 (IAM)는 개별 키가있는 개별 사용자 계정을 허용하는 좋은 시작이었습니다. 그러나 우리는 S3 / CloudFront 사용자이므로 CloudFront가 IAM에 추가되어 마지막으로 발생했는지를 감시했습니다.

이 서비스에 대한 설명서가 약간 흩어져있는 것으로 나타났습니다. ID 및 액세스 관리 (IAM)에 대한 지원 범위를 제공하는 타사 제품이 몇 가지 있습니다. 그러나 개발자는 일반적으로 절약형이므로 Amazon S3 서비스로 IAM을 관리하는 무료 솔루션을 모색했습니다.

이 기사에서는 IAM을 지원하는 명령 줄 인터페이스를 설정하고 S3 액세스로 그룹 / 사용자를 설정하는 과정을 설명합니다. ID 및 액세스 관리 (IAM) 구성을 시작하기 전에 Amazon AWS S3 계정 설정이 필요합니다. 필자의 기사 인 Amazon Simple Storage Service (S3)를 사용하면 AWS S3 계정을 설정하는 과정을 단계별로 안내 할 것입니다.

다음은 IAM에서 사용자를 설정하고 구현하는 단계입니다. 이것은 Windows 용이지만 Linux, UNIX 및 / 또는 Mac OSX에서 사용하기 위해 조정할 수 있습니다.

  1. 명령 줄 인터페이스 (CLI) 설치 및 구성
  2. 그룹 만들기
  3. S3 Bucket 및 CloudFront에 그룹 액세스 권한 부여
  4. 사용자 생성 및 그룹에 추가
  5. 로그인 프로파일 작성 및 키 작성
  6. 액세스 테스트

명령 줄 인터페이스 (CLI) 설치 및 구성

IAM Command Line Toolkit은 Amazon의 AWS Developers Tools에서 사용할 수있는 Java 프로그램입니다. 이 도구를 사용하여 쉘 유틸리티 (Windows 용 DOS)에서 IAM API 명령을 실행할 수 있습니다.

  • Java 1.6 이상을 실행해야합니다. Java.com에서 최신 버전을 다운로드 할 수 있습니다. Windows 시스템에 설치된 버전을 확인하려면 명령 프롬프트를 열고 java -version을 입력하십시오. 이것은 java.exe가 PATH에 있다고 가정합니다.
  • IAM CLI 툴킷을 다운로드하고 로컬 드라이브의 어딘가에 압축을 풉니 다.
  • CLI 툴킷 루트에 업데이트해야하는 파일이 2 개 있습니다.
    • aws-credential.template : 이 파일에는 AWS 자격 증명이 들어 있습니다. AWSAccessKeyId와 AWSSecretKey를 추가하고 파일을 저장하고 닫습니다.
    • client-config.template: 프록시 서버가 필요한 경우에만이 파일을 업데이트해야합니다. # 기호를 제거하고 ClientProxyHost, ClientProxyPort, ClientProxyUsername 및 ClientProxyPassword를 업데이트하십시오. 파일을 저장하고 닫습니다.
  • 다음 단계는 환경 변수를 추가하는 것입니다. 제어판으로 이동 | 시스템 속성 | 고급 시스템 설정 | 환경 변수. 다음 변수를 추가하십시오.
    • AWS_IAM_HOME:이 변수를 CLI 툴킷을 압축 해제 한 디렉토리로 설정하십시오. Windows를 실행하고 C 드라이브의 루트에서 압축을 풀면 변수는 C : IAMCli-1.2.0이됩니다.
    • JAVA_HOME:이 변수를 Java가 설치된 디렉토리로 설정하십시오. 이것은 java.exe 파일의 위치입니다. 일반적인 Windows 7 Java 설치에서는 C : Program Files (x86) Java jre6과 유사합니다.
    • AWS_CREDENTIAL_FILE:이 변수를 위에서 업데이트 한 aws-credential.template의 경로 및 파일 이름으로 설정하십시오. Windows를 실행하고 C 드라이브의 루트에서 압축을 풀면 변수는 C : IAMCli-1.2.0 aws-credential.template가됩니다.
    • CLIENT_CONFIG_FILE: 프록시 서버가 필요한 경우에만이 환경 변수를 추가해야합니다. Windows를 실행하고 C 드라이브의 루트에서 압축을 풀면 변수는 C : IAMCli-1.2.0 client-config.template입니다. 필요하지 않으면이 변수를 추가하지 마십시오.
  • 명령 프롬프트로 이동하여 iam-userlistbypath를 입력하여 설치를 테스트하십시오. 오류가 발생하지 않는 한 가야합니다.

모든 IAM 명령은 명령 프롬프트에서 실행할 수 있습니다. 모든 명령은 "iam-"로 시작합니다.

그룹 만들기

각 AWS 계정에 대해 만들 수있는 그룹은 최대 100 개입니다. 사용자 수준에서 IAM의 사용 권한을 설정할 수는 있지만 그룹을 사용하는 것이 가장 좋습니다. 다음은 IAM에 그룹을 만드는 과정입니다.

  • 그룹 작성 구문은 iam-groupcreate -g GROUPNAME -p PATH -v 여기서 -p 및 -v는 옵션입니다. 명령 행 인터페이스에 대한 전체 설명서는 AWS 문서에서 사용할 수 있습니다.
  • "awesomeusers"라는 그룹을 만들려면 명령 프롬프트에서 iam-groupcreate -g awesomeusers를 입력합니다.
  • 명령 프롬프트에서 iam-grouplistbypath를 입력하여 그룹이 올바르게 작성되었는지 확인할 수 있습니다. 이 그룹을 만든 경우에만 "arn : aws : iam :: 123456789012 : group / awesomeusers"와 같은 결과가 표시됩니다. 여기서 번호는 AWS 계정 번호입니다.

S3 Bucket 및 CloudFront에 그룹 액세스 권한 부여

정책은 S3 또는 CloudFront에서 그룹이 수행 할 수있는 작업을 제어합니다. 기본적으로 그룹은 AWS의 모든 항목에 액세스 할 수 없습니다.나는 정책에 대한 문서가 괜찮은 것으로 판명되었지만, 소수의 정책을 만들면서 나는 그들이 일하기를 원하는 방식대로 일하도록 시행 착오를했다.

정책을 작성하기위한 몇 가지 옵션이 있습니다. 한 가지 옵션은 명령 프롬프트에 직접 입력 할 수 있다는 것입니다. 정책을 작성하고 조정할 수도 있기 때문에 텍스트 파일에 정책을 추가 한 다음 iam-groupuploadpolicy 명령을 사용하여 텍스트 파일을 매개 변수로 업로드하는 것이 더 쉬워 보였습니다. 다음은 텍스트 파일을 사용하고 IAM에 업로드하는 프로세스입니다.

  • 메모장과 같은 것을 사용하고 다음 텍스트를 입력하고 파일을 저장하십시오.
    • {
    • "성명서":{
    • "효과": "허용",
    • "액션": "s3 : *",
    • "의지":
    • "arn : aws : s3 ::: BUCKETNAME",
    • "arn : aws : s3 ::: BUCKETNAME / *"
    • },
    • {
    • "효과": "허용",
    • "액션": "s3 : ListAllMyBuckets",
    • "리소스": "arn : aws : s3 ::: *"
    • },
    • {
    • "효과": "허용",
    • "액션": "cloudfront : *",
    • "의지":"*"
    • }
    • }
  • 이 정책에는 세 가지 섹션이 있습니다. 이 효과는 일부 유형의 액세스를 허용하거나 거부하는 데 사용됩니다. 행동은 그룹이 할 수있는 구체적인 일입니다. 리소스는 개별 버킷에 액세스하는 데 사용됩니다.
  • 개별적으로 작업을 제한 할 수 있습니다. 이 예제에서는 "Action": "s3 : GetObject", "s3 : ListBucket", "s3 : GetObjectVersion" 그룹은 버킷의 내용을 나열하고 객체를 다운로드 할 수 있습니다.
  • 첫 번째 섹션에서는 그룹이 "버킷 이름"버킷에 대해 모든 S3 작업을 수행 할 수 있도록 "허용"합니다.
  • 두 번째 섹션에서는 그룹에서 S3의 모든 버킷 목록을 "허용"합니다. AWS Console과 같은 것을 사용하면 버킷 목록을 실제로 볼 수 있습니다.
  • 세 번째 섹션에서는 그룹에게 CloudFront에 대한 전체 액세스 권한을 부여합니다.

IAM 정책에는 많은 옵션이 있습니다. Amazon에는 AWS Policy Generator라는 유용한 도구가 있습니다. 이 도구는 정책을 작성하고 정책을 구현하는 데 필요한 실제 코드를 생성 할 수있는 GUI를 제공합니다. AWS ID 및 액세스 관리 사용 온라인 설명서의 액세스 정책 언어 섹션을 확인할 수도 있습니다.

사용자 생성 및 그룹에 추가

새로운 사용자를 생성하고 액세스 권한을 제공하기 위해 그룹에 추가하는 과정은 두 단계로 이루어집니다.

  • 사용자 생성 구문은 다음과 같습니다. iam-usercreate -u USERNAME -p PATH -g GROUPS … -k -v 여기서 -p, -g, -k 및 -v는 옵션입니다. 명령 행 인터페이스에 대한 전체 설명서는 AWS 문서에서 사용할 수 있습니다.
  • 사용자 "bob"을 생성하려면 명령 프롬프트에서 iam-usercreate -u bob -g awesomeusers를 입력합니다.
  • 명령 프롬프트에서 iam-grouplistusers -g awesomeusers를 입력하여 사용자가 올바르게 작성되었는지 확인할 수 있습니다. 이 사용자 만 생성 한 경우 "arn : aws : iam :: 123456789012 : user / bob"과 같은 출력이 표시됩니다. 여기서 번호는 AWS 계정 번호입니다.

로그온 프로필 만들기 및 키 만들기

이 시점에서 사용자를 만들었지 만 실제로 S3에 객체를 추가하거나 제거하는 방법을 사용자에게 제공해야합니다. IAM을 사용하여 S3에 대한 액세스 권한을 사용자에게 제공하는 데 사용할 수있는 두 가지 옵션이 있습니다. 로그인 프로파일을 작성하고 사용자에게 암호를 제공 할 수 있습니다. 그들은 자격 증명을 사용하여 Amazon AWS Console에 로그인 할 수 있습니다. 다른 옵션은 사용자에게 액세스 키와 비밀 키를 제공하는 것입니다. S3 Fox, CloudBerry S3 Explorer 또는 S3 Browser와 같은 타사 도구에서이 키를 사용할 수 있습니다.

로그인 프로파일 생성

S3 사용자를위한 로그인 프로파일을 작성하면 Amazon AWS Console에 로그인 할 때 사용할 수있는 사용자 이름과 암호를 제공합니다.

  • 로그인 프로파일 작성 구문은 iam-useraddloginprofile -u USERNAME -p PASSWORD입니다. 명령 행 인터페이스에 대한 전체 설명서는 AWS 문서에서 사용할 수 있습니다.
  • 사용자 "bob"에 대한 로그인 프로필을 만들려면 명령 프롬프트에서 iam-useraddloginprofile -u bob -p PASSWORD를 입력합니다.
  • 명령 프롬프트에서 iam-usergetloginprofile -u bob을 입력하여 로그인 프로파일이 올바르게 작성되었는지 확인할 수 있습니다. bob에 대한 로그인 프로파일을 작성했다면, "사용자 프로파일에 대해 로그인 프로파일이 존재합니다"와 같은 출력이 생성됩니다.

키 만들기

AWS Secret Access Key와 해당 AWS Access Key ID를 생성하면 이전에 언급 한 것과 같은 타사 소프트웨어를 사용할 수 있습니다. 보안 조치로서 사용자 프로파일 추가 프로세스 중에 만이 키를 얻을 수 있음을 명심하십시오. 명령 프롬프트에서 출력을 복사하여 붙여 넣은 다음 텍스트 파일에 저장하십시오. 파일을 사용자에게 보낼 수 있습니다.

  • 사용자에 대한 키 추가 구문은 iam-useraddkey -u USERNAME입니다. 명령 행 인터페이스에 대한 전체 설명서는 AWS 문서에서 사용할 수 있습니다.
  • 사용자 "bob"에 대한 키를 만들려면 명령 프롬프트에 iam-useraddkey -u bob을 입력합니다.
  • 이 명령은 다음과 같은 키를 출력합니다 :
    • AKIACOOB5BQVEXAMPLE
    • 양방향
    • 첫 번째 줄은 액세스 키 ID이고 두 번째 줄은 비밀 키입니다. 타사 소프트웨어에는 둘 다 필요합니다.

액세스 테스트

이제 IAM 그룹 / 사용자를 만들고 정책을 사용하여 그룹에 액세스 할 수있게되었으므로 액세스를 테스트해야합니다.

콘솔 액세스

사용자는 사용자 이름과 비밀번호를 사용하여 AWS Console에 로그인 할 수 있습니다. 그러나 이것은 기본 AWS 계정에 사용되는 일반 콘솔 로그인 페이지가 아닙니다. Amazon AWS 계정에 대해서만 로그인 양식을 제공하는 특수 URL을 사용할 수 있습니다. 다음은 IAM 사용자를 위해 S3에 로그인하는 URL입니다.

https://AWS-ACCOUNT-NUMBER.signin.aws.amazon.com/console/s3

AWS-ACCOUNT-NUMBER는 (는) 일반적인 AWS 계정 번호입니다. Amazon Web Service 로그인 양식에 로그인하여이 정보를 얻을 수 있습니다. 로그인하고 계정 | 계정 활동. 귀하의 계좌 번호는 오른쪽 상단에 있습니다. 대시를 제거했는지 확인하십시오. URL은 https://123456789012.signin.aws.amazon.com/console/s3과 유사합니다.

액세스 키 사용

이 기사에서 이미 언급 한 타사 도구를 다운로드하여 설치할 수 있습니다. 타사 도구 설명서에 따라 액세스 키 ID와 비밀 키를 입력하십시오.

초기 사용자를 생성하고 해당 사용자가 S3에서 수행해야하는 모든 작업을 수행 할 수 있는지 완전하게 테스트하도록 강력히 권장합니다. 사용자 중 하나를 확인한 후에는 S3 사용자를 모두 설정할 수 있습니다.