AWS Identity and Access Management (IAM)

整合版本:5.0

使用案例 - 搭配 Amazon Simple Storage Service (Amazon S3)

John 為公司建立了一個名為 aws-s3-bucket 的 Amazon S3 bucket。

  1. 建立使用者(開發人員必須能夠在公司儲存空間中建立資料)
    1. 建立群組 (以開發人員為群組)
  2. 建立政策 (John 必須將權限指派給使用者/群組)
  3. 附加政策 (John 將政策附加至群組,允許開發人員在 AWS S3 中讀取、寫入及列出物件)
  4. 在群組中新增/移除使用者 (其中一位開發人員成為管理員,存取權應隨之變更)

在 Google Security Operations 中設定 AWS Identity and Access Management (IAM) 整合

如需在 Google SecOps 中設定整合功能的詳細操作說明,請參閱「設定整合功能」。

整合參數

請使用下列參數設定整合:

參數顯示名稱 類型 預設值 為必填項目 說明
AWS 存取金鑰 ID 字串 不適用 用於整合的 AWS 存取金鑰 ID。
AWS 密鑰 密碼 不適用 用於整合的 AWS 私密金鑰。

動作

乒乓

說明

在 Google Security Operations Marketplace 分頁的整合設定頁面中,使用提供的參數測試與 AWS IAM 的連線。

執行時間

這項操作不會對實體執行。

動作執行結果

指令碼執行結果
指令碼結果名稱 值選項
is_success is_success=False
is_success is_success=True
案件總覽
結果類型 值 / 說明 類型
輸出訊息*

動作不應失敗,也不應停止執行應對手冊:

如果成功:列印「Successfully connected to the AWS IAM server with the provided connection parameters!」(已使用提供的連線參數成功連線至 AWS IAM 伺服器!)

動作應會失敗並停止執行應對手冊:

如果失敗:請列印「Failed to connect to the AWS IAM server! Error is {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"
}]
案件總覽
結果類型 值 / 說明 類型
輸出訊息*

動作不應失敗,也不應停止執行應對手冊:

  • 如果成功 (只有少數使用者名稱有效):列印「Successfully added the following users to IAM: <User names>」(已成功將下列使用者新增至 IAM:<使用者名稱>)
  • 如果發生錯誤 - 使用者已存在:列印「無法將下列使用者新增至 IAM:<Usernames>。帳戶中的名稱不得重複。」
  • 如果發生錯誤 (少數使用者名稱無效):列印「無法將下列使用者新增至 IAM:<使用者名稱>。使用者名稱只能包含英數字元和/或下列字元:+=,.@-.
  • 如果發生錯誤 (提高限制。每個帳戶最多 5000 位使用者):列印「無法將下列使用者新增至 IAM:<Usernames>。您的 AWS 帳戶已達使用者人數上限。

注意:如果沒有任何反應:所有使用者皆無效/存在/超出限制 → 動作應會失敗

動作應會失敗並停止執行應對手冊:

  • 如果不成功 (所有使用者名稱都無效、憑證錯誤、沒有連線、其他錯誤):列印「Error executing action 'Create a User'. 原因:{exception.stacktrace}

注意:如果所有使用者名稱都無效,請列印「Error executing action 'Create a User'」。原因:{invalid usernames}:使用者名稱只能包含英數字元和/或下列字元:+=,.@-. {existing usernames}:名稱不得與帳戶內其他名稱重複。

一般

將使用者加入群組

說明

將指定使用者新增至指定 IAM 群組。使用群組一次對多位使用者套用相同的權限政策。

參數

參數顯示名稱 類型 預設值 為必填項目 說明
群組名稱 字串 不適用 要更新的群組名稱。注意:群組名稱不得包含空格,且只能包含英數字元和/或下列字元:+=.@_-.
使用者名稱 字串 不適用 要新增的使用者名稱。注意:使用者名稱不得包含空格,且只能包含英數字元和/或下列字元:+=.@_-. (以半形逗號分隔的值)。

