AWS Identity and Access Management(IAM)
이 문서에서는 AWS Identity and Access Management (IAM)를 Google Security Operations와 통합하는 방법을 설명합니다.
사용 사례 - Amazon Simple Storage Service (Amazon S3)
John이 aws-s3-bucket이라는 회사를 위해 Amazon S3 버킷을 만들었습니다.
- 사용자 만들기(개발자가 회사 버킷에 데이터를 만들 수 있어야 함)
- 그룹 만들기 (개발자를 그룹으로)
- 정책 만들기 (John이 사용자/그룹에 권한을 할당해야 함)
- 정책 연결 (John이 개발자가 AWS S3에서 객체를 읽고,쓰고,나열할 수 있도록 하는 정책을 그룹에 연결함)
- 그룹에서 사용자 추가/삭제 (개발자 중 한 명이 관리자가 되므로 액세스 권한을 변경해야 함)
시작하기 전에
이 통합은 네이티브 플랫폼 기능을 제공하며 인증을 위해 외부 서드 파티 API 키나 사용자 인증 정보가 필요하지 않습니다. 시작하기 전에 Google SecOps 인스턴스 내 콘텐츠 허브에서 통합이 설치되어 있는지 확인합니다.
통합 매개변수
다음 매개변수를 사용하여 통합을 구성합니다.
| 매개변수 표시 이름 | 유형 | 기본값 | 필수 항목 | 설명 |
|---|---|---|---|---|
| AWS 액세스 키 ID | 문자열 | 해당 사항 없음 | 예 | 통합에 사용할 AWS 액세스 키 ID입니다. |
| AWS 보안 키 | 비밀번호 | 해당 사항 없음 | 예 | 통합에 사용할 AWS 보안 비밀 키입니다. |
Google SecOps에서 통합을 구성하는 방법에 대한 안내는 통합 구성을 참고하세요.
필요한 경우 이후 단계에서 변경할 수 있습니다. 통합 인스턴스를 구성한 후 플레이북에서 사용할 수 있습니다. 여러 인스턴스를 구성하고 지원하는 방법에 관한 자세한 내용은 여러 인스턴스 지원을 참고하세요.
작업
작업에 대한 자세한 내용은 내 Workdesk에서 대기 중인 작업에 응답 및 수동 작업 실행을 참고하세요.
핑
설명
Google Security Operations Marketplace 탭의 통합 구성 페이지에서 제공된 매개변수를 사용하여 AWS IAM에 대한 연결을 테스트합니다.
실행
이 작업은 항목에서 실행되지 않습니다.
작업 결과
스크립트 결과
| 스크립트 결과 이름 | 값 옵션 |
|---|---|
| is_success | is_success=False |
| is_success | is_success=True |
케이스 월
| 결과 유형 | 값 / 설명 | 유형 |
|---|---|---|
| 출력 메시지* | 작업이 실패하거나 플레이북 실행을 중지하지 않습니다. 성공한 경우: '제공된 연결 매개변수를 사용하여 AWS IAM 서버에 연결되었습니다.' 출력 작업이 실패하고 플레이북 실행을 중지합니다. 성공하지 못한 경우: 'AWS IAM 서버에 연결할 수 없습니다. 오류: {0}".format(exception.stacktrace) |
일반 |
사용자 만들기
설명
AWS 계정의 새 IAM 사용자를 만듭니다. 쉼표로 구분된 값을 사용하여 한 번에 여러 사용자를 추가할 수 있습니다. 이 단계에서는 정책이 적용되지 않습니다.
매개변수
| 매개변수 표시 이름 | 유형 | 기본값 | 필수 항목 | 설명 |
|---|---|---|---|---|
| 사용자 이름 | 문자열 | 해당 사항 없음 | 예 | 생성할 사용자의 이름입니다. 쉼표로 구분된 값입니다. 참고: 사용자 이름에는 공백을 포함할 수 없으며 영숫자 또는 +=.@_-만 포함해야 합니다. 이름은 계정 내에서 고유해야 합니다. |
실행
이 작업은 항목에서 실행되지 않습니다.
작업 결과
스크립트 결과
| 스크립트 결과 이름 | 값 옵션 |
|---|---|
| is_success | is_success=False |
| is_success | is_success=True |
JSON 결과
[{
"Arn":"arn:aws:iam::582302349248:user/ziv",
"CreateDate":"2020-12-03T12:12:20",
"Path":"/",
"UserId":"AIDAYPE7MW7AFMHK4WCHS",
"UserName":"ziv"
}]
케이스 월
| 결과 유형 | 값 / 설명 | 유형 |
|---|---|---|
| 출력 메시지* | 작업이 실패하거나 플레이북 실행을 중지하지 않습니다.
참고:아무 일도 일어나지 않은 경우: 모든 사용자가 무효/존재/한도 → 작업이 실패해야 함 작업이 실패하고 플레이북 실행을 중지해야 합니다.
참고: 모든 사용자 이름이 잘못된 경우 'Error executing action 'Create a User'. 이유: {invalid usernames}: 사용자 이름에는 영숫자 문자 또는 다음 문자만 포함해야 합니다. +=,.@-. {existing usernames}: 이름은 계정 내에서 고유해야 합니다. |
일반 |
그룹에 사용자 추가
설명
지정된 사용자를 지정된 IAM 그룹에 추가합니다. 그룹을 사용하여 여러 사용자에게 동일한 권한 정책을 한 번에 적용합니다.
매개변수
| 매개변수 표시 이름 | 유형 | 기본값 | 필수 항목 | 설명 |
|---|---|---|---|---|
| 그룹 이름 | 문자열 | 해당 사항 없음 | 예 | 업데이트할 그룹의 이름입니다. 참고: 그룹 이름에는 공백이 포함될 수 없으며 영숫자 문자 또는 +=.@_-만 포함해야 합니다. |
| 사용자 이름 | 문자열 | 해당 사항 없음 | 예 | 추가할 사용자의 이름입니다. 참고: 사용자 이름에는 공백을 포함할 수 없으며 영숫자 문자 또는 +=.@_-만 포함해야 합니다. 쉼표로 구분된 값입니다. |
실행
이 작업은 항목에서 실행되지 않습니다.
작업 결과
스크립트 결과
| 스크립트 결과 이름 | 값 옵션 |
|---|---|
| is_success | is_success=False |
| is_success | is_success=True |
케이스 월
| 결과 유형 | 값 / 설명 | 유형 |
|---|---|---|
| 출력 메시지* | 작업이 실패하거나 플레이북 실행을 중지하지 않습니다.
작업이 실패하고 플레이북 실행을 중지합니다.
|
일반 |
그룹에서 사용자 삭제
설명
지정된 사용자를 지정된 IAM 그룹에 추가합니다. 그룹을 사용하여 여러 사용자에게 동일한 권한 정책을 한 번에 적용합니다.
매개변수
| 매개변수 표시 이름 | 유형 | 기본값 | 필수 항목 | 설명 |
|---|---|---|---|---|
| 그룹 이름 | 문자열 | 해당 사항 없음 | 예 | 업데이트할 그룹의 이름입니다. 참고: 그룹 이름에는 공백이 포함될 수 없으며 영숫자 문자 또는 +=.@_-만 포함해야 합니다. |
| 사용자 이름 | 문자열 | 해당 사항 없음 | 예 | 삭제할 사용자의 이름입니다. 참고: 사용자 이름에는 공백을 포함할 수 없으며 영숫자 문자 또는 +=.@_-만 포함해야 합니다. 쉼표로 구분된 값입니다. |
실행
이 작업은 항목에서 실행되지 않습니다.
작업 결과
스크립트 결과
| 스크립트 결과 이름 | 값 옵션 |
|---|---|
| is_success | is_success=False |
| is_success | is_success=True |
케이스 월
| 결과 유형 | 값 / 설명 | 유형 |
|---|---|---|
| 출력 메시지* | 작업이 실패하거나 플레이북 실행을 중지하지 않습니다.
작업이 실패하고 플레이북 실행을 중지합니다.
|
일반 |
사용자 표시
설명
IAM의 모든 사용자 목록을 가져옵니다.
매개변수
| 매개변수 표시 이름 | 유형 | 기본값 | 필수 항목 | 설명 |
|---|---|---|---|---|
| 반환할 최대 사용자 수 | 정수 | 50 | 아니요 | 반환할 사용자 수를 지정합니다. 최대 1,000명의 사용자가 참여할 수 있습니다. 기본값은 50입니다. |
실행
이 작업은 항목에서 실행되지 않습니다.
작업 결과
스크립트 결과
| 스크립트 결과 이름 | 값 옵션 |
|---|---|
| is_success | is_success=False |
| is_success | is_success=True |
JSON 결과
[{
"Arn":"arn:aws:iam::582302349248:user/ziv",
"CreateDate":"2020-12-03T12:12:20",
"Path":"/",
"UserId":"AIDAYPE7MW7AFMHK4WCHS",
"UserName":"ziv"
}]
케이스 월
| 결과 유형 | 값 / 설명 | 유형 |
|---|---|---|
| 출력 메시지* | 작업이 실패하거나 플레이북 실행을 중지하지 않습니다. 성공한 경우: 'AWS IAM에서 사용 가능한 사용자를 나열했습니다.'를 출력합니다. 사용 가능한 데이터가 없는 경우: 'AWS IAM에서 사용자를 찾을 수 없음'을 출력합니다.
성공하지 못한 경우 (잘못된 사용자 인증 정보, 서버 연결 없음, 기타 서버 오류, max>10000인 경우): '사용자 목록' 작업을 실행하는 중에 오류가 발생했습니다. 이유: {exception.stacktrace} |
일반 |
| CSV 표 | 제목: IAM 사용자 열: 사용자 이름 사용자 ID ARN 생성일 |
일반 |
그룹 나열
설명
IAM의 모든 그룹 목록을 가져옵니다.
매개변수
| 매개변수 표시 이름 | 유형 | 기본값 | 필수 항목 | 설명 |
|---|---|---|---|---|
| 반환할 최대 그룹 수 | 정수 | 50 | 아니요 | 반환할 그룹 수를 지정합니다. 최대 1,000개의 그룹을 만들 수 있습니다. 기본값은 50입니다. |
실행
이 작업은 항목에서 실행되지 않습니다.
작업 결과
스크립트 결과
| 스크립트 결과 이름 | 값 옵션 |
|---|---|
| is_success | is_success=False |
| is_success | is_success=True |
JSON 결과
[{
"Arn":"arn:aws:iam::582302349248:group/ZivGroup",
"CreateDate":"2020-12-05 16:18:36+00:00",
"Path":"/",
"GroupId":"AGPAYPE7MW7AMKCWMJPMX",
"GroupName":"ZivGroup"
}]
케이스 월
| 결과 유형 | 값 / 설명 | 유형 |
|---|---|---|
| 출력 메시지* | 작업이 실패하거나 플레이북 실행을 중지하지 않습니다. 성공한 경우: 'AWS IAM에서 사용 가능한 그룹을 나열했습니다.'를 출력합니다. 데이터를 사용할 수 없는 경우: 'AWS IAM에서 그룹을 찾을 수 없음'을 출력합니다.
성공하지 못한 경우 (잘못된 사용자 인증 정보, 서버 연결 없음, 기타 서버 오류, '최대 그룹 수' > 1000인 경우): '그룹 나열' 작업을 실행하는 중에 오류가 발생했습니다. 이유: {exception.stacktrace} |
일반 |
| CSV 표 | 제목: IAM 그룹 열: 그룹 이름 그룹 ID ARN 생성일 |
일반 |
정책 만들기
설명
AWS 계정에 대한 IAM 고객 관리 정책을 만듭니다. 이 작업은 버전 식별자가 v1인 정책 버전을 만들고 v1을 정책의 기본 버전으로 설정합니다.
매개변수
| 매개변수 표시 이름 | 유형 | 기본값 | 필수 항목 | 설명 |
|---|---|---|---|---|
| 정책 이름 | 문자열 | 해당 사항 없음 | 예 | 만들려는 정책의 이름입니다. 정책 이름에는 공백이 포함될 수 없으며 영숫자 또는 +=.@_-만 포함해야 합니다. 정책 이름은 계정 내에서 고유해야 합니다. |
| 정책 문서 | 문자열 | 해당 사항 없음 | 예 | 새 정책의 콘텐츠로 사용할 JSON 정책 문서입니다. |
| 설명 | 문자열 | 해당 사항 없음 | 아니요 | 정책에 대한 설명입니다.일반적으로 정책에 정의된 권한에 관한 정보를 저장하는 데 사용됩니다. 예를 들어 '프로덕션 DynamoDB 테이블에 대한 액세스 권한을 부여합니다.' 정책 설명은 변경할 수 없습니다. 값이 할당된 후에는 변경할 수 없습니다. |
실행
이 작업은 항목에서 실행되지 않습니다.
작업 결과
스크립트 결과
| 스크립트 결과 이름 | 값 옵션 |
|---|---|
| is_success | is_success=False |
| is_success | is_success=True |
JSON 결과
{
"PolicyName": "S3-read-only-bucket",
"PolicyId": "ANPAYPE7MW7AFKUDK3HD7",
"Arn": "arn:aws:iam::582302349248:policy/S3-read-only-bucket",
"Path": "/",
"DefaultVersionId": "v1",
"AttachmentCount": 0,
"PermissionsBoundaryUsageCount": 0,
"IsAttachable": true,
"CreateDate": "2020-12-6T17:16:45",
"UpdateDate": "2020-12-6T17:16:45"
}
케이스 월
| 결과 유형 | 값 / 설명 | 유형 |
|---|---|---|
| 출력 메시지* | 작업이 실패하거나 플레이북 실행을 중지하지 않습니다.
작업이 실패하고 플레이북 실행을 중지해야 합니다.
실패한 경우 (LimitExceededException, 잘못된 사용자 인증 정보, 연결 없음, 기타 오류): '정책 만들기' 작업을 실행하는 중에 오류가 발생했습니다. 이유: {exception.stacktrace} |
일반 |
그룹 만들기
설명
AWS 계정의 새 IAM 그룹을 만듭니다. 그룹을 설정하려면 그룹을 만들어야 합니다. 그런 다음 그룹의 사용자가 수행할 작업 유형에 따라 그룹에 권한을 부여합니다. 마지막으로 사용자를 그룹에 추가합니다.
매개변수
| 매개변수 표시 이름 | 유형 | 기본값 | 필수 항목 | 설명 |
|---|---|---|---|---|
| 그룹 이름 | 문자열 | 해당 사항 없음 | 예 | 만들려는 그룹의 이름입니다. 쉼표로 구분된 값입니다. 참고: 그룹 이름에는 공백을 포함할 수 없으며 영숫자 및/또는 +=.@_-만 포함해야 합니다. 이름은 계정 내에서 고유해야 합니다. |
실행
이 작업은 항목에서 실행되지 않습니다.
작업 결과
스크립트 결과
| 스크립트 결과 이름 | 값 옵션 |
|---|---|
| is_success | is_success=False |
| is_success | is_success=True |
JSON 결과
[{
"Arn":"arn:aws:iam::582302349248:group/ZivGroup",
"CreateDate":"2020-12-05 16:18:36+00:00",
"Path":"/",
"GroupId":"'AGPAYPE7MW7AMKCWMJPMX",
"GroupName":"ZivGroup"
}]
케이스 월
| 결과 유형 | 값 / 설명 | 유형 |
|---|---|---|
| 출력 메시지* | 작업이 실패하거나 플레이북 실행을 중지하지 않습니다.
|
일반 |
정책 나열
설명
자체 고객 정의 관리 정책과 모든 AWS 관리 정책을 비롯하여 AWS 계정에서 사용할 수 있는 모든 관리 정책을 나열합니다. 선택사항인 Only Attached, Scope, Policy Usage 매개변수를 사용하여 반환되는 정책 목록을 필터링할 수 있습니다. 예를 들어 AWS 계정의 고객 관리 정책만 나열하려면 범위를 Local로 설정합니다. AWS 관리 정책만 나열하려면 범위를 AWS로 설정합니다.
매개변수
| 매개변수 표시 이름 | 유형 | 기본값 | 필수 항목 | 설명 |
|---|---|---|---|---|
| 첨부파일만 | 불리언 | 아니요 | 아니요 | 선택하면 IAM 사용자, 그룹 또는 역할에 연결된 정책만 결과에 필터링됩니다. 선택하지 않으면 모든 정책이 반환됩니다. |
| 범위 | DDL |
전체 | 아니요 | 결과를 필터링하는 데 사용할 범위입니다. AWS 관리 정책만 나열하려면 범위를 AWS로 설정합니다. AWS 계정의 고객 관리 정책만 나열하려면 범위를 '로컬'로 설정합니다. 기본적으로 모든 정책이 반환됩니다. |
| 반환할 최대 정책 수 | 정수 | 100 | 아니요 | 반환할 정책 수를 지정합니다. 기본값은 100입니다. 최댓값은 1,000입니다. |
실행
이 작업은 항목에서 실행되지 않습니다.
작업 결과
스크립트 결과
| 스크립트 결과 이름 | 값 옵션 |
|---|---|
| is_success | is_success=False |
| is_success | is_success=True |
JSON 결과
[{
'PolicyName': 'string',
'PolicyId': 'string',
'Arn': 'string',
'Path': 'string',
'DefaultVersionId': 'string',
'AttachmentCount': 123,
'PermissionsBoundaryUsageCount': 123,
'IsAttachable': True|False,
'Description': 'string',
'CreateDate': "2020-12-6T17:16:45",
'UpdateDate':"2020-12-6T17:16:45"
}]
케이스 월
| 결과 유형 | 값 / 설명 | 유형 |
|---|---|---|
| 출력 메시지* | 작업이 실패하거나 플레이북 실행을 중지하지 않습니다.
|
일반 |
| CSV 표 | 제목: IAM 정책 열: 정책 이름 정책 ID 생성 날짜 업데이트 날짜 |
일반 |
정책 연결
설명
지정된 관리 정책을 ID (사용자, 그룹, 역할)에 연결합니다.
매개변수
| 매개변수 표시 이름 | 유형 | 기본값 | 필수 항목 | 설명 |
|---|---|---|---|---|
| ID 유형 | DDL |
그룹 | 예 | IAM ID 유형입니다. |
| ID 이름 | 문자열 | 해당 사항 없음 | 예 | 정책을 연결할 ID의 이름 (ARN이 아닌 친숙한 이름)입니다. ID 이름에는 공백이 포함될 수 없으며 영숫자 문자 또는 +=.@_-만 포함해야 합니다. |
| 정책 이름 | 문자열 | 해당 사항 없음 | 예 | 정책을 연결할 정책의 이름 (ARN이 아닌 친숙한 이름)입니다. 정책 이름에는 공백이 포함될 수 없으며 영숫자 문자 또는 +=.@_-만 포함해야 합니다. |
실행
이 작업은 항목에서 실행되지 않습니다.
작업 결과
스크립트 결과
| 스크립트 결과 이름 | 값 옵션 |
|---|---|
| is_success | is_success=False |
| is_success | is_success=True |
케이스 월
| 결과 유형 | 값 / 설명 | 유형 |
|---|---|---|
| 출력 메시지* | 작업이 실패하거나 플레이북 실행을 중지하지 않습니다.
작업이 실패하고 플레이북 실행을 중지합니다.
|
일반 |
사용자 액세스 사용 중지
명시적 인라인 거부 정책을 추가하여 AWS에서 사용자 액세스를 사용 중지합니다.
이 작업은 연동된 사용자 또는 IAM 역할이 아닌 일반 AWS 사용자만 지원합니다.
항목
이 작업은 사용자 항목에서 실행됩니다.
작업 입력
해당 사항 없음
작업 출력
| 작업 출력 유형 | |
|---|---|
| 케이스 월 연결 | 해당 사항 없음 |
| 케이스 월 링크 | 해당 사항 없음 |
| 케이스 월 테이블 | 해당 사항 없음 |
| 보강 테이블 | 해당 사항 없음 |
| JSON 결과 | 사용 가능 |
| 스크립트 결과 | 사용 가능 |
JSON 결과
[
{
"Entity": "//iam.googleapis.com/projects/example/serviceAccounts/service-account@example.iam.gserviceaccount.com",
"EntityResult": [
{
"fullResourceName": "//iam.googleapis.com/projects/example/serviceAccounts/service-account@example.iam.gserviceaccount.com",
"activityType": "serviceAccountLastAuthentication",
"observationPeriod": {
"startTime": "2023-05-23T07:00:00Z",
"endTime": "2023-08-20T07:00:00Z"
},
"activity": {
"lastAuthenticatedTime": "2023-08-20T07:00:00Z",
"serviceAccount": {
"serviceAccountId": "example-account-id",
"projectNumber": "example-project-id",
"fullResourceName": "//iam.googleapis.com/projects/example/serviceAccounts/service-account@example.iam.gserviceaccount.com"
}
}
}
]
}
]
스크립트 결과
| 스크립트 결과 이름 | 값 |
|---|---|
| is_success | 참/거짓 |
케이스 월
이 작업은 다음 출력 메시지를 제공합니다.
| 출력 메시지 | 메시지 설명 |
|---|---|
|
작업이 완료되었습니다. |
Successfully added deny policy to the following users in AWS
IAM: USERNAME_LIST |
작업이 실패했습니다. 오류로 인해 제공된 사용자 중 한 명 이상에게 거부 정책을 적용할 수 없습니다. |
Error executing action "Disable User Access". Reason:
ERROR_REASON |
작업이 실패했습니다. 서버, 입력 매개변수 또는 사용자 인증 정보에 대한 연결을 확인합니다. |
도움이 더 필요하신가요? 커뮤니티 회원 및 Google SecOps 전문가에게 문의하여 답변을 받으세요.