2017-06-12 6 views
1

iamを制限する方法はありますか?AddUserToGroup?ユーザーを追加しますか?私は、リクエスターが自分自身を追加することを許可されていないことを除いて、どのユーザーもグループに追加できるポリシーを構築したいと考えています。リクエスタを使用可能なリソースとして制限することによって他のアクションを制限できますが、この場合はリソースがグループです。AWS IAM:自分以外のグループに誰かを追加できるようにするポリシー

答えて

0

私が間違っていると誰かが私を修正しますが、AWSコンソールからグループに追加できるユーザーを制限することはできません。グループメンバーシップを変更するためにLambdaなどの他のツールを使用した場合、これを行うことができます。

IAMのアクセス権は、サービスおよびリソースのアクションまでは行けますが、それらのアクションのパラメータには適用されません。彼らがしたら涼しいだろう。 :)

たとえば、アクションAddUserToGroupはポリシーごとに許可または制限できます。アクションが適用されるグループリソースと同じです。したがって、特定のリソース(グループ)に対するアクションを制限または許可することができますが、IAMではアクションのパラメータに基づいてポリシー条件を設定することはできません。

この場合、パラメータUserNameAddUserToGroupです。

+1

私はラムダ関数を使用して、グループに自分を追加するためにAddUserToGroupが呼び出されるたびに自動的にグループからユーザーを削除しました。このAWSセキュリティブログの記事は、これを設定するために必要な要素を定義するのに非常に役立つことがわかりました:https://aws.amazon.com/blogs/security/how-to-detect-and-automatically-revoke-unintended-iam -access-with-amazon-cloudwatch-events / – andretbin

0

byumarkの答えにコメントで述べたブログ記事で定義された実行役割と権限との組み合わせで、私は私が防ぐために探していたアクションの自動修復親切にこの簡単なラムダ関数を使用:

'use strict'; 

var aws = require('aws-sdk'); 
var iam = new aws.IAM(); 

exports.handler = function(event, context) { 
    // Log the incoming Amazon CloudWatch Events event  
    console.log('Received event:', JSON.stringify(event, null, 2)); 

    // If the caller is not an IAM user, do nothing 
    if (event.detail.userIdentity.type != 'IAMUser') { 
     context.done(); 
    } else { 
     var userName = event.detail.userIdentity.userName; 

     // If the user is adding herself to a group 
     if (event.detail.eventName === "AddUserToGroup" && 
       event.detail.requestParameters.userName === userName) { 

      // Remove the user from that group 
      var groupName = event.detail.requestParameters.groupName; 
      console.log('User adding self to group detected. Removing user', 
          userName, 'from group', groupName); 

      var params = { 
       GroupName: groupName, 
       UserName: userName 
      }; 
      iam.removeUserFromGroup(params, function(err, data) { 
       if (err) { 
        console.log(err, err.stack); 
       } else { 
        console.log(data); 
       } 
      }); 
     } 
    } 
    } 
は、
関連する問題