執行時間

這項操作不會對實體執行。

動作執行結果

指令碼執行結果
指令碼結果名稱 值選項
is_success is_success=False
is_success is_success=True
案件總覽
結果類型 值 / 說明 類型
輸出訊息*

動作不應失敗,也不應停止執行應對手冊:

  • 如果成功:列印「Successfully added the user <User name> to the IAM group: <Group name>」(已成功將使用者 <User name> 新增至 IAM 群組:<Group name>)
  • 如果發生錯誤 - 群組不存在或/和使用者不存在:
    群組不存在:列印「無法將 <UserName> 新增至 <Group name>。找不到群組 <group name>。」
    使用者不存在/兩者皆不存在:列印「無法將 <UserName> 新增至 <Group name>。找不到使用者 <user name>。
  • 如果發生錯誤
    使用者限制 - IAM 使用者最多可加入 10 個群組
    群組限制 - 一個群組最多可有 5000 名使用者
    列印「Could not add <UserName> to <Group name> because it attempted to create resources beyond the current AWS account limits.」

動作應會失敗並停止執行應對手冊:

  • 如果未成功 (憑證錯誤、沒有連線、其他 SDK 錯誤):列印「Error executing action 'Add a User to a Group. 原因:{exception.stacktrace}
一般

從群組中移除使用者

說明

將指定使用者新增至指定 IAM 群組。使用群組一次對多位使用者套用相同的權限政策。

參數

參數顯示名稱 類型 預設值 為必填項目 說明
群組名稱 字串 不適用 要更新的群組名稱。注意:群組名稱不得包含空格,且只能包含英數字元和/或下列字元:+=.@_-.
使用者名稱 字串 不適用 要移除的使用者名稱。注意:使用者名稱不得包含空格,且只能包含英數字元和/或下列字元:+=.@_-. (以半形逗號分隔的值)。

執行時間

這項操作不會對實體執行。

動作執行結果

指令碼執行結果
指令碼結果名稱 值選項
is_success is_success=False
is_success is_success=True
案件總覽
結果類型 值 / 說明 類型
輸出訊息*

動作不應失敗,也不應停止執行應對手冊:

  • 如果成功:列印「<User name> has been removed from group: <Group name>」(已從群組「<Group name>」移除使用者「<User name>」)
  • 如果發生錯誤 - 群組不存在或/且使用者不存在:
    群組不存在:列印「無法從 <群組名稱> 移除 <使用者名稱>。找不到群組 <群組名稱>。」
    使用者不存在/兩者皆不存在:列印「無法從 <群組名稱> 移除 <使用者名稱>。找不到使用者 <使用者名稱>。
  • 如果發生錯誤
    使用者限制 - IAM 使用者最多可加入 10 個群組
    群組限制 - 一個群組最多可有 5000 名使用者
    列印「Could not remove <UserName> from <Group name> because it attempted to create resources beyond the current AWS account limits.」(無法從 <Group name> 移除 <UserName>,因為該使用者嘗試建立的資源超出目前的 AWS 帳戶限制)。

動作應會失敗並停止執行應對手冊:

  • 如果未成功 (憑證錯誤、沒有連線、其他 SDK 錯誤):請列印「Error executing action 'Remove a User from a Group. 原因:{exception.stacktrace}
一般

將使用者列入清單

說明

取得 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"
}]
案件總覽
結果類型 值 / 說明 類型
輸出訊息*

動作不應失敗,也不應停止執行應對手冊:

如果成功:列印「Successfully listed available users in AWS IAM」(已成功列出 AWS IAM 中的可用使用者)

如果沒有可用資料:列印「AWS IAM 中找不到使用者」


動作應會失敗並停止執行應對手冊:

如果不成功 (憑證錯誤、無法連線至伺服器、其他伺服器錯誤,如果 max>10000):列印「Error executing action 'List Users'. 原因:{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"
}]
案件總覽
結果類型 值 / 說明 類型
輸出訊息*

