The securitytoken included in the request is expired가 될 때의 대응 방법

4568 단어 SecretsManagerAWS

이벤트: Secrets Manager에서 기밀 정보를 가져오려다가 혼났습니다.

  • 환경
  • AWS Cloud9
  • Python 3.6.12
  • 처음으로 Secrets Manager에서 비밀 값을 설정하여 Cloud9에서 비밀 값을 가져오려고 합니다.
    얻은 코드는 아주 친절하게 비밀 값을 설정했을 때 표시되기 때문에 기본적으로 복사하고 붙여넣는 데 쓰인다...ExpiredTokenException
    def get_backlog_api_key():
    
        secret_name = 'シークレットの名前'
    
        session = boto3.session.Session()
        client = session.client(
            service_name='secretsmanager',
            region_name='リージョン'
        )
    
        try:
            get_secret_value_response = client.get_secret_value(
                SecretId=secret_name
            )
        except ClientError as e:
            print(e.response['Error'])
            raise e
        else:
            if 'SecretString' in get_secret_value_response:
                secret = get_secret_value_response['SecretString']
            else:
                decoded_binary_secret = base64.b64decode(get_secret_value_response['SecretBinary'])
    
    {'Message': 'The security token included in the request is expired', 'Code': 'ExpiredTokenException'}
    

    이유: Lambda에 대한 권한이 없습니다.


    권한의 존재를 잊어버렸다.
    Minimum permissions
    To run this command, you must have the following permissions:
    secretsmanager:GetSecretValue
    GetSecretValue - AWS Secrets Manager

    해당: 권한 부여

  • AWS의 콘솔>Lambda> 대상의 함수>[액세스 권한] 탭[실행 롤러]에서 IAM 화면 열기
  • [액세스 권한] 레이블>[부착 정책] 버튼
  • secretsmanager SecretManagerReadWrite 검사>[정책 첨부] 버튼을 통해 권한 추가
  • 좀 거칠고 얻기만 하면 권한 범위가 작을수록 좋지만 지금
  • 업데이트 버튼으로 Cloud9의 Lambda 태그에서 업데이트
  • 업데이트해도 이런 상황에서는 순조롭지 않다.이게 왜 나왔는지 모르겠는데 조금 있다가 업데이트하면 사라져요.잘 모르겠어요.
  • 좋은 웹페이지 즐겨찾기