3/3 부
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에서 사용하기 위해 조정할 수 있습니다.
- 명령 줄 인터페이스 (CLI) 설치 및 구성
- 그룹 만들기
- S3 Bucket 및 CloudFront에 그룹 액세스 권한 부여
- 사용자 생성 및 그룹에 추가
- 로그인 프로파일 작성 및 키 작성
- 액세스 테스트
명령 줄 인터페이스 (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 사용자를 모두 설정할 수 있습니다.
자원
다음은 IAM (Identity & Access Management)에 대한 이해를 돕기위한 몇 가지 리소스입니다.
- IAM 시작하기
- IAM 커맨드 라인 툴킷
- Amazon AWS Console
- AWS 정책 생성기
- AWS ID 및 액세스 관리 사용
- IAM 릴리스 노트
- IAM 토론 포럼
- IAM FAQs