動作不應失敗,也不應停止執行應對手冊:

如果成功:列印「Successfully listed available groups in AWS IAM」(已成功列出 AWS IAM 中的可用群組)

如果沒有可用資料:列印「AWS IAM 中找不到群組」


動作應會失敗並停止執行應對手冊:

如果未成功 (憑證錯誤、無法連線至伺服器、其他伺服器錯誤,如果「Max Groups」> 1000):列印「Error executing action 'List Groups'。原因:{exception.stacktrace}

一般
CSV 表格

標題:IAM 群組

欄:

群組名稱

群組 ID

ARN

建立日期

一般

建立政策

說明

為 AWS 帳戶建立 IAM 客戶管理政策。這項動作會建立政策版本,版本 ID 為 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"
}
案件總覽
結果類型 值 / 說明 類型
輸出訊息*

動作不應失敗,也不應停止執行應對手冊:

  • 如果成功:列印「<政策名稱> 政策已成功建立」

這項動作應會失敗,並停止執行應對手冊:

  • 如果發生「政策已存在」錯誤:請列印「無法建立 <政策名稱> 政策。帳戶內的政策名稱不得重複。
  • 如果發生錯誤 - 政策名稱無效:列印「無法建立 <政策名稱> 政策。政策名稱只能包含英數字元和/或下列字元:+=,.@_-.
  • If error - Policy doc was malformed : Print "Could not create <policy name> policy. 政策文件格式有誤。原因:{exception.stacktrace}

如果未成功 (LimitExceededException、憑證錯誤、沒有連線、其他錯誤):print "Error executing action 'Create a Policy'. 原因:{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"
}]
案件總覽
結果類型 值 / 說明 類型
輸出訊息*

動作不應失敗,也不應停止執行應對手冊:

  • 如果成功 (部分/所有群組名稱都有效):列印「Successfully added the following groups to IAM: <Group names>」(已成功將下列群組新增至 IAM:<群組名稱>)
  • 如果發生錯誤 - 群組已存在:列印「無法將下列群組新增至 IAM:<群組名稱>。帳戶中的名稱不得重複。」
  • 如果發生錯誤 (少數群組名稱無效):列印「無法將下列群組新增至 IAM:<群組名稱>。群組名稱只能包含英數字元和/或下列字元:+=,.@_-.
  • If error (raise limitation. 每個帳戶最多 500 個群組): Print "Could not add the following groups to IAM: <Group names>. Reach to Groups limitation in your aws account.


動作應會失敗並停止執行應對手冊:

  • 如果未成功 (所有名稱無效、憑證錯誤、沒有連線、其他錯誤):列印「Error executing action 'Create a Group. 原因:{exception.stacktrace}
一般

可列出政策

說明

列出 AWS 帳戶中所有可用的代管政策,包括您自行定義的代管政策和所有 AWS 代管政策。您可以使用選用的「Only Attached」、「Scope」和「Policy Usage」參數,篩選傳回的政策清單。舉例來說,如要只列出 AWS 帳戶中的客戶管理政策,請將「範圍」設為「本機」。如要只列出 AWS 管理的政策,請將範圍設為 AWS。

參數

參數顯示名稱 類型 預設值 為必填項目 說明
僅限附加檔案 布林值 勾選後,系統會篩選結果,只顯示附加至 IAM 使用者、群組或角色的政策。如果取消勾選,系統會傳回所有政策。
範圍

DDL
(全部、AWS、本機)

全部 用於篩選結果的範圍。如要只列出 AWS 代管政策,請將「範圍」設為「AWS」。如要只列出 AWS 帳戶中的客戶管理政策,請將範圍設為「本機」。根據預設,系統會傳回所有政策。
要傳回的政策數量上限 整數 100 指定要傳回的政策數量。預設值為 100。上限為 1000。

執行時間

這項操作不會對實體執行。

動作執行結果

指令碼執行結果
指令碼結果名稱 值選項
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"
}]
案件總覽
結果類型 值 / 說明 類型
輸出訊息*

動作不應失敗,也不應停止執行應對手冊:

  • 如果成功:列印「Successfully listed available policies in AWS IAM」(已成功列出 AWS IAM 中的可用政策)
  • 如果「Max Policies」值 < 根據篩選器比對的政策:列印「Successfully listed available policies in AWS IAM. 請注意,還有其他政策符合提供的篩選條件。」
  • 如果沒有資料:列印「AWS IAM 中找不到任何政策」


動作應會失敗並停止執行應對手冊:

  • 如果未成功 (憑證錯誤、無法連線至伺服器、其他伺服器錯誤、最大值 > 1000):列印「Error executing action 'List Policies. 原因:{exception.stacktrace}
一般
CSV 表格

標題:身分與存取權管理政策

欄:

政策名稱

政策 ID

建立日期

更新日期

一般

附加政策

說明

將指定的受管理政策附加至身分 (使用者、群組、角色)。

參數

參數顯示名稱 類型 預設值 為必填項目 說明
身分類型

DDL
(使用者、群組、角色)

群組 IAM 身分類型。
身分名稱 字串 不適用 要將政策附加至的身分名稱 (好記的名稱,而非 ARN)。身分名稱不得包含空格,且只能包含英數字元和/或下列字元:+=.@_-.
政策名稱 字串 不適用 要附加政策的政策名稱 (友善名稱,而非 ARN)。政策名稱不得包含空格,且只能包含英數字元和/或下列字元:+=.@_-.

執行時間

這項操作不會對實體執行。

動作執行結果

指令碼執行結果
指令碼結果名稱 值選項
is_success is_success=False
is_success is_success=True
案件總覽
結果類型 值 / 說明 類型
輸出訊息*

動作不應失敗,也不應停止執行應對手冊:

  • 如果成功:列印「Policy was attached to <Identity Type>: <Identity Name>」(政策已附加至 <身分類型>:<身分名稱>)

動作應會失敗並停止執行應對手冊:

  • 如果發生錯誤:列印「Could not create <policy name> policy. 帳戶內的政策名稱不得重複。
  • 如果發生錯誤 - 身分識別名稱無效:列印「無法將 <政策名稱> 附加至 <身分識別類型>:<身分識別名稱>。名稱只能包含英數字元和/或下列字元:+=,.@_-.
  • 如果未成功 (憑證錯誤、無法連線至伺服器、其他伺服器錯誤):列印「Error executing action 'Attach a Policy'. 原因:{exception.stacktrace}
一般

停用使用者存取權

新增明確的內嵌拒絕政策,即可在 AWS 中停用使用者存取權。

這項動作僅支援一般 AWS 使用者,不支援同盟使用者或 IAM 角色。

實體

這項動作會對使用者實體執行。

動作輸入內容

不適用

動作輸出內容

動作輸出類型
案件總覽附件 不適用
案件總覽連結 不適用
案件訊息牆表格 不適用
補充資訊表格 不適用
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 True/False
案件總覽

這個動作會提供下列輸出訊息:

輸出訊息 訊息說明

Successfully added deny policy to the following users in AWS IAM: USERNAME_LIST

Action wasn't able to find the following users in AWS IAM: USERNAME_LIST

Action wasn't able to add deny policy to the following users in AWS IAM: USERNAME_LIST

動作成功。
Successfully added deny policy to the following users in AWS IAM: USERNAME_LIST

動作失敗。

由於發生錯誤,系統無法對至少一位指定使用者套用拒絕政策。

Error executing action "Disable User Access". Reason: ERROR_REASON

動作失敗。

檢查伺服器的連線、輸入參數或憑證。

還有其他問題嗎?向社群成員和 Google SecOps 專業人員尋求答